SlideShare a Scribd company logo
THE ORACLE APPLICATION
CONTAINER CLOUD
AS THE MICROSERVICES
PLATFORM
Lucas Jellema (Oracle ACE Director & Developer Champion)
APACOUC 2017 Webinar Tour – The Netherlands  APAC
AGENDA
• The objective of using microservices and a working definition
• Realization of microservices and requirements of microservices platform
• Introduction of Oracle Application Container Cloud Service
• Demonstration of running an application on ACCS
• Where the rubber meets the road: ACCS for microservices
• DevOps with ACCS
• Provision & deploy, scale & unscale, monitor, upgrade and more
• Demonstration with multiple microservices & multiple instances on ACCS as
the microservices runtime platform
MICROSERVICE OBJECTIVES
(BECAUSE OF ENTERPRISE OBJECTIVES)
• Flexible, agile (Dev)
• Functionality evolves rapidly with little effort
• Easy quick rollout
• Low impact
• Manageable Non Functionally (Ops)
• Scalable – handle flexible workload (horizontal scaleout)
• Available – deal with failing nodes
• Comprehendable
• Dependencies, Impact, Implementation, deployment, operations
• Ownership (culture, organization, process)
• One team can do functional and technical evolution and deployment continuously
and independently
MICROSERVICES HOW
• Extremely decoupled (from other, non owned microservices | IT
components)
• Functionally
• Non functionally – platform
• Stateless (especially session-state less)
• Stand alone
• Deployable, manageable, scalable
• Container
• DevOps team
• “You build it, you run it, you fix | evolve it”
STANDING ON SHOULDERS OF GIANTS
• Monolith++
• API
• Scale out
• Automated CI/CD
• SOA++
• Stateless
• HTTP native (REST)
• Multiple tiers & platform components included
• Deployable
MICROSERVICES HOW
• Public APIs in standardized protocols
• Deployable on enterprise standardized microservices platform
• Omnia mea porto mecum - no external dependencies…
• …except:
• Calls to public APIs (exposed for example by microservices)
• Usage of platform facilities
• Generically available via contract
• Injected via parameters
• No sharing of data or other private resources across microservices
• Stateless and Horizontally scalable
• No session state, no client stickyness
• Potentially micro-silo with multiple tiers (including UI)
• Any implementation technology
• that can run on the platform
MICROSERVICES PLATFORM
• Receives microservice deployment
• Handles scale out & fail over
• Start/stop microservice instances based on
non functional requirements and live observed behavior
• Supports automated DevOps
• CD, monitoring, …
• Provides Capabilities – generic facilities available to microservices
from the run time platform
• Provided through public APIs whenever possible
• Injected meta-data at run time
• implemented by generic/platform level microservices
Microservices Platform
API
deploy, inject
dependencies, start,
watch, restart, stop,
scale
API API
API Gateway
Authenticate
Logging
Cache
SHARED PLATFORM CAPABILITY
• Microservices are isolated
• Not aware of each other (except through public APIs)
• Not sharing private resources
• Ideally each microservice brings its own platform
• To prevent run time environment from being out of synch and creating dependency/impact between multiple
platform users
• However: At some level, sharing is inevitable Storage, Compute, power supply, building
• In practice: having full blown RDBMS or Java EE server or Kafka cluster as part of a microservice
may be unfeasible
• Even if Docker images are light weight from layering – the run time resource usage is probably not
• One approach: forbid use of heavy platforms
• Alternative approach: provide generic ‘heavy duty’ platform capabilities, available for use in any
microservice in a standardized way
• If you need it, you can make use of your own private Oracle Database 12c Schema (or PDB) with the following
features available to you … ; recovery can be performed in the following ways and under these conditions…
MICROSERVICES CROSS PLATFORM
CAPABILITIES
• Authentication
• Persistent Storage
• Cache
• Load balancing/API Gateway
• Discovery/Lookup
• Monitoring
• Functional/Business KPIs
• Non Functional Platform/Container & Infra
• Audit, Usage tracking, Billing
• Notifications and alerting
• Logging
• Relational Database Capability
Microservices Platform
API
API
UI
API UI
Logging
Cache
Authentication
Notification
Usage
Tracking
EXAMPLE SYSTEM ARCHITECTURE
Microservices Platform
API
API
Logging
Cache
API API
UI
HTML 5
Web
Component
REST/
JSON
Authentication
API UI
Java /
Spring
Boot
NodeJS &
Express &
MongoDB Redis
Widgets
REST/
JSON
Storage
Python &
MySQL
REST/
JSON
WebLogic
& Oracle
Database
Legacy
Application
API UI
Strangler
NodeJS &
Express
Notification
Usage
Tracking
EVENTS
Producers
Consumers
MICROSERVICES AND EVENTS
• Report business events [without knowing to whom and without expecting a response]
• Allowing interested microservices to respond – for example trigger serverless functions
• Provide response to stateless caller – with conversation key
• Choreograph cross-microservice workflow | process
• Inform workflow | process orchestrator | job scheduler about activity status
• Enable distributed transaction – commit and rollback/compensate
• Make data events available for event sourcing
• Allowing microservices to maintain their own [derived] data set
• Synchronize cache refresh
• Informing any microservice caching data about the need to refresh specific records
• Hand systems events & metrics to monitoring service
• Extreme decoupling – microservice choreography
• Microservice never call each other, not even through public API;
all interactions are through events
REQUIREMENTS FOR EVENT CAPABILITY
IN MICROSERVICES PLATFORM
• Provide decoupling between publisher and consumer
• Generally accessible for all microservices
• Across the platform
• Using standardized protocols and formats for communications and event payload (http,
JSON)
• Scalable (handle high loads)
• Available (allow speedy event publication)
• Reliable (do not lose events, at least once delivery)
• Event Ordering (deliver events in the order of publication)
• Retain Event History
• Manageable at scale
• Event Catalog – which events are published, what do they mean and what is
their payload
• Harvested from microservices
EXTENDED API OF MICROSERVICE
• Deployment API
• Injectable dependencies – reference to cache, logging, storage URL, …
• Configurable meta-data – run time parameters, log level, credential (key)
• Interaction API
• REST Resources & Operations – query and URL parameters, message
formats
• Events Consumed – alternative way to call | activate a microservice
• Reference to entry in Event Catalog
• May include reference to shared Cache Resource
• Events Produced – alternative output from microservice
• Event can be an asynchronous response to a stateless consumer
API
EVENT BRIDGE TO CONNECT CLOUD &
ON PREMISES EVENT BUS
Microservices Platform
API
EventHub CS
On premises
EventBridge
API
API
API
API
API
API
API
API
Event Bus
API
EventBridgeEventBridge
ORACLE APPLICATION CONTAINER CLOUD
• Cloud based run time for custom applications
• Either batch programs or HTTP based services
• Supported runtimes:
• Java SE, Node, PHP, Python, Ruby (and more on the way)
Application Container Cloud
Runtime
Container
application
ORACLE APPLICATION CONTAINER CLOUD
• Horizontal Scalability: Supports multiple instances
with out of the box load balancing
• Rolling (zero downtime) Upgrades
• Provides multiple channels for [automated] Ops:
• Web UI, REST API, Command Line (PSM tool)
• Configurable through environment parameters passed to application container
• Integrates with Oracle Developer Cloud
• For automated create & redeploy
• Monitoring and Logging Support
• Log files available on Oracle Storage Cloud
• Java Flight Recorder included (for Java SE run time)
• Oracle Management Cloud Agents can be included
Application Container Cloud
Runtime
Container
application
DEMONSTRATION OF
ORACLE APPLICATION CONTAINER CLOUD
• Create a simple Node application
• Package it up
• Upload to Application Container Cloud
• Deploy to multiple instances
• Handle http requests to a single URL
from multiple instances
Application Container Cloud
Container
application
application
Zip file
Container
application
http requests
Load
Balancer
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
Application Container Cloud
Container
application
application
Zip file
Container
application
http requests
Load
Balancer
MICROSERVICES WITH
APPLICATION CONTAINER CLOUD
Microservices Platform
API
API
Logging
Cache
UI
HTML 5
Web
Component
REST/
JSON
Authentication
API UI
Java /
Spring
Boot
NodeJS &
Express
Widgets
REST/
JSON
Storage
Python
REST/
JSON
Notification
Usage
Tracking &
Billing
API
Java EE
Web
Profile
APIUI
PHP
Event Bus
Relational DB
Storage
Load
Balancing
Service
Discovery
Monitoring
Automated
Deployment
MICROSERVICES WITH
APPLICATION CONTAINER CLOUD
Microservices Platform
API
API
Logging
Cache
UI
HTML 5
Web
Component
REST/
JSON
Authentication
API UI
Java /
Spring
Boot
NodeJS &
Express
Widgets
REST/
JSON
Storage
Python
REST/
JSON
Notification
Usage
Tracking &
Billing
API
Java EE
Web
Profile
APIUI
PHP
Event Bus
Relational DB
Storage
Load
Balancing
Service
Discovery
Monitoring
Automated
Deployment
OMC
API CS
DBaaS
MySQL CS
Event Hub
Application
Cache
OMC
SERVICE BINDING INTO AN APPLICATION ON
APPLICATION CONTAINER CLOUD
• Capabilities required by “microservice” can be injected at deployment
time by ACCS through Service Bindings
• Service Bindings are [ references | connections ] to Oracle Cloud
Services such as
• MySQL CS, Database Cloud Service, Event Hub, Application Cache
• The actual connection
details (URL, credentials,
connect descriptor) are
made available as
environment variables
Application Container
Cloud
application
DBaaS
MySQL CS
Event Hub
EXAMPLE OF SERVICE BINDING:
INJECTING DBAAS INSTANCE
• ACCS Node runtime
already contains
Oracle Node DB Driver
and OCI Client libs
• When the service
binding is configured
then all required
runtime details
regarding DBaaS instance
are available
inside the Node application
Application
Container Cloud
data-api
REST
API
DBaaS
oracledb
DB driver
MyDB
demos
SCOTT
DEVOPS & MICROSERVICES DEMO
• Prepare Application Cache
• Manage Node application greeting in Developer Cloud CS
• Source code control, build, deploy
• Extend application to leverage the cache (to share state)
• Deploy Node application to ACCS
• Multiple instance with shared state through cache
• Create second application that also has access to the cache
• Deploy the application to ACCS
• Demonstrate that this new application sees results from greeting
DEVOPS & MICROSERVICES DEMO
Developer Cloud
Service
greeting
Application Cache
DEVOPS & MICROSERVICES DEMO
Developer Cloud
Service
greeting
Application Cache
Application
Container Cloud:
greeting
greeting greeting
http requests
greetingCache
requestCount
Load
Balancer
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
DEVOPS & MICROSERVICES DEMO
Developer Cloud
Service
greeting
Application
Container Cloud:
greeting
greeting greeting
http requests
Load
Balancer
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
Application
Container Cloud:
greeting
greeting greeting
http requests
Load
Balancer
9 7
Application
Container Cloud:
greeting
greeting greeting
http requests
Load
Balancer
9 7
Application Cache
Application
Container Cloud:
greeting
greeting greeting
http requests
greetingCache
requestCount: 16
Load
Balancer
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
Application Cache
Application
Container Cloud:
greeting
greeting greeting
http requests
9 7
Application Cache
Application
Container Cloud:
greeting
greeting greeting
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
FAST FORWARD
• Commit sources to Git
• Push to Developer Cloud repo
• Trigger and Perform Build of application greeting
• Trigger Deployment to ACCS
• Application Greeting is redeployed with
• Application Cache reference injected into it
• REST calls to read from and write to Application Cache greetingCache
• Make multiple requests to greeting
• Restart or Redeploy greeting
The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)
Instance web.1
Instance web.2
DEVOPS & MICROSERVICES DEMO
Developer Cloud
Service
greeting
Application Cache
Application
Container Cloud:
greeting
greeting greeting
http requests
greetingCache
requestCount
Load
Balancer
DEVOPS & MICROSERVICES NEXT STEPS
Developer Cloud
Service
greeting
Application Cache
Application
Container Cloud:
TrafficMonitor
Application
Container Cloud:
greeting
greeting greeting
trafficmonitor
http requests
http requests
Event HubDBaaS
SUMMARY
• Microservices are about rapid rollout of scalable, available functionality
• (session) Stateless, Continuous deployment, horizontal scale out
• One team is owner of a microservice and can evolve and deploy independently
• Microservice is understandable (Devlopable) and manageable (Op[s]erable)
• `Microservices require a runtime platform that
• Can support Ops (deploy, scale, load balance, monitor, upgrade, log …)
• Provides generic capabilities such as Event Bus, Cache, Relational DB, NoSQL
• Application Container Cloud provides runtime plus Ops facilities for
custom applications in various technologies
• ACCS injects platform capabilities through service bindings
• Many of the microservice objectives can be realized with ACCS
• https://github.com/lucasjellema/greeting
• Blog: technology.amis.nl
• Email: lucas.jellema@amis.nl
• : lucasjellema
• : lucas-jellema
• : www.amis.nl, info@amis.nl
+31 306016000
Edisonbaan 15,
Nieuwegein

More Related Content

PPTX
Modern DevOps across Technologies on premises and clouds with Oracle Manageme...
PPTX
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
PPTX
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
PPTX
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
PPTX
Introduction to Node (15th May 2017)
PPTX
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
PPTX
Getting Started, Low Hanging Fruit: Our First Experiences with Oracle Managem...
PPTX
WebLogic and GraalVM
Modern DevOps across Technologies on premises and clouds with Oracle Manageme...
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction to Node (15th May 2017)
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
Getting Started, Low Hanging Fruit: Our First Experiences with Oracle Managem...
WebLogic and GraalVM

What's hot (20)

PDF
The Art of Intelligence – A Practical Introduction Machine Learning for Orac...
PPTX
Handson Oracle Management Cloud with Application Performance Monitoring and L...
PPTX
Delivering Developer Tools at Scale
PDF
5 steps to take setting up a streamlined container pipeline
PDF
Oracle SOA suite and Coherence dehydration
PDF
Alibaba Cloud Conference 2016 - Docker Enterprise
PDF
Integrating Alfresco @ Scale (via event-driven micro-services)
 
PPTX
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
PPTX
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
PPTX
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
PPTX
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
PPTX
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
PDF
Platform Clouds, Containers, Immutable Infrastructure Oh My!
PDF
Jelastic DevOps Platform Product Overview for Service Providers
PDF
Kubernetes and Oracle - a guiding whitepaper
PPTX
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
PPTX
Introduction to Microservices and Cloud Native Application Architecture
PDF
Containers and microservices for realists
PDF
REST - Why, When and How? at AMIS25
PPTX
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
The Art of Intelligence – A Practical Introduction Machine Learning for Orac...
Handson Oracle Management Cloud with Application Performance Monitoring and L...
Delivering Developer Tools at Scale
5 steps to take setting up a streamlined container pipeline
Oracle SOA suite and Coherence dehydration
Alibaba Cloud Conference 2016 - Docker Enterprise
Integrating Alfresco @ Scale (via event-driven micro-services)
 
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Jelastic DevOps Platform Product Overview for Service Providers
Kubernetes and Oracle - a guiding whitepaper
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
Introduction to Microservices and Cloud Native Application Architecture
Containers and microservices for realists
REST - Why, When and How? at AMIS25
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Ad

Similar to The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017) (20)

PPTX
Business and IT agility through DevOps and microservice architecture powered ...
PPTX
.NET microservices with Azure Service Fabric
PPTX
Designing Microservices
PPTX
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
PPTX
Live Introduction to the Cloud Native Microservices Platform – open, manageab...
PDF
Cloud Native Application Development
PPTX
Cloud Foundry Roadmap (Cloud Foundry Summit 2014)
PPTX
Live Application and Infrastructure Monitoring and Root Cause Log Analysis wi...
PDF
.NET Cloud-Native Bootcamp- Los Angeles
PPTX
Oow2016 review--paas-microservices-
PDF
Introduction to Microservices
PPTX
Cf summit2014 roadmap
PDF
Big data conference europe real-time streaming in any and all clouds, hybri...
PPTX
Microservices in the Enterprise
PPTX
Micro service session 1
PDF
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
PPTX
Mobility and federation of Cloud computing
PDF
Webinar: What's new in CDAP 3.5?
PPTX
The Application Server Platform of the Future - Container & Cloud Native and ...
PPTX
Kubernetes Infra 2.0
Business and IT agility through DevOps and microservice architecture powered ...
.NET microservices with Azure Service Fabric
Designing Microservices
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Live Introduction to the Cloud Native Microservices Platform – open, manageab...
Cloud Native Application Development
Cloud Foundry Roadmap (Cloud Foundry Summit 2014)
Live Application and Infrastructure Monitoring and Root Cause Log Analysis wi...
.NET Cloud-Native Bootcamp- Los Angeles
Oow2016 review--paas-microservices-
Introduction to Microservices
Cf summit2014 roadmap
Big data conference europe real-time streaming in any and all clouds, hybri...
Microservices in the Enterprise
Micro service session 1
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
Mobility and federation of Cloud computing
Webinar: What's new in CDAP 3.5?
The Application Server Platform of the Future - Container & Cloud Native and ...
Kubernetes Infra 2.0
Ad

More from Lucas Jellema (20)

PPTX
Introduction to web application development with Vue (for absolute beginners)...
PPTX
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
PPTX
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
PPTX
Apache Superset - open source data exploration and visualization (Conclusion ...
PPTX
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
PPTX
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
PPTX
Op je vingers tellen... tot 1000!
PPTX
IoT - from prototype to enterprise platform (DigitalXchange 2022)
PPTX
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
PPTX
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
PPTX
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
PPTX
Introducing Dapr.io - the open source personal assistant to microservices and...
PPTX
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
PPTX
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
PPTX
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
PPTX
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
PPTX
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
PPTX
Tech Talks 101 - DevOps (jan 2022)
PPTX
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
PPTX
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Introduction to web application development with Vue (for absolute beginners)...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Apache Superset - open source data exploration and visualization (Conclusion ...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Op je vingers tellen... tot 1000!
IoT - from prototype to enterprise platform (DigitalXchange 2022)
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Introducing Dapr.io - the open source personal assistant to microservices and...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Tech Talks 101 - DevOps (jan 2022)
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
System and Network Administration Chapter 2
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Nekopoi APK 2025 free lastest update
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
medical staffing services at VALiNTRY
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
AI in Product Development-omnex systems
Design an Analysis of Algorithms I-SECS-1021-03
Understanding Forklifts - TECH EHS Solution
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
System and Network Administration Chapter 2
ManageIQ - Sprint 268 Review - Slide Deck
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Odoo POS Development Services by CandidRoot Solutions
Wondershare Filmora 15 Crack With Activation Key [2025
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
How to Migrate SBCGlobal Email to Yahoo Easily
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Nekopoi APK 2025 free lastest update
VVF-Customer-Presentation2025-Ver1.9.pptx
How to Choose the Right IT Partner for Your Business in Malaysia
medical staffing services at VALiNTRY
PTS Company Brochure 2025 (1).pdf.......
AI in Product Development-omnex systems

The Oracle Application Container Cloud as the Microservices Platform (APAC OUC 2017 Webinar Tour 14 aug 2017)

  • 1. THE ORACLE APPLICATION CONTAINER CLOUD AS THE MICROSERVICES PLATFORM Lucas Jellema (Oracle ACE Director & Developer Champion) APACOUC 2017 Webinar Tour – The Netherlands  APAC
  • 2. AGENDA • The objective of using microservices and a working definition • Realization of microservices and requirements of microservices platform • Introduction of Oracle Application Container Cloud Service • Demonstration of running an application on ACCS • Where the rubber meets the road: ACCS for microservices • DevOps with ACCS • Provision & deploy, scale & unscale, monitor, upgrade and more • Demonstration with multiple microservices & multiple instances on ACCS as the microservices runtime platform
  • 3. MICROSERVICE OBJECTIVES (BECAUSE OF ENTERPRISE OBJECTIVES) • Flexible, agile (Dev) • Functionality evolves rapidly with little effort • Easy quick rollout • Low impact • Manageable Non Functionally (Ops) • Scalable – handle flexible workload (horizontal scaleout) • Available – deal with failing nodes • Comprehendable • Dependencies, Impact, Implementation, deployment, operations • Ownership (culture, organization, process) • One team can do functional and technical evolution and deployment continuously and independently
  • 4. MICROSERVICES HOW • Extremely decoupled (from other, non owned microservices | IT components) • Functionally • Non functionally – platform • Stateless (especially session-state less) • Stand alone • Deployable, manageable, scalable • Container • DevOps team • “You build it, you run it, you fix | evolve it”
  • 5. STANDING ON SHOULDERS OF GIANTS • Monolith++ • API • Scale out • Automated CI/CD • SOA++ • Stateless • HTTP native (REST) • Multiple tiers & platform components included • Deployable
  • 6. MICROSERVICES HOW • Public APIs in standardized protocols • Deployable on enterprise standardized microservices platform • Omnia mea porto mecum - no external dependencies… • …except: • Calls to public APIs (exposed for example by microservices) • Usage of platform facilities • Generically available via contract • Injected via parameters • No sharing of data or other private resources across microservices • Stateless and Horizontally scalable • No session state, no client stickyness • Potentially micro-silo with multiple tiers (including UI) • Any implementation technology • that can run on the platform
  • 7. MICROSERVICES PLATFORM • Receives microservice deployment • Handles scale out & fail over • Start/stop microservice instances based on non functional requirements and live observed behavior • Supports automated DevOps • CD, monitoring, … • Provides Capabilities – generic facilities available to microservices from the run time platform • Provided through public APIs whenever possible • Injected meta-data at run time • implemented by generic/platform level microservices Microservices Platform API deploy, inject dependencies, start, watch, restart, stop, scale API API API Gateway Authenticate Logging Cache
  • 8. SHARED PLATFORM CAPABILITY • Microservices are isolated • Not aware of each other (except through public APIs) • Not sharing private resources • Ideally each microservice brings its own platform • To prevent run time environment from being out of synch and creating dependency/impact between multiple platform users • However: At some level, sharing is inevitable Storage, Compute, power supply, building • In practice: having full blown RDBMS or Java EE server or Kafka cluster as part of a microservice may be unfeasible • Even if Docker images are light weight from layering – the run time resource usage is probably not • One approach: forbid use of heavy platforms • Alternative approach: provide generic ‘heavy duty’ platform capabilities, available for use in any microservice in a standardized way • If you need it, you can make use of your own private Oracle Database 12c Schema (or PDB) with the following features available to you … ; recovery can be performed in the following ways and under these conditions…
  • 9. MICROSERVICES CROSS PLATFORM CAPABILITIES • Authentication • Persistent Storage • Cache • Load balancing/API Gateway • Discovery/Lookup • Monitoring • Functional/Business KPIs • Non Functional Platform/Container & Infra • Audit, Usage tracking, Billing • Notifications and alerting • Logging • Relational Database Capability Microservices Platform API API UI API UI Logging Cache Authentication Notification Usage Tracking
  • 10. EXAMPLE SYSTEM ARCHITECTURE Microservices Platform API API Logging Cache API API UI HTML 5 Web Component REST/ JSON Authentication API UI Java / Spring Boot NodeJS & Express & MongoDB Redis Widgets REST/ JSON Storage Python & MySQL REST/ JSON WebLogic & Oracle Database Legacy Application API UI Strangler NodeJS & Express Notification Usage Tracking
  • 12. MICROSERVICES AND EVENTS • Report business events [without knowing to whom and without expecting a response] • Allowing interested microservices to respond – for example trigger serverless functions • Provide response to stateless caller – with conversation key • Choreograph cross-microservice workflow | process • Inform workflow | process orchestrator | job scheduler about activity status • Enable distributed transaction – commit and rollback/compensate • Make data events available for event sourcing • Allowing microservices to maintain their own [derived] data set • Synchronize cache refresh • Informing any microservice caching data about the need to refresh specific records • Hand systems events & metrics to monitoring service • Extreme decoupling – microservice choreography • Microservice never call each other, not even through public API; all interactions are through events
  • 13. REQUIREMENTS FOR EVENT CAPABILITY IN MICROSERVICES PLATFORM • Provide decoupling between publisher and consumer • Generally accessible for all microservices • Across the platform • Using standardized protocols and formats for communications and event payload (http, JSON) • Scalable (handle high loads) • Available (allow speedy event publication) • Reliable (do not lose events, at least once delivery) • Event Ordering (deliver events in the order of publication) • Retain Event History • Manageable at scale • Event Catalog – which events are published, what do they mean and what is their payload • Harvested from microservices
  • 14. EXTENDED API OF MICROSERVICE • Deployment API • Injectable dependencies – reference to cache, logging, storage URL, … • Configurable meta-data – run time parameters, log level, credential (key) • Interaction API • REST Resources & Operations – query and URL parameters, message formats • Events Consumed – alternative way to call | activate a microservice • Reference to entry in Event Catalog • May include reference to shared Cache Resource • Events Produced – alternative output from microservice • Event can be an asynchronous response to a stateless consumer API
  • 15. EVENT BRIDGE TO CONNECT CLOUD & ON PREMISES EVENT BUS Microservices Platform API EventHub CS On premises EventBridge API API API API API API API API Event Bus API EventBridgeEventBridge
  • 16. ORACLE APPLICATION CONTAINER CLOUD • Cloud based run time for custom applications • Either batch programs or HTTP based services • Supported runtimes: • Java SE, Node, PHP, Python, Ruby (and more on the way) Application Container Cloud Runtime Container application
  • 17. ORACLE APPLICATION CONTAINER CLOUD • Horizontal Scalability: Supports multiple instances with out of the box load balancing • Rolling (zero downtime) Upgrades • Provides multiple channels for [automated] Ops: • Web UI, REST API, Command Line (PSM tool) • Configurable through environment parameters passed to application container • Integrates with Oracle Developer Cloud • For automated create & redeploy • Monitoring and Logging Support • Log files available on Oracle Storage Cloud • Java Flight Recorder included (for Java SE run time) • Oracle Management Cloud Agents can be included Application Container Cloud Runtime Container application
  • 18. DEMONSTRATION OF ORACLE APPLICATION CONTAINER CLOUD • Create a simple Node application • Package it up • Upload to Application Container Cloud • Deploy to multiple instances • Handle http requests to a single URL from multiple instances Application Container Cloud Container application application Zip file Container application http requests Load Balancer
  • 35. Application Container Cloud Container application application Zip file Container application http requests Load Balancer
  • 36. MICROSERVICES WITH APPLICATION CONTAINER CLOUD Microservices Platform API API Logging Cache UI HTML 5 Web Component REST/ JSON Authentication API UI Java / Spring Boot NodeJS & Express Widgets REST/ JSON Storage Python REST/ JSON Notification Usage Tracking & Billing API Java EE Web Profile APIUI PHP Event Bus Relational DB Storage Load Balancing Service Discovery Monitoring Automated Deployment
  • 37. MICROSERVICES WITH APPLICATION CONTAINER CLOUD Microservices Platform API API Logging Cache UI HTML 5 Web Component REST/ JSON Authentication API UI Java / Spring Boot NodeJS & Express Widgets REST/ JSON Storage Python REST/ JSON Notification Usage Tracking & Billing API Java EE Web Profile APIUI PHP Event Bus Relational DB Storage Load Balancing Service Discovery Monitoring Automated Deployment OMC API CS DBaaS MySQL CS Event Hub Application Cache OMC
  • 38. SERVICE BINDING INTO AN APPLICATION ON APPLICATION CONTAINER CLOUD • Capabilities required by “microservice” can be injected at deployment time by ACCS through Service Bindings • Service Bindings are [ references | connections ] to Oracle Cloud Services such as • MySQL CS, Database Cloud Service, Event Hub, Application Cache • The actual connection details (URL, credentials, connect descriptor) are made available as environment variables Application Container Cloud application DBaaS MySQL CS Event Hub
  • 39. EXAMPLE OF SERVICE BINDING: INJECTING DBAAS INSTANCE • ACCS Node runtime already contains Oracle Node DB Driver and OCI Client libs • When the service binding is configured then all required runtime details regarding DBaaS instance are available inside the Node application Application Container Cloud data-api REST API DBaaS oracledb DB driver MyDB demos SCOTT
  • 40. DEVOPS & MICROSERVICES DEMO • Prepare Application Cache • Manage Node application greeting in Developer Cloud CS • Source code control, build, deploy • Extend application to leverage the cache (to share state) • Deploy Node application to ACCS • Multiple instance with shared state through cache • Create second application that also has access to the cache • Deploy the application to ACCS • Demonstrate that this new application sees results from greeting
  • 41. DEVOPS & MICROSERVICES DEMO Developer Cloud Service greeting Application Cache
  • 42. DEVOPS & MICROSERVICES DEMO Developer Cloud Service greeting Application Cache Application Container Cloud: greeting greeting greeting http requests greetingCache requestCount Load Balancer
  • 92. DEVOPS & MICROSERVICES DEMO Developer Cloud Service greeting Application Container Cloud: greeting greeting greeting http requests Load Balancer
  • 96. Application Container Cloud: greeting greeting greeting http requests Load Balancer 9 7 Application Cache Application Container Cloud: greeting greeting greeting http requests greetingCache requestCount: 16 Load Balancer
  • 103. Application Container Cloud: greeting greeting greeting http requests 9 7 Application Cache Application Container Cloud: greeting greeting greeting
  • 109. FAST FORWARD • Commit sources to Git • Push to Developer Cloud repo • Trigger and Perform Build of application greeting • Trigger Deployment to ACCS • Application Greeting is redeployed with • Application Cache reference injected into it • REST calls to read from and write to Application Cache greetingCache • Make multiple requests to greeting • Restart or Redeploy greeting
  • 112. DEVOPS & MICROSERVICES DEMO Developer Cloud Service greeting Application Cache Application Container Cloud: greeting greeting greeting http requests greetingCache requestCount Load Balancer
  • 113. DEVOPS & MICROSERVICES NEXT STEPS Developer Cloud Service greeting Application Cache Application Container Cloud: TrafficMonitor Application Container Cloud: greeting greeting greeting trafficmonitor http requests http requests Event HubDBaaS
  • 114. SUMMARY • Microservices are about rapid rollout of scalable, available functionality • (session) Stateless, Continuous deployment, horizontal scale out • One team is owner of a microservice and can evolve and deploy independently • Microservice is understandable (Devlopable) and manageable (Op[s]erable) • `Microservices require a runtime platform that • Can support Ops (deploy, scale, load balance, monitor, upgrade, log …) • Provides generic capabilities such as Event Bus, Cache, Relational DB, NoSQL • Application Container Cloud provides runtime plus Ops facilities for custom applications in various technologies • ACCS injects platform capabilities through service bindings • Many of the microservice objectives can be realized with ACCS
  • 115. • https://github.com/lucasjellema/greeting • Blog: technology.amis.nl • Email: lucas.jellema@amis.nl • : lucasjellema • : lucas-jellema • : www.amis.nl, info@amis.nl +31 306016000 Edisonbaan 15, Nieuwegein

Editor's Notes

  • #2: Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Microservices need a platform to run on and to provide generic capabilities such as data caching, an event bus, access to RDBMS and File System. This platform should handle scaling and fail over of the microservices. The Application Container Cloud runs and automatically scales applications built in various technologies such as Node, Java, PHP and Python, it provides caching and access to an event bus and database in the cloud. This session demonstrates how multiple microservices are deployed to and run on ACC, using these capabilities.
  • #11: https://www.martinfowler.com/bliki/StranglerApplication.html https://dzone.com/articles/why-springboot
  • #13: http://microservices.io/patterns/data/event-driven-architecture.html http://eventuate.io/whyeventdriven.html http://www.kennybastani.com/2017/01/building-event-driven-microservices.html
  • #37: https://www.martinfowler.com/bliki/StranglerApplication.html https://dzone.com/articles/why-springboot
  • #38: https://www.martinfowler.com/bliki/StranglerApplication.html https://dzone.com/articles/why-springboot