How Oracle cloud helps in building modern application development. This explains Oracle Application container cloud with developer cloud service and etc. Spring boot application deployed in Oracle ACCS and CI/CD part done in Oracle Developer cloud service.
2. 2
• O RACL E ACE
• Enterp ris e Arch itect
• Co -Au th or of B ook “ B egin n in g Oracle
Web Center portal 12c”
• O racle certified p ro fes s io n al
• B lo g ger-http ://w w w.tech artifact. com/b logs
• So ftware Co n s u ltant
3. 3
• Application development trends with Oracle.
• Understanding Microservices and working definition
• Microservices shared platform capabilities.
• Oracle cloud support for Microservices development.
• Introduction to Oracle Application container cloud.
• Spring Boot development for microservices.
• Sprint Boot app deployment within ACCS.
• Demo
• DevOps with ACCS using developer cloud services and
others.
8. 8
M i n i m a l f u n c t i o n s e r v i c e s t h a t a r e d e p l o y e d i n d e p e n d e n t l y b u t c a n c o m m u n i c a t e
w i t h e a c h o t h e r t o a c h i e v e a b r o a d e r u s e - c a s e
Monolithic Applications
Single monolithic Application.
Single large deployment.
One Database for entire app.
Organized around technology layer.
State in each runtime instance.
One technology stack for whole
app.
In process call locally-SOAP.
Microservices
Multiple small minimal service function .
Independent deployment of each.
Each service has separate data store.
Organized around business capabilities.
State is externalized.
Choice of technology for each microservice.
REST calls over HTTP, Messaging or Binary.
13. 13
An open highly available
docker container based
elastic polyglot cloud
platform.
14. 14
• Application run on
Oracle Linux in docker
container.
• Stateless application
- Ephemeral disk.
- Storage through
database or storage service.
15. 15
• On demand elastic scaling
either through service
console or using service
REST API.
• Scale Out/IN
- add / remove ap p lication
instances to h andle workloads.
• Scale up/ down
- a dd / remove RAM to
accommodate ap p lication memor y
requirements.
16. 16
• Java application can use Java
Flight Recorder to monitor
applications and JVM
behavior analyze in Mission
Control.
• Use application Per formance
monitoring cloud ser vice for
advanced use case.
17. 17
• New Java and Node releases
published in the ser vice
console.
• One click upgrade to latest
releases-applications are
simply restar ted to upgrade
to new run time.
18. 18
DeveloperCloudService
Oracle Cloud
Oracle Management Cloud- Logging/Alerting/Monitoring
API Load Balancer
Docker Container
Container placement
Configuration
Service Discovery
Java SE
Cloud
Service
Node
Cloud
Service
Bring
your own
container
Other
polyglot
Runtime
Application container cloud service
DB Cloud Service NoSQL Cloud service
Messaging Cloud Service
Caching Cloud for state
A Modern platform for lightweight development
19. 19
• Comes with pre-built runtimes for key
programming languages and platforms, and it is
expected for the stack to support others any
time soon.
• For maintainability it provides Java SE advanced
features such as Flight Recorder, Mission Control,
memory management and security updates.
• Web-based user interface and REST API.
• Open platform that supports all Java frameworks
and containers such as Spring, Play, Tomcat, and
Jersey.
• Enterprise-grade support from Oracle.
• Store and retrieve data, Oracle Cloud
Infrastructure Object Storage Classic is best fit.
• Communication, supports via Oracle Messaging
Cloud Service. Your application communicates
with that service via its REST API, so no special
security configuration is necessary.
20. 20
• Information using
Ser vice Console.
Indication regarding
application health
can be retrieved
directly within
Oracle ACC ser vice
console.
• After-opening
ser vice console, one
must access ser vice
for each application
instance to check avg
memor y usage for
each instance
21. 21
• O ne console to manage
log v ia O racle Storage
cloud and
administration tasks.
Recording tab
generates detailed
recordings of th e Java
Vir tual Mach ine ( JVM)
and th e ap p lication it
is running.
• Th e recorded data
includes an execution
p rofile, garbage
collection statistics,
op timization decisions,
ob ject allocation, h eap
statistics, and latency
events for locks and
I/O. O racle
Management Cloud can
also b e integrated .
22. 22
• Use th is feature to
connect with Oracle
database cloud or
MyS Q L Cloud S er v ice.
You can also add
env ironment var iab le
at run time. It will
also disp lay
dep loyment h istor y.
23. 23
• Can manage multip le
instances with out of
b ox load balancing. You
can increase instance at
run - time as p er th e
need.
• It will take time to
p rocess increased
instances b ut existing
instances will keep
running. In b elow
diagram , it disp lay
memor y p er instance.
Default is 2 GB p er
instance.
• You can star t, stop ,
restar t and ch eck h ealth
state of ap p lication on
click of few b uttons.
24. 24
Build a microser vice web -app using
Following Stack
• Spring Boot
• Spring JPA
• H2 In memory database
• Thymeleaf template (Thymeleaf is a modern server-side Java
template engine for both web and standalone environments
) for building UI.
• REST API using Spring Boot performing CRUD operation
Why Spring Boot-
It comes with the ease of developing REST-service controllers, business services, and data repositories.
• Setup new service by using Spring Boot
• Expose resources via a RestController
• Consume remote services using RestTemplate.
32. 32
• Extending CrudRepository which in
turn extends
the Repositoryinterface and hence
there is no need of implementing our
own methods.
• CrudRepository provides methods for
the CRUD operations. This interface
extends the Repository interface.
• When you define CrudRepository, you
have to pass two parameters: type of
the entity and type of the entity’s id
field. This interface has the following
methods:
1. S save(S entity)
2. T findOne(ID primaryKey)
3. Iterable findAll()
4. Long count()
5. void delete(T entity)
6. boolean exists(ID primaryKey)
33. 33
• Extending CrudRepository which in
turn extends
the Repositoryinterface and hence
there is no need of implementing our
own methods.
• CrudRepository provides methods for
the CRUD operations. This interface
extends the Repository interface.
• When you define CrudRepository, you
have to pass two parameters: type of
the entity and type of the entity’s id
field. This interface has the following
methods:
1. S save(S entity)
2. T findOne(ID primaryKey)
3. Iterable findAll()
4. Long count()
5. void delete(T entity)
6. boolean exists(ID primaryKey)
38. 38
• Develop Application
• Built fat Jar and create
Manifest.json
• Build archive
combining
application.jar and
manifest.json
• Upload into ACCS
• Run Application on
Cloud.
c r e a t e a r c h i v e i n . z i p / . t g z / . t a r. g z f o r m a t t h a t i n c l u d e s a p p l i c a t i o n w i t h d e p e n d e n t
l i b r a r i e s a n d m o s t i m p o r t a n t m a n i f e s t . j s o n f i l e . A n a p p l i c a t i o n s h o u l d c o n t a i n a l l
d e p e n d e n c i e s . I t s h o u l d b e s e l f - c o n t a i n e d . U s e m a v e n o r a n y o t h e r b u i l d t o o l t o g e t a l l
d e p e n d e n c y a n d b u i l t a f a t j a r. S i n g l e t r i g g e r p o i n t - A t r i g g e r c o m m a n d o r l a u n c h
c o m m a n d t o e x e c u t e a p p l i c a t i o n s .
39. 39
• The application must
be archived with
above-mentioned
formats with
manifest.json in the
root. This will be a
right format of the
archive to upload in
ACCS.
• Define a version of
java to execute. It can
be 7 or 8. It can also
change from UI
console.
40. 40
• Use any zip or tar utility tool
- F o r z i p u s e — z i p m y a p p . z i p m a n i f e s t . j s o n c u s t o m a p p . j a r
- F o r t a r - t a r c v f z m y a p p . t g z m a n i f e s t . j s o n c u s t o m a p p . j a r
• Maven assembly plugin to build archive
52. 52
• Via UI console- Navigate to
ACCS console and upload
archive after creating an
application.
• REST API- ACCS provide REST
API to upload archive.
• Platform Service Manager
Command Line Interface.
• Using Developer Cloud Service
54. 54
Developer Cloud Service
• Wiki for document authoring and
collaboration with your team
members
• Version Control
• Automated build.
• Code Reviews
• Issues Tracking.
DevCS is a complete development platform provided
as a service to enable an agile development process
and to automate DevOps & delivery. It covers most of
the DevOps cycle including Continuous Integration,
Continuous Delivery and Collaboration.
55. 55
Developer Cloud Service components
• Ant, Maven, Gradle, npm, Grunt, Bower, Gulp,
Command line
• Continuous Integration — Hudson
• Issue Tracking
• Code review
• Deployment automation
• Agile process management
• Wiki
• Version Management — Git
• Build Automation
• Activity Stream
DevCS is a complete development platform provided
as a service to enable an agile development process
and to automate DevOps & delivery. It covers most of
the DevOps cycle including Continuous Integration,
Continuous Delivery and Collaboration.
64. 64
Quick Recap
• Commit Source to GitHub.
• Push to Developer cloud repo
• Trigger using cron and build application archive.
• Run Junit test case and inform if build fails.
• Trigger archive deploy to ACCS
• Place archive to different location via script.
.
65. 65
• Microservices are independent scalable function.
• Rollout and deployment is separate.
• Oracle ACCS is polyglot based container PAAS service.
• ACCS also provides runtime Ops features to runtime for
various technologies.
• Developer Cloud Service provides issue management, wiki and
CI/CD features.
• Oracle ACCS support microservices platform capabilities with
other Oracle Cloud services.
.
To use this title animation slide with a new image simply 1) move the top semi-transparent shape to the side, 2) delete placeholder image, 3) click on the picture icon to add a new picture, 4) Move semi-transparent shape back to original position, 5) Update text on slide.