SlideShare a Scribd company logo
Simplify DevOps with
Microservices and Mobile Backends
Mark Nelson
Developer Evangelist
http://bit.ly/oraclespringboot
Copyright © 2023, Oracle and/or its affiliates
2
Mark Nelson
Developer Evangelist
Oracle Database
Copyright © 2023, Oracle and/or its affiliates
3
1. Containers, Kubernetes, and Microservices – a unifying vision in a modern backend
2. What is a “Backend Platform” and how does it help you
3. 12 Patterns for Microservices Success
4. Developer Preview Oracle Backend for Spring Boot (and Parse Platform)
5. Managing transactions across microservices
6. Learn more and try it out in the Hands-on Lab
Agenda
Containers, Kubernetes, Microservices with the converged Oracle Database
Unifying a modern application backend stack
Copyright © 2023, Oracle and/or its affiliates
Oracle Backend for
Microservices and
Mobile Apps
Develop
ANYWHERE
Converged Oracle Database Kubernetes
Containers – Database and Apps
Docker or Podman
containers
Kubernetes Operator
Oracle Backend for Spring
Boot
Autonomous, RAC, Global Database
Transaction Manager for
Microservices
TxEventQ as an Event Mesh
Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
5
We’d love to hear from you!
Quick survey – tell us about yourSpring Boot usage
Copyright © 2023, Oracle and/or its affiliates
6
What is a “Backend Platform”
and how does it help you?
Spring Boot Apps
Mobile Apps
Copyright © 2023, Oracle and/or its affiliates
7
Backend as a Service is an important pattern, but relatively rare for Microservices
• It allows developers to focus on the frontend/business logic
• Backend services are used without the need to build or maintain them, for example:
• AppContainers
• Kubernetes clusters
• DatabasesContainers
• NetworkingandSecurity
• ServiceDiscoveryand Resiliency
• Cloud andOn-prem
Backend-as-a-Service
(BaaS) allows developers
to focus on the frontend of
their applications and
leverage backend services
without building or
maintaining them.
- Cloudflare
The “Backend as a Service” pattern
Oracle Backend Platform for Spring Boot makes it
super easy to develop web and mobile apps
apps ANYWHERE with the power of the
converged Oracle Database
8 Copyright © 2023, Oracle and/or its affiliates
Copyright © 2023, Oracle and/or its affiliates
9
• Developers develop with well known APIs
• Developers focus on business logic and app features
• APIs run on infrastructure provisioned by a backend service
• Developers don’t need to worry about backend concerns,
their apps get deployed in app containers, with data
persistence
• Backend is managed by DevOps or DataOps engineers
• DBAs responsibilities now overlap with running app
runtime
• Well engineered backends are portable across clouds,
reducing a lock-in to a cloud vendor
Why a multi-cloud Backend Platform?
Copyright © 2023, Oracle and/or its affiliates
10
A lot of developers today use frameworks - Spring Boot and Spring Framework are the most
popular, by far, based on several measurements (job advertisements, stack overflow posts,
GitHub repos, Google search trends, etc.)
We can write less code, and get more done and there’s a wealth of knowledge online
Spring Boot is the most popular microservices platform
263,109
134,404
92,932
29,445
17,233
16,399
19,388
29,841
3,338
20,812
3,383
1,517
3,731
2,546
6,932
6,512
4,766
0
50,000
100,000
150,000
200,000
250,000
300,000
Source: Stack Overflow Jan 2023
359,791
82,730
24,207
8,367
24,294
11,564
48,140
6,692
4,216
14,146
6,637
1,956
2,865
10,194
8,196
11,497
851
0
50,000
100,000
150,000
200,000
250,000
300,000
350,000
400,000
Spring
Spring
Boot
Hibernate
Java
EE
Struts
JSF
Grails
MyBatis
GWT
Dropwizard
Quarkus
Micronaut
Wicket
Vert.x
Blade
Vaadin
jHipster
Jakarta
EE
Source: GitHub Jan 2023
890,201
Copyright © 2023, Oracle and/or its affiliates
11
• Mobile developers rely on the Backend as a Service to keep it simple
• Mobile frameworks and tools tend to be quite different to server side
ones
• Mobile developers want to focus on their app, and develop
features quickly but don’t care as much about the implementation
details of the backend – they think about things like:
• I have a document, I want to store it and get it back later
• I need to send a notification
• I need to do a transaction
• I want a stack trace or dump whenever my app crashes
• Not things like:
• What kind of index do I need on this table?
• What type of processor would be better for this Kubernetes cluster
node?
• What storage class do I need for these audio resource files?
Why Parse Platform?
Copyright © 2023, Oracle and/or its affiliates
12
12 Patterns for Microservices Success
Microservices implementations don’t always succeed. Why?
Microservices are hard, and most projects fail! For success we need a 3-pronged approach
Our Approach
Copyright © 2023, Oracle and/or its affiliates
Microservices
Success Across
the Enterprise
Converged Oracle Database Kubernetes, Containers
12 Proven Microservices Patterns
We’ll show examples
Kubernetes backplane
Oracle Backend for Spring Boot
Multi-tenant, built for microservices – e.g.
TxEventQ Event Mesh, Sagas with Transaction Manager
Bounded
Context
Security
CQRS
Loose
Coupling
Transactional
Outbox
Sagas
CI/CD
Reliable
Event Mesh
Polyglot
Programming
Unified
Observability
Event
Aggregation
Backend
(as-a-Service)
The 12 Patterns for Microservices Success
Copyright © 2023, Oracle and/or its affiliates
Spring Boot (Microservices) Backend for Oracle integrates and manages these patterns
These are also available to mobile-first apps with the Parse Platform
Copyright © 2023, Oracle and/or its affiliates
15
Oracle Backend for Spring Boot
(including the Parse Platform)
Developer Preview
Oracle Backend for Spring Boot (optionally including Parse Platform)
Developer Preview available now on OCI
Marketplace
• Oracle Autonomous Database and Oracle
Container Engine for Kubernetes with the
following platform services pre-installed and
pre-configured:
• Spring Eureka Service Registry
• Spring Configuration Server
• APISIX API Gateway
• Oracle Transaction Manager for Microservices
• Netflix Conductor (Workflow)
• Kafka
• Prometheus
• Grafana
• Jaeger
• Open Telemetry
• Hashicorp Vault
Built on OCI:
• Oracle Autonomous Database
• Geographically sharded global database with
automated backup, scaling, and self-managed
by AI
• Oracle Container Engine for Kubernetes
• Scale on demand, secure Kubernetes platform
• Virtual Cloud Network
• Enhanced security and best performance
• OCI Load Balancer, Registry, Vault, Object
Store
• On-premises install available, Azure coming
soon
16 Copyright © 2023, Oracle and/or its affiliates
bit.ly/oraclespringboot
Using Spring Initializr in Visual Studio Code – and create the Customer Entity
Create a Spring application
Copyright © 2023, Oracle and/or its affiliates
Development time features
• CLI and Visual Studio Code
Extension to manage deployment
and configuration
• Spring Boot Starters for Oracle
technologies (e.g. UCP,
AQ/TxEventQ JMS, SODA/JSON)
• Spring Data JDBC, JPA
• Spring Config
• Eureka Client, Feign, Ribbon,
Resilience4j
• Spring Cloud Streams (Kafka,
more coming soon)
• Integration with SQLcl and
Liquibase for schema CI/CD
Oracle Backend for Spring Boot (including Parse Platform)
Multi-cloud
Your choice of cloud – or
on-premises
Deploy into compute
instances (VMs) or
containers and
Kubernetes
Community supported –
open source
Developer-friendly
APIs and SDKs across all
popular languages plus
REST and GraphQL APIs.
Parse API and Firebase-
like APIs
iOS, Android and web
Rich IDE support
Comprehensive CI/CD –
DevOps at scale
Copyright © 2023, Oracle and/or its affiliates
18
Backend services
Documents, files,
functions, config,
authentication,
geolocation, analytics,
microtransactions, push
notifications, caching,
local storage.
Scalable and reliable
Cloud-scale backend grows
as you need, secure by
design
Service scaling, discovery,
routing, circuit breakers
Load Balancing, API fault
tolerance, Observability
Platformservices
Service discovery,
externalized
configuration, workflow,
transaction management,
observability, distributed
tracing, resiliency, fault
tolerance, API Gateway
Apps Dashboard
Manage your applications
from a developer-focused
dashboard
Monitor, observe, control,
diagnose, react
Spring Boot for Microservices Development and Deployment
Oracle Backend for Spring Boot
Copyright © 2023, Oracle and/or its affiliates
API
Gateway
Spring
Apps
Oracle Database
App
Container
Parse
Container
App
Container
Spring Apps Control Center
Apps Dashboard
Workflows
Service
Discovery
Security
Auth and
Access
Networking
App
Container
Resilience4J, OpenFeign, Spring Config
Circuit breakers, client-side load
balancing, fault tolerance
Events
Spatial
Graph
Text Search
Relational
Documents
Oracle Backend for Spring Boot
Multitenant architecture for SaaS apps
Parse Oracle
Database
Adapter
iOS, Android, Unity,
React Native, Flutter
Node.js,
.Net, PHP, C, Arduino
Mobile SDKs
Or CLI
Dashboard
19
Oracle DB
adapter
Complete and Simple Platform forAll Data Management Needs
Oracle Database
Copyright © 2023, Oracle and/or its affiliates
Converged Database
Complete support for all modern data
types, workloads, and development styles
Completely consistent, scalable, available,
and secure
Complete
Autonomous Database
Converged DB delivered as a self-driving,
self-securing, self-repairing Cloud Database
Simplest DB for developing and running any
apps or analytics at any scale or criticality
Simple
Oracle Database for Microservices
Several features are built-in the Oracle Database for Microservices
21 Copyright © 2023, Oracle and/or its affiliates
Relational
Data stored as rows
Native JSON
SQL/JSON and NoSQL like API s
Blockchain tables
Tamper resistant rows
In-Memory analytics
Data as columns in memory
(in columns on Exadata)
Spatial
Data stored as geometry
(GeoJSON compatible)
In-Database Machine Learning
Models in Python
Graph
Data as property graph or RDF
REST Data Services
Data from tables, collection, SQL queries…
exposed as REST APIs
External Data
External data can be accessed: csv, json, avro,
parquet, orc, hdfs, hive, S3, Azure BLOB, GCP…
Text Data
Binary data: PDF, DOCX, PPTX…
XML
Data stored as XML
Transactional Event Queues (TxEventQ) Event Mesh
Event Mesh for JMS and Kafka
1. Saga in Database
2. TxEventQ Event Mesh
3. Unified Observability
4. Data Refactoring Advisor
5. Spring Boot Java SDK
6. Mobile microservices
Saga in Database
Auto compensation
2
1
Tracing Collector
Observability Exporter
3
Spring Boot Java SDK
6
Mobile Microservices
Microservices access all the converged
Oracle database data and app services
Oracle Database
5
Data Refactoring Advisor
4
Spring Admin
[Date]
Copyright © 2023, Oracle and/or its affiliates
22
Spring Eureka Service Registry
[Date]
Copyright © 2023, Oracle and/or its affiliates
23
APISIX API Gateway
[Date]
Copyright © 2023, Oracle and/or its affiliates
24
Visual Studio Code Extension
[Date]
Copyright © 2023, Oracle and/or its affiliates
25
Using the included Spring Boot Grafana Dashboard
Monitor Spring applications
Copyright © 2023, Oracle and/or its affiliates
What is happening here?
There appears to be a CPU
usage spike and a
corresponding response time
spike about every 10 minutes.
Using the included OpenTelemetry and Jaeger Dashboard
Trace Spring applications (including into the database and TxEventQ)
Copyright © 2023, Oracle and/or its affiliates
This invocation of the fraud
service is taking much longer
than usual – this 20 second
pause before the database
operation should not happen
<dependency>
<groupId>com.oracle.database.spring</groupId>
<artifactId>oracle-spring-boot-starter-aqjms</artifactId>
<version>2.7.7</version>
</dependency>
Need to use topics or queues?
Copyright © 2023, Oracle and/or its affiliates
Add a dependency for the
Oracle Spring Boot Starter for
AQ JMS and TxEventQ
oracle.aq.username=pdbadmin
oracle.aq.password=Welcome123
oracle.aq.url=jdbc:oracle:thin:@//172.17.0.2:1521/pdb1
Add details for your JMS
connection (or put them in the
Config Server instead!)
Use JMS provider AQ and TxEventQ built in the Oracle Database
@Component
public class Receiver {
@JmsListener(destination = "mailbox", containerFactory = "myFactory")
public void receiveMessage(Email email) {
System.out.println("Received <" + email + ">");
}
}
Need to use topics or queues?
Copyright © 2023, Oracle and/or its affiliates
Use the JmsListener annotation to
name your queue/topic – the CLI will
automatically create it for you when
you deploy your service
Oracle Spring Boot Starter for AQ
JMS will automatically inject both
a JDBC database connection and
a JMS connection factory into
your service
Copyright © 2023, Oracle and/or its affiliates
30
Managing transactions across
microservices
Loosely coupled transactions – Sagas
How is data consistency handled today in
microservices?
There is a need for an enterprise solution to address data consistency issues for Microservices apps
• Requires developers to have advanced skills
• Takes valuable time away from app developers
• Can be error prone; increases testing complexity
• Increases time and cost to market
• Inconsistent data view for a period
• Potential financial losses due to loss of business and customer
dissatisfaction
• Resource intensive task, which increases cost of operations
• Almost all solutions are for Java apps
• Don’t provide loosely coupled / asynchronous consistency for scale
• Lack enterprise capabilities; e.g. integration with K8S ecosystem
• Not optimized for Oracle Database
Use of existing Transaction
Managers
Developers building transaction
management logic in apps
Manual reconciliation
Copyright © 2023, Oracle and/or its affiliates
31
Oracle Transaction Manager for Microservices (MicroTx)
Enables developers to use distributed transactions to ensure data consistency across
microservices based apps
• Using heterogenous resource managers
• Utilizing many other existing services/applications
32 Copyright © 2023, Oracle and/or its affiliates
 Developed in multiple programming languages
 Implements the Eclipse Microprofile LRA coordinator for Microservices with REST
 Deployed in Kubernetes
Oracle Transaction Manager for Microservices (MicroTx)
Two main components
• Transaction Coordinator
• MicroTx Library
• one for each programing language
• utilized by each application microservice
Transaction coordinator is a microservice
• Deployed along with application microservices
REST API based communication
• No additional requirements imposed on application microservices
• Transaction state stored in etcd or Oracle Database
33 Copyright © 2023, Oracle and/or its affiliates
Summary
12 microservices patterns for success, Kubernetes, Containers, Oracle Database
• Unified backend for apps, Kubernetes, and database makes app dev simple
• Multi-cloud execution of the backend platform avoids vendor lock-in
• Develop anywhere – OCI, on-premises/laptop, Azure, AWS
• Developers can focus on app logic and less on deployment concerns
• DBAs can be confident in managing platform requirements with app teams
• Integrated and cost-effective right sized for developers, small and medium
production in enterprises with auto-scaling
• At GA (later in 2023) – let us know your interest level, sign up to be notified!
• Developer edition
• Small production
• Medium production
34 Copyright © 2023, Oracle and/or its affiliates
obaas_ww@oracle.com
Copyright © 2023, Oracle and/or its affiliates
35
Learn more and try it out
in the Hands-on Lab
Building CloudBank – a modern bank for savvy consumers
Copyright © 2023, Oracle and/or its affiliates
36
Build a workingCloud Banking application
Spring Boot microservices for customer, account,
transactions, payments, credit score
Extend the Flutter mobile application to add “Cloud Cash”
payment feature
Implement “Cloud Cash” payments using Long Running
Action microservice transaction pattern
Hands-on Lab 5
“In this lab, you will build a sample application, CloudBank, by utilizing
Spring Boot microservices for a fully working application that you can
take with you when you leave this session. You will learn about service
discovery, external configuration, workflow, API management and
observability. Then you'll deploy the full application and a React front-end
web application that allows customers to see their account history, make
transfers, apply for credit and more.
bit.ly/CloudBankOnOBaaS
CloudBank
The foundation of Hands-on Lab 5
37 Copyright © 2023, Oracle and/or its affiliates
Customer Account Payment
Credit
Score
APISIX
Gateway
Service
Registry
Spring
Config
Vault
Transactio
n Manager
Application Microservices
Platform services
Build this Spring Boot
microservice from
scratch
Extend the Flutter
mobile app to add a
new feature
CloudBank
The foundation of Hands-on Lab 5
38 Copyright © 2023, Oracle and/or its affiliates
API GW
Transfer
Account
Customer
Mobile
App
Credit
Score
Parse API
Apply for
Credit Card
“Transactional” applications
“Origination” applications
Transaction
Manager
Deposit
Withdraw
Transfer
Get score
Send cash
List accounts
Get transactions
Deposit/Withdraw
Create
Get
Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
39
We’d love to hear from you!
Quick survey – tell us about yourSpring Boot usage
Copyright © 2023, Oracle and/or its affiliates
Try it For Free
free-oracle.github.io cloud.oracle.com/free oracle.com/xe developer.oracle.com
/livelabs
40
Session ID – DB05
Please rate this session.
Thank you
mark.x.nelson@oracle.com
sanjay.goil@oracle.com
Copyright © 2023, Oracle and/or its affiliates
42
Ad

More Related Content

What's hot (20)

Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
Araf Karsh Hamid
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Crevise Technologies
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes Istio
Araf Karsh Hamid
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
gjuljo
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdf
Knoldus Inc.
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
Docker, Inc.
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
DevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best PracticesDevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best Practices
QBurst
 
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito PactMicroservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Araf Karsh Hamid
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
Haggai Philip Zagury
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
rajdeep
 
KONG-APIGateway.pptx
KONG-APIGateway.pptxKONG-APIGateway.pptx
KONG-APIGateway.pptx
Agusto Sipahutar
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
Araf Karsh Hamid
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Robert Reiz
 
Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4
HngNguyn748044
 
Kubernetes
KubernetesKubernetes
Kubernetes
Meng-Ze Lee
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
Araf Karsh Hamid
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes Istio
Araf Karsh Hamid
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
gjuljo
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdf
Knoldus Inc.
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
Docker, Inc.
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
DevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best PracticesDevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best Practices
QBurst
 
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito PactMicroservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Araf Karsh Hamid
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
rajdeep
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
Araf Karsh Hamid
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Robert Reiz
 
Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4
HngNguyn748044
 

Similar to Simplify DevOps with Microservices and Mobile Backends.pptx (20)

Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.
Oracle Developers
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
VMware Tanzu
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
Juarez Junior
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_development
Dr. Wilfred Lin (Ph.D.)
 
Microservices and Container
Microservices and ContainerMicroservices and Container
Microservices and Container
Wolfgang Weigend
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle Developers
 
MySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application DevelopmentMySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application Development
Henry J. Kröger
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
WaveMaker, Inc.
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for Databases
Juarez Junior
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
Shelly Megan
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Oracle Developers
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native Applications
Manish Kapur
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to Habitat
Jessica DeVita
 
All the amazing features of asp.net core
All the amazing features of asp.net coreAll the amazing features of asp.net core
All the amazing features of asp.net core
GrayCell Technologies
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
VMware Tanzu
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
Krishna-Kumar
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
Dun & Bradstreet Cloud Innovation Center
 
Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.
Oracle Developers
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
VMware Tanzu
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
Juarez Junior
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_development
Dr. Wilfred Lin (Ph.D.)
 
Microservices and Container
Microservices and ContainerMicroservices and Container
Microservices and Container
Wolfgang Weigend
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle Developers
 
MySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application DevelopmentMySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application Development
Henry J. Kröger
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
WaveMaker, Inc.
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for Databases
Juarez Junior
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
Shelly Megan
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Oracle Developers
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native Applications
Manish Kapur
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to Habitat
Jessica DeVita
 
All the amazing features of asp.net core
All the amazing features of asp.net coreAll the amazing features of asp.net core
All the amazing features of asp.net core
GrayCell Technologies
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
VMware Tanzu
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
Krishna-Kumar
 
Ad

Recently uploaded (20)

Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Learn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step GuideLearn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step Guide
Marcel David
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Learn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step GuideLearn the Basics of Agile Development: Your Step-by-Step Guide
Learn the Basics of Agile Development: Your Step-by-Step Guide
Marcel David
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Ad

Simplify DevOps with Microservices and Mobile Backends.pptx

  • 1. Simplify DevOps with Microservices and Mobile Backends Mark Nelson Developer Evangelist http://bit.ly/oraclespringboot
  • 2. Copyright © 2023, Oracle and/or its affiliates 2 Mark Nelson Developer Evangelist Oracle Database
  • 3. Copyright © 2023, Oracle and/or its affiliates 3 1. Containers, Kubernetes, and Microservices – a unifying vision in a modern backend 2. What is a “Backend Platform” and how does it help you 3. 12 Patterns for Microservices Success 4. Developer Preview Oracle Backend for Spring Boot (and Parse Platform) 5. Managing transactions across microservices 6. Learn more and try it out in the Hands-on Lab Agenda
  • 4. Containers, Kubernetes, Microservices with the converged Oracle Database Unifying a modern application backend stack Copyright © 2023, Oracle and/or its affiliates Oracle Backend for Microservices and Mobile Apps Develop ANYWHERE Converged Oracle Database Kubernetes Containers – Database and Apps Docker or Podman containers Kubernetes Operator Oracle Backend for Spring Boot Autonomous, RAC, Global Database Transaction Manager for Microservices TxEventQ as an Event Mesh
  • 5. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted 5 We’d love to hear from you! Quick survey – tell us about yourSpring Boot usage
  • 6. Copyright © 2023, Oracle and/or its affiliates 6 What is a “Backend Platform” and how does it help you? Spring Boot Apps Mobile Apps
  • 7. Copyright © 2023, Oracle and/or its affiliates 7 Backend as a Service is an important pattern, but relatively rare for Microservices • It allows developers to focus on the frontend/business logic • Backend services are used without the need to build or maintain them, for example: • AppContainers • Kubernetes clusters • DatabasesContainers • NetworkingandSecurity • ServiceDiscoveryand Resiliency • Cloud andOn-prem Backend-as-a-Service (BaaS) allows developers to focus on the frontend of their applications and leverage backend services without building or maintaining them. - Cloudflare The “Backend as a Service” pattern
  • 8. Oracle Backend Platform for Spring Boot makes it super easy to develop web and mobile apps apps ANYWHERE with the power of the converged Oracle Database 8 Copyright © 2023, Oracle and/or its affiliates
  • 9. Copyright © 2023, Oracle and/or its affiliates 9 • Developers develop with well known APIs • Developers focus on business logic and app features • APIs run on infrastructure provisioned by a backend service • Developers don’t need to worry about backend concerns, their apps get deployed in app containers, with data persistence • Backend is managed by DevOps or DataOps engineers • DBAs responsibilities now overlap with running app runtime • Well engineered backends are portable across clouds, reducing a lock-in to a cloud vendor Why a multi-cloud Backend Platform?
  • 10. Copyright © 2023, Oracle and/or its affiliates 10 A lot of developers today use frameworks - Spring Boot and Spring Framework are the most popular, by far, based on several measurements (job advertisements, stack overflow posts, GitHub repos, Google search trends, etc.) We can write less code, and get more done and there’s a wealth of knowledge online Spring Boot is the most popular microservices platform 263,109 134,404 92,932 29,445 17,233 16,399 19,388 29,841 3,338 20,812 3,383 1,517 3,731 2,546 6,932 6,512 4,766 0 50,000 100,000 150,000 200,000 250,000 300,000 Source: Stack Overflow Jan 2023 359,791 82,730 24,207 8,367 24,294 11,564 48,140 6,692 4,216 14,146 6,637 1,956 2,865 10,194 8,196 11,497 851 0 50,000 100,000 150,000 200,000 250,000 300,000 350,000 400,000 Spring Spring Boot Hibernate Java EE Struts JSF Grails MyBatis GWT Dropwizard Quarkus Micronaut Wicket Vert.x Blade Vaadin jHipster Jakarta EE Source: GitHub Jan 2023 890,201
  • 11. Copyright © 2023, Oracle and/or its affiliates 11 • Mobile developers rely on the Backend as a Service to keep it simple • Mobile frameworks and tools tend to be quite different to server side ones • Mobile developers want to focus on their app, and develop features quickly but don’t care as much about the implementation details of the backend – they think about things like: • I have a document, I want to store it and get it back later • I need to send a notification • I need to do a transaction • I want a stack trace or dump whenever my app crashes • Not things like: • What kind of index do I need on this table? • What type of processor would be better for this Kubernetes cluster node? • What storage class do I need for these audio resource files? Why Parse Platform?
  • 12. Copyright © 2023, Oracle and/or its affiliates 12 12 Patterns for Microservices Success Microservices implementations don’t always succeed. Why?
  • 13. Microservices are hard, and most projects fail! For success we need a 3-pronged approach Our Approach Copyright © 2023, Oracle and/or its affiliates Microservices Success Across the Enterprise Converged Oracle Database Kubernetes, Containers 12 Proven Microservices Patterns We’ll show examples Kubernetes backplane Oracle Backend for Spring Boot Multi-tenant, built for microservices – e.g. TxEventQ Event Mesh, Sagas with Transaction Manager
  • 14. Bounded Context Security CQRS Loose Coupling Transactional Outbox Sagas CI/CD Reliable Event Mesh Polyglot Programming Unified Observability Event Aggregation Backend (as-a-Service) The 12 Patterns for Microservices Success Copyright © 2023, Oracle and/or its affiliates Spring Boot (Microservices) Backend for Oracle integrates and manages these patterns These are also available to mobile-first apps with the Parse Platform
  • 15. Copyright © 2023, Oracle and/or its affiliates 15 Oracle Backend for Spring Boot (including the Parse Platform) Developer Preview
  • 16. Oracle Backend for Spring Boot (optionally including Parse Platform) Developer Preview available now on OCI Marketplace • Oracle Autonomous Database and Oracle Container Engine for Kubernetes with the following platform services pre-installed and pre-configured: • Spring Eureka Service Registry • Spring Configuration Server • APISIX API Gateway • Oracle Transaction Manager for Microservices • Netflix Conductor (Workflow) • Kafka • Prometheus • Grafana • Jaeger • Open Telemetry • Hashicorp Vault Built on OCI: • Oracle Autonomous Database • Geographically sharded global database with automated backup, scaling, and self-managed by AI • Oracle Container Engine for Kubernetes • Scale on demand, secure Kubernetes platform • Virtual Cloud Network • Enhanced security and best performance • OCI Load Balancer, Registry, Vault, Object Store • On-premises install available, Azure coming soon 16 Copyright © 2023, Oracle and/or its affiliates bit.ly/oraclespringboot
  • 17. Using Spring Initializr in Visual Studio Code – and create the Customer Entity Create a Spring application Copyright © 2023, Oracle and/or its affiliates Development time features • CLI and Visual Studio Code Extension to manage deployment and configuration • Spring Boot Starters for Oracle technologies (e.g. UCP, AQ/TxEventQ JMS, SODA/JSON) • Spring Data JDBC, JPA • Spring Config • Eureka Client, Feign, Ribbon, Resilience4j • Spring Cloud Streams (Kafka, more coming soon) • Integration with SQLcl and Liquibase for schema CI/CD
  • 18. Oracle Backend for Spring Boot (including Parse Platform) Multi-cloud Your choice of cloud – or on-premises Deploy into compute instances (VMs) or containers and Kubernetes Community supported – open source Developer-friendly APIs and SDKs across all popular languages plus REST and GraphQL APIs. Parse API and Firebase- like APIs iOS, Android and web Rich IDE support Comprehensive CI/CD – DevOps at scale Copyright © 2023, Oracle and/or its affiliates 18 Backend services Documents, files, functions, config, authentication, geolocation, analytics, microtransactions, push notifications, caching, local storage. Scalable and reliable Cloud-scale backend grows as you need, secure by design Service scaling, discovery, routing, circuit breakers Load Balancing, API fault tolerance, Observability Platformservices Service discovery, externalized configuration, workflow, transaction management, observability, distributed tracing, resiliency, fault tolerance, API Gateway Apps Dashboard Manage your applications from a developer-focused dashboard Monitor, observe, control, diagnose, react
  • 19. Spring Boot for Microservices Development and Deployment Oracle Backend for Spring Boot Copyright © 2023, Oracle and/or its affiliates API Gateway Spring Apps Oracle Database App Container Parse Container App Container Spring Apps Control Center Apps Dashboard Workflows Service Discovery Security Auth and Access Networking App Container Resilience4J, OpenFeign, Spring Config Circuit breakers, client-side load balancing, fault tolerance Events Spatial Graph Text Search Relational Documents Oracle Backend for Spring Boot Multitenant architecture for SaaS apps Parse Oracle Database Adapter iOS, Android, Unity, React Native, Flutter Node.js, .Net, PHP, C, Arduino Mobile SDKs Or CLI Dashboard 19 Oracle DB adapter
  • 20. Complete and Simple Platform forAll Data Management Needs Oracle Database Copyright © 2023, Oracle and/or its affiliates Converged Database Complete support for all modern data types, workloads, and development styles Completely consistent, scalable, available, and secure Complete Autonomous Database Converged DB delivered as a self-driving, self-securing, self-repairing Cloud Database Simplest DB for developing and running any apps or analytics at any scale or criticality Simple
  • 21. Oracle Database for Microservices Several features are built-in the Oracle Database for Microservices 21 Copyright © 2023, Oracle and/or its affiliates Relational Data stored as rows Native JSON SQL/JSON and NoSQL like API s Blockchain tables Tamper resistant rows In-Memory analytics Data as columns in memory (in columns on Exadata) Spatial Data stored as geometry (GeoJSON compatible) In-Database Machine Learning Models in Python Graph Data as property graph or RDF REST Data Services Data from tables, collection, SQL queries… exposed as REST APIs External Data External data can be accessed: csv, json, avro, parquet, orc, hdfs, hive, S3, Azure BLOB, GCP… Text Data Binary data: PDF, DOCX, PPTX… XML Data stored as XML Transactional Event Queues (TxEventQ) Event Mesh Event Mesh for JMS and Kafka 1. Saga in Database 2. TxEventQ Event Mesh 3. Unified Observability 4. Data Refactoring Advisor 5. Spring Boot Java SDK 6. Mobile microservices Saga in Database Auto compensation 2 1 Tracing Collector Observability Exporter 3 Spring Boot Java SDK 6 Mobile Microservices Microservices access all the converged Oracle database data and app services Oracle Database 5 Data Refactoring Advisor 4
  • 22. Spring Admin [Date] Copyright © 2023, Oracle and/or its affiliates 22
  • 23. Spring Eureka Service Registry [Date] Copyright © 2023, Oracle and/or its affiliates 23
  • 24. APISIX API Gateway [Date] Copyright © 2023, Oracle and/or its affiliates 24
  • 25. Visual Studio Code Extension [Date] Copyright © 2023, Oracle and/or its affiliates 25
  • 26. Using the included Spring Boot Grafana Dashboard Monitor Spring applications Copyright © 2023, Oracle and/or its affiliates What is happening here? There appears to be a CPU usage spike and a corresponding response time spike about every 10 minutes.
  • 27. Using the included OpenTelemetry and Jaeger Dashboard Trace Spring applications (including into the database and TxEventQ) Copyright © 2023, Oracle and/or its affiliates This invocation of the fraud service is taking much longer than usual – this 20 second pause before the database operation should not happen
  • 28. <dependency> <groupId>com.oracle.database.spring</groupId> <artifactId>oracle-spring-boot-starter-aqjms</artifactId> <version>2.7.7</version> </dependency> Need to use topics or queues? Copyright © 2023, Oracle and/or its affiliates Add a dependency for the Oracle Spring Boot Starter for AQ JMS and TxEventQ oracle.aq.username=pdbadmin oracle.aq.password=Welcome123 oracle.aq.url=jdbc:oracle:thin:@//172.17.0.2:1521/pdb1 Add details for your JMS connection (or put them in the Config Server instead!)
  • 29. Use JMS provider AQ and TxEventQ built in the Oracle Database @Component public class Receiver { @JmsListener(destination = "mailbox", containerFactory = "myFactory") public void receiveMessage(Email email) { System.out.println("Received <" + email + ">"); } } Need to use topics or queues? Copyright © 2023, Oracle and/or its affiliates Use the JmsListener annotation to name your queue/topic – the CLI will automatically create it for you when you deploy your service Oracle Spring Boot Starter for AQ JMS will automatically inject both a JDBC database connection and a JMS connection factory into your service
  • 30. Copyright © 2023, Oracle and/or its affiliates 30 Managing transactions across microservices Loosely coupled transactions – Sagas
  • 31. How is data consistency handled today in microservices? There is a need for an enterprise solution to address data consistency issues for Microservices apps • Requires developers to have advanced skills • Takes valuable time away from app developers • Can be error prone; increases testing complexity • Increases time and cost to market • Inconsistent data view for a period • Potential financial losses due to loss of business and customer dissatisfaction • Resource intensive task, which increases cost of operations • Almost all solutions are for Java apps • Don’t provide loosely coupled / asynchronous consistency for scale • Lack enterprise capabilities; e.g. integration with K8S ecosystem • Not optimized for Oracle Database Use of existing Transaction Managers Developers building transaction management logic in apps Manual reconciliation Copyright © 2023, Oracle and/or its affiliates 31
  • 32. Oracle Transaction Manager for Microservices (MicroTx) Enables developers to use distributed transactions to ensure data consistency across microservices based apps • Using heterogenous resource managers • Utilizing many other existing services/applications 32 Copyright © 2023, Oracle and/or its affiliates  Developed in multiple programming languages  Implements the Eclipse Microprofile LRA coordinator for Microservices with REST  Deployed in Kubernetes
  • 33. Oracle Transaction Manager for Microservices (MicroTx) Two main components • Transaction Coordinator • MicroTx Library • one for each programing language • utilized by each application microservice Transaction coordinator is a microservice • Deployed along with application microservices REST API based communication • No additional requirements imposed on application microservices • Transaction state stored in etcd or Oracle Database 33 Copyright © 2023, Oracle and/or its affiliates
  • 34. Summary 12 microservices patterns for success, Kubernetes, Containers, Oracle Database • Unified backend for apps, Kubernetes, and database makes app dev simple • Multi-cloud execution of the backend platform avoids vendor lock-in • Develop anywhere – OCI, on-premises/laptop, Azure, AWS • Developers can focus on app logic and less on deployment concerns • DBAs can be confident in managing platform requirements with app teams • Integrated and cost-effective right sized for developers, small and medium production in enterprises with auto-scaling • At GA (later in 2023) – let us know your interest level, sign up to be notified! • Developer edition • Small production • Medium production 34 Copyright © 2023, Oracle and/or its affiliates [email protected]
  • 35. Copyright © 2023, Oracle and/or its affiliates 35 Learn more and try it out in the Hands-on Lab Building CloudBank – a modern bank for savvy consumers
  • 36. Copyright © 2023, Oracle and/or its affiliates 36 Build a workingCloud Banking application Spring Boot microservices for customer, account, transactions, payments, credit score Extend the Flutter mobile application to add “Cloud Cash” payment feature Implement “Cloud Cash” payments using Long Running Action microservice transaction pattern Hands-on Lab 5 “In this lab, you will build a sample application, CloudBank, by utilizing Spring Boot microservices for a fully working application that you can take with you when you leave this session. You will learn about service discovery, external configuration, workflow, API management and observability. Then you'll deploy the full application and a React front-end web application that allows customers to see their account history, make transfers, apply for credit and more. bit.ly/CloudBankOnOBaaS
  • 37. CloudBank The foundation of Hands-on Lab 5 37 Copyright © 2023, Oracle and/or its affiliates Customer Account Payment Credit Score APISIX Gateway Service Registry Spring Config Vault Transactio n Manager Application Microservices Platform services Build this Spring Boot microservice from scratch Extend the Flutter mobile app to add a new feature
  • 38. CloudBank The foundation of Hands-on Lab 5 38 Copyright © 2023, Oracle and/or its affiliates API GW Transfer Account Customer Mobile App Credit Score Parse API Apply for Credit Card “Transactional” applications “Origination” applications Transaction Manager Deposit Withdraw Transfer Get score Send cash List accounts Get transactions Deposit/Withdraw Create Get
  • 39. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted 39 We’d love to hear from you! Quick survey – tell us about yourSpring Boot usage
  • 40. Copyright © 2023, Oracle and/or its affiliates Try it For Free free-oracle.github.io cloud.oracle.com/free oracle.com/xe developer.oracle.com /livelabs 40
  • 41. Session ID – DB05 Please rate this session.
  • 42. Thank you [email protected] [email protected] Copyright © 2023, Oracle and/or its affiliates 42

Editor's Notes

  • #3: Hi, I’m Mark Nelson, an architect and developer evangelist. I lead a team that builds, owns, sells, and supports a backend platform that simplifies building and deploying Spring Boot applications and unifies web and mobile development, with the power of the Oracle Database. Thanks for joining us today.
  • #4: Many developers build microservices and mobile applications, and they need a highly scalable backend to run them on. In this session we’ll talk about an exciting new developer preview from Oracle that provides the ability to run a backend "as a service" for these applications. This new approach lets developers focus on writing their application--providing simple APIs to access a scalable, reliable, secure backend with all the features modern applications need. Modern apps use containers, Kubernetes, and microservices. We’ll discuss the 12 proven patterns for microservices success, and how the backend platform brings them together in an integrated stack. The patterns include things like Transactions and data consistency across microservices (called Sagas), Data refactoring, bounded contexts, Event Mesh, and more. I hope some of you in the audience today use Spring Boot and/or are mobile developers, if so, you’ll find the backend simplifies your DevOps and DataOps. We have a hands on lab available here today, or anytime online, that will guide you through using the backend to build a Cloud Banking application from scratch. We’d love to hear from you, I’ll share our email addresses so you can tell us what you think.
  • #5: There are three key parts to a modern application backend stack – containers, Kubernetes and of course, the database. There is a separate presentation here at Level Up today about running the Oracle Database in containers, and the Oracle Database Operator for Kubernetes that makes the Oracle Database Kubernetes native - so I won’t cover those topics in depth. If you can’t make it to those sessions, don’t worry - they will be available on-demand after the event is finished. The converged Oracle Database is available on Cloud, Cloud-at-customer and on-prem. It’s a horizontally scalable, sharded global database, that supports all modern data types and workloads, with a Transaction Manager and Event Mesh for Microservices built-in. We’ll get into this detail a bit later. A unifying theme here is that the Oracle Database is ready for the modern app dev stack that uses Postgres, Kafka, MongoDB, Snowflake as point solutions for operations and analytics. Let’s now dive into the Backend integration.
  • #7: So let’s talk about the backend platform…
  • #8: Backend as a Service is an important pattern, that is hugely popular in the mobile app dev space, but relatively rare for microservices. It allows developers to focus on the frontend or business logic and consume backend services without needing to build or maintain them. It’s a perfect fit for cloud and containers, and it allows us to build reliable, scalable, fault tolerant applications.
  • #10: Why do we want a multi-cloud backend platform? Developer’s roles are evolving to focus less on DevOps and operations and more on the business logic, and we’re developing against higher level APIs – we are consuming services instead of worrying about configuring infrastructure. The traditional DBAs are becoming more adept with application runtimes and DevOps. And databases are taking on more, with built-in microservices support like Event Mesh, with both streaming data and batch data for DataOps or data engineering.
  • #11: So why Spring Boot? Well, we looked at a lot of data, from a wide range of researchers. We looked at things like job advertisement, stack overflow trends, GitHub repositories, Google search trends, and so on. And the message that comes through clearly is that Spring Boot and the Spring Framework are by far the most popular, not by a little bit, but orders of magnitude. And we think it’s largely because you can write less code, get more done, and there’s a huge amount of knowledge and support and a very active community.
  • #12: But we wanted to include mobile developers too. We think that microservices and mobile are better together. Mobile developers tend to rely on backend as a service, front end frameworks and tools are quite different to the server side, and mobile developers want to focus on the app. They don’t care about boring backend stuff like tables and indexes, and what kind of CPU to use. They care about easy to use APIs that provide the services their apps need to get the job done. Parse – super easy to use, APIs and SDKs for all the platforms. Talk about 23c JSON Duality Views
  • #13: I mentioned earlier that we have observed 12 patterns for microservices success.
  • #14: We all know that most IT projects fail, and microservices projects are no different. By now, it is well established that microservices do not provide a silver bullet, they are not suitable for every project, and they trade one form of complexity for another. But we have also seen enough projects using microservices to be able to identify patterns that lead to success, and we will look at some examples of these patterns in this session. Kubernetes has also emerged as the dominant deployment platform for microservices applications. It provides a lot of capabilities and of course it comes with its own complexities. Over the last few years, we have also added a whole host of features to the Converged Oracle Database to make it the perfect choice for microservices – from pluggable database containers and support for a wide range of data types and workloads, to transactional event queueing and streaming, and features like Saga support.
  • #15: The Backend as a Service approach is the single most important of the 12 patterns for microservices that separates success from failure. It brings together all the other patterns and realizes them in a scalable deployment that is easy to use and provides a range of platform services for applications to use – services like authentication, identity, event streaming, monitoring, tracing, deployment, CI/CD, and so on.
  • #16: So, let’s talk about the Oracle Backend for Spring Boot.
  • #17: We have a Developer Preview available right now on OCI Marketplace, in fact we have four releases already, and we are doing a new release every month. The platform gives you an Oracle Autonomous Database and an OKE cluster (that’s Oracle Container Engine for Kubernetes). In that cluster we pre-install and pre-configure a whole stack of services that Spring Boot applications need – service registry, config server, workflow, API Gateway, vault, and a Transaction Manager – we’ll talk more about that one later! And the observability tools you need to monitor and manage your applications, identify problems, drill down to find causes, and trace user requests all the way from their entry at the API Gateway through to database and queueing operations that get performed. The Backend for Spring Boot is built on OCI, and we take advantage of a lot of OCI services like (ADB OKE, etc) Best performance and lowest cost on OCI We also provide an on-prem install option today, and we have an Azure option coming really soon.
  • #18: We have rich development environment support too, including a CLI and Visual Studio extension, Spring Boot Starters for Oracle technologies, and support for all the most popular Spring Boot modules, with more coming in every release.
  • #19: In addition to that, the platform provides mobile app backed service like documents, file, external config, authentication, geolocation and spatial, push notifications, caching on local (on-device) storage. We have APIs and SDKs across all popular languages and frameworks including both the Apple and Android ecosystems, web frameworks like React and Flutter, as well as REST and GraphQL APIs.
  • #20: Of course all of this is designed to support the 12 patterns. Did you know that Oracle Database has provide application containers for years now – we call them “pluggable databases” – to the user it looks like they have a whole database to themselves, but you can run as many of these containers as you like all on a set of shared infrastructure. Each one is isolated from the others, you can’t break out from your container to the host database. And you can easily move these containers from one host to another. Does this sound like anything else you are familiar with? Containers right? The ones we run our microservices inside of in Kubernetes. Spring Boot applications running in containers in Kubernetes, each with its own database container – a perfect implementation of the “database per service” pattern, or “bounded contexts” if you prefer, without the need to manage, maintain, patch, scale hundreds of individual pieces of database server infrastructure.
  • #22: In fact, we’ve added a lot of capability to the converged Oracle Database over the last few releases, specifically for microservices – and we have even more coming in 23c later this year. Let me highlight just six of those. We have direct support for the saga pattern in the database, transactional event queues and event mesh, including support for the transactional outbox pattern, we have open telemetry and Prometheus collectors for metrics and tracing, we have a tool that will let you analyze actual usage of objects in a monolithic database and help you identify clusters that can be used to refactor that database into bounded contexts. We have Spring Boot Starters and SDKs for Relational Data, Streaming, JSON Documents, Graph, and more coming all the time. And not many people know this, but you can even run microservices directly in the database with instant startup and scale to zero, using popular languages like Java and JavaScript.
  • #27: Once our service is deployed, we can use the included tools to monitor and diagnose issues. Here you see an example of the Spring Boot dashboard in Grafana. The information you see here is being collected by Prometheus from the Spring Actuator that we added to our service earlier. Notice in the pull down that it discovers all the services and we can choose which we want to look at. There is a lot of data here about resource usage, and JVM, database and HTTP statistics. We can use this dashboard to identify problems. For example, suppose we see that the response time for our service suddenly gets about 100 times slower for about a minute. What could be causing that?
  • #28: We can use the Jaeger web UI to drill down into specific service invocations during that minute to see what was going on. In this trace we can see that the fraud service was taking a lot longer than it normally does. It looks like the delay is occurring even before it tries to connect to the database – now we can go and investigate logs and code and work out what was happening. Maybe the database ran out of available connections? Maybe someone was running a resource hogging query? We can investigate further using the Oracle Autonomous Database system monitoring tools to find the root cause of this issue and work out how to avoid it reoccurring in the future.
  • #29: Of course, not all our services will just read or write data in the database. Sometimes we need to interact with events or messages too. If we wanted to use Oracle Transactional Event Queues – the high-performance, low latency transactional event streaming built into the Oracle Database – we can easily add the Oracle Spring Boot Starter for TxEventQ to our Maven Project POM file, as you see here, and then provide the connection details in our Spring Boot application properties file – or put them into the Spring Config Server so they can be injected to the service.
  • #30: Once we have done that, the starter will automatically inject both a JDBC connection and a JMS connection factory into our service for us. We can use Spring JMS to easily access queues and topics using standard Spring annotations like this one that configures this method to receive messages from the queue called “mailbox”.
  • #31: Let’s take a moment to talk about transactions
  • #32: One of the key challenges with microservices architecture in general, and the database per service pattern in particular is how to handle data consistency. There are lots of ways to do this of course, and some are more work than others. It really comes down to whether or not a business application can tolerate inconsistency and for how long. For some applications, having inconsistent data for some period is not that big a problem, but for most applications it is just not an option. Some approaches take developers away from their real work to make sure data is reconciled, or forces them to write complex logic to detect and handle issues. A better approach is to use a transaction manager – that’s not a new idea - we’ve been doing that for literally decades now. But today, with the proliferation of microservices its just way more important.
  • #33: The backend includes Oracle Transaction Manager for Microservices, which enables developer to use distributed transactions to ensure data consistency across services. It supports all three big models that we see in common use today – XA, Long Running Actions and Try-Confirm/Cancel.
  • #34: It has libraries for all the popular languages as well as REST APIs. Its deployed into Kubernetes right alongside your services, and it works with all the common transaction managers, including, of course, the Oracle Database and Tuxedo.
  • #35: Let’s wrap up this section of the talk. I’ve told you a bit about how our unified backend for mobile and web apps plus Kubernetes and the Oracle Database make app dev simple, help you avoid cloud lock-in, and let developers focus on their frontends and business logic. We have a Developer Preview available today, that you can play with, and we’d love to hear your thoughts about it. It’s important we know your interest, so we can evolve this platform for your needs. We’d love to get more input from customers who are using Spring Boot, and would like to get more web and mobile apps convergence. Please consider sending us an email today, let us know the company you work for, how you use Spring Boot and/or your mobile app dev approach, so we can follow up with you.
  • #36: If you’d like to know more, you can try out the platform right here today in a Hands-on Lab after lunch – or if you are watching this later, the very same Live Lab is available online anytime.
  • #37: In Hands-on Lab 5 – you will learn how to deploy the platform, build Spring Boot microservices from scratch, deploy them into the platform, implement the saga pattern using Long Running Actions to manage data consistency across microservices and you will extend the mobile app to add a new “Cloud Cash” feature that would allow users to send cash to anyone instantly.
  • #38: The Lab is based on a “CloudBank” sample application, which is made up of a number of Spring Boot microservices which use the platform services we’ve talked about today, like the service registry, the API Gateway, the transaction manager, and so on. The mobile app is written in Flutter, which is a really exciting new up-and-coming framework for building apps for any screen from a single code base.
  • #39: Just like in a real bank, most of the “origination” applications – things like opening a new account, applying for a credit card, or buying an insurance policy - are implemented outside of the core transactional banking applications. The Cloud Cash feature that you will implement touches both worlds.
  • #41: We’d love you to try out everything we’ve talked about today – and to make that easy for you, we offer free sample code, free trials of Oracle cloud, a permanent free tier, a free developer version of the Oracle Database, and hundreds and hundreds of hours of free training on our LiveLabs platform.
  • #43: Reach out to Sanjay or me at our emails. We look forward to hearing from you.