SlideShare a Scribd company logo
Exploring Stateful Microservices
in the
Cloud Native World
Mary Grygleski & Grace Jansen
@mgrygles April 2022 @gracejansen27
Who is Grace Jansen?
• Developer Advocate at IBM
• Java, Cloud-Native, Reactive,
MicroProfile, Open Source
• A Biologist turned software engineer
• Passionate about encouraging more WIT
• Love traveling and trying new activities
Who is Mary Grygleski?
• Senior Developer Advocate at DataStax
• Streaming, Event-Driven, NoSQL, Open Source
• Java Champion
• Over 25 years of software engineering experience that
span a wide spectrum from product development to
enterprise applications and beyond
• Previously a Senior Developer Advocate at IBM
• President of Chicago Java Users Group (CJUG)
• Active church volunteer and religious education
teacher
Stateful
Vs
Stateless
“Computing” Life used
to be simpler
Stateless Computing
• State of the data does not get recorded between
transactions
A communication protocol that does not
retain any session information
• Scaling the system is easier
• Recoverability from system failure is easier
Architecture, design and
implementation is simpler
Realistically,
we live in a
Stateful
world
Stateful Computing
• State of the data gets recorded
at every step across all
transactions
A communication
protocol that would
retain all session
information
• Scaling the system is difficult
• Recoverability from system
failure involves a lot of efforts
Architecture,
design and
implementation is
complex
The States of Data
3 fundamental state of data:
● Data at rest
● Data in motion
● Data in use
The role of Microservices for the Data
● Microservices is a place where we “operate” on the data
● READ/WRITE: fetch from/place into the “data source”
● Data source: disk, in-memory, “cloud”
● Where I/O gets triggered to happen!
● Where transformation/remediation occur
Statefulness in the
“cloud-less” days…
Client-Server
Systems
Stateful database
systems on the
server side
Database-styled
transactions
2-Phase Commit
(2PC)
Java
Enterprise Java
Beans – Stateful EJB
(Session vs Entity
Beans)
Servlet –
HTTPSession
Client-side
caching of server
responses
Cookie-based
authentication
Token-based
authentication
(JWT)
Stateful
Microservices
in Cloud Native
environments
Cloud Native:
Stateless
containers?
Cloud Native Computing: An
overarching approach
► Essentially an “extension” to Cloud Computing by addressing the true
needs of enterprise-level distributed business application systems.
► What are the true needs? Netflix coined the term Cloud Native in the
early 2010’s and essentially they wanted to leverage on the cloud to
meet their goals for their systems to be:
► Highly available
► Scalable
► Performant
2022-Devnexus-StatefulMicroservices.pptx.pdf
The 12 Factor Application
A methodology that was drafted by developers at Heroku.
A set of guidelines or best practices for portable and resilient applications that
are well suited to be in cloud environments.
One of the factors indicates the need for self-contained services which are
to be deployed as stateless processes. Microservices architecture (so far) is
one that can satisfy such a requirement.
It does not enforce the tools and libraries that the applications must use, but it
provides the solid concepts that the applications must follow.
The 12 Factor Application
• VII. Port binding
• Export services via port binding
• VIII. Concurrency
• Scale out via the process model
• IX. Disposability
• Maximize robustness with fast startup and
graceful shutdown
• X. Dev/prod parity
• Keep development, staging, and production as
similar as possible
• XI. Logs
• Treat logs as event streams
• XII. Admin processes
• Run admin/management tasks as one-off
processes
• I. Codebase
• One codebase tracked in revision control,
many deploys
• II. Dependencies
• Explicitly declare and isolate dependencies
• III. Config
• Store config in the environment
• IV. Backing services
• Treat backing services as attached resources
• V. Build, release, run
• Strictly separate build and run stages
• VI. Processes
• Execute the app as one or more stateless
processes
HOW to preserve state
across session, transaction,
and network boundaries?
Techniques / Mechanisms
Cache
Database-style
transactions Cookies
Sessions Tokens
Leader Election
(etcd) StatefulSets PersistentVolume
Cookie/Session
affinity (sticky
session)
Cloud Native Infrastructure:
Containers/Kubernetes
This Photo by Unknown Author is licensed under CC BY This Photo by Unknown Author is licensed under CC BY-SA-NC This Photo by Unknown Author
is licensed under CC BY-SA
This Photo by Unknown Author is licensed under CC BY-SA-NC
Programming Design Pattern
Saga
Transactions spanning across multiple services
Concept of compensation – no ”rollbacks”
(forward strategy)
2 ways of coordination sagas:
•Choreography
•Orchestration
Long-Running Action / Saga
Interaction Pattern
“Compensator” model
Example Library implementing LRA:
•MicroProfile LRA (1.0 – May 13, 2021)
An example of a SAGA (choreography)
What
about
Reactive?
Reactive Systems and the Reactive Manifesto
Resilient
Elastic
Message-Driven
Responsive
Code
samples
Open Liberty session persistence labs
Interactive Lab version:
https://openliberty.io/guides/#persistence
Apache Pulsar and Pulsar Functions
Free-Tier Astra Cloud: https://astra.datastax.com
● Separation of Compute and Data Storage (Apache
BookKeeper)
● Native from the start as a cloud-native provider
○ Multi-tenancy
○ Geo-replication
Resources
and Links
Resources (Code samples, Design Patterns, Open Source Libraries)
● Code samples:
○ Open Liberty session persistence using JCache & Hazelcast
https://openliberty.io/guides/sessions.html
○ A Stateful Open Liberty application in Kubernetes
https://github.com/mgrygles/stateful-kube-demo
Saga Design Pattern: https://microservices.io/patterns/data/saga.html
MicroProfile LRA 1.0:
https://download.eclipse.org/microprofile/microprofile-lra-1.0/microprofile-lra-spec-
1.0.html
LRA Blog: MicroProfile Long Running Actions in Open Liberty
● Open Liberty: https://openliberty.io/
○ Free tutorials/Guides: https://openliberty.io/guides
● MicroProfile: http://microprofile.io/
● Jakarta EE: https://jakarta.ee/
Resources (Cloud, Cloud-Native, DevOps)
● IBM Developer (all topics): https://developer.ibm.com
● IBM Developer (Cloud): https://developer.ibm.com/depmodels/cloud/
● IBM Developer (Cloud DevOps): https://www.ibm.com/cloud/devops
● IBM Developer (Cloud Native): https://www.ibm.com/cloud/cloud-native/
● IBM Developer (Saga Pattern):
https://developer.ibm.com/articles/use-saga-to-solve-distributed-transaction-management-pr
oblems-in-a-microservices-architecture/
● Programming with Java on IBM Cloud (IBM Cloud Docs):
https://cloud.ibm.com/docs/java?topic=cloud-native-overview
● Cloud Native Computing Foundation (CNCF): https://github.com/cncf/
● The 12 Factor App (Cloud Native Best Practices): https://12factor.net/
Resources (Apache Pulsar, Cassandra, AstraDB, Astra Streaming)
Astra Streaming:
https://www.datastax.com/products/astra-streaming
Luna Streaming:
https://www.datastax.com/products/luna-streaming
Astra Cloud (free-tier Managed Cassandra on the Cloud):
https://astra.datastax.com/
https://pulsar.apache.org/
https://bookkeeper.apache.org/
https://zookeeper.apache.org
Managed Cassandra on the IBM Cloud
https://www.ibm.com/cloud/databases-for-datastax
Other Great Devnexus Sessions:
Join our community meetups & free trainings
IBM Expert TV: https://techtv.bemyapp.com/
IBM Developer on Meetup.com (includes all IBM Developer meetup groups in cities all over the world!)
https://www.meetup.com/pro/ibmdeveloper/
DataStax YouTube Channel: https://www.youtube.com/c/DataStax
Highly recommended also:
Chicago Java Users Group (CJUG) https://www.meetup.com/ChicagoJUG/
Follow Mary’s Twitch Stream
(Different topics: Java, Open Source, Distributed Messaging, Event-Streaming, Cloud, DevOps, etc)
Wednesday at 2pm-US/Central
https://twitch.tv/mgrygles
Join Pulsar at the ‘hood
https://www.meetup.com/pro/apache-pulsar-neighborhood
https://pulsar-neighborhood.github.io/
Join Mary on
Discord
https://discord.gg/RMU4Juw
Thank You!
@mgrygles
https://linkedin.com/in/mary-grygleski
https://github.com/mgrygles
https://dev.to/mgrygles
@gracejansen27
https://linkedin.com/in/grace-jansen
https://github.com/GraceJanse
https://developer.ibm.com/profiles/grace.jansen1/
Ad

More Related Content

Similar to 2022-Devnexus-StatefulMicroservices.pptx.pdf (20)

Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Igor De Souza
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
laeshin park
 
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Chris Jang
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB
 
Optimizing the Ops in DevOps
Optimizing the Ops in DevOpsOptimizing the Ops in DevOps
Optimizing the Ops in DevOps
Gordon Haff
 
A Tight Ship: How Containers and SDS Optimize the Enterprise
 A Tight Ship: How Containers and SDS Optimize the Enterprise A Tight Ship: How Containers and SDS Optimize the Enterprise
A Tight Ship: How Containers and SDS Optimize the Enterprise
Eric Kavanagh
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
Krishna-Kumar
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Atlassian
 
Executive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersExecutive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of Containers
NVISIA
 
OGCE SC10
OGCE SC10OGCE SC10
OGCE SC10
marpierc
 
{code} and containers
{code} and containers{code} and containers
{code} and containers
{code} by Dell EMC
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy Applications
Storage Switzerland
 
The Last Frontier- Virtualization, Hybrid Management and the Cloud
The Last Frontier-  Virtualization, Hybrid Management and the CloudThe Last Frontier-  Virtualization, Hybrid Management and the Cloud
The Last Frontier- Virtualization, Hybrid Management and the Cloud
Kellyn Pot'Vin-Gorman
 
8base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 201807198base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 20180719
Oscar Perez
 
8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation
8base
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
SpringPeople
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
Tech Triveni
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Igor De Souza
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
laeshin park
 
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Chris Jang
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB
 
Optimizing the Ops in DevOps
Optimizing the Ops in DevOpsOptimizing the Ops in DevOps
Optimizing the Ops in DevOps
Gordon Haff
 
A Tight Ship: How Containers and SDS Optimize the Enterprise
 A Tight Ship: How Containers and SDS Optimize the Enterprise A Tight Ship: How Containers and SDS Optimize the Enterprise
A Tight Ship: How Containers and SDS Optimize the Enterprise
Eric Kavanagh
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
Krishna-Kumar
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Atlassian
 
Executive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersExecutive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of Containers
NVISIA
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy Applications
Storage Switzerland
 
The Last Frontier- Virtualization, Hybrid Management and the Cloud
The Last Frontier-  Virtualization, Hybrid Management and the CloudThe Last Frontier-  Virtualization, Hybrid Management and the Cloud
The Last Frontier- Virtualization, Hybrid Management and the Cloud
Kellyn Pot'Vin-Gorman
 
8base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 201807198base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 20180719
Oscar Perez
 
8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation
8base
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
SpringPeople
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
Tech Triveni
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 

More from Grace Jansen (20)

JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptx
Grace Jansen
 
SwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxSwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptx
Grace Jansen
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
Grace Jansen
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptx
Grace Jansen
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
Grace Jansen
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptx
Grace Jansen
 
JavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxJavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptx
Grace Jansen
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
Grace Jansen
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
Grace Jansen
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
JCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxJCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptx
Grace Jansen
 
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxJavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
Grace Jansen
 
JavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxJavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptx
Grace Jansen
 
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Grace Jansen
 
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Grace Jansen
 
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxJBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
Grace Jansen
 
How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!
Grace Jansen
 
Devoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factorsDevoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factors
Grace Jansen
 
BuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factorsBuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factors
Grace Jansen
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_Containers
Grace Jansen
 
JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptx
Grace Jansen
 
SwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxSwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptx
Grace Jansen
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
Grace Jansen
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptx
Grace Jansen
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
Grace Jansen
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptx
Grace Jansen
 
JavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxJavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptx
Grace Jansen
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
Grace Jansen
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
Grace Jansen
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
JCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxJCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptx
Grace Jansen
 
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxJavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
Grace Jansen
 
JavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxJavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptx
Grace Jansen
 
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Grace Jansen
 
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Grace Jansen
 
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxJBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
Grace Jansen
 
How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!
Grace Jansen
 
Devoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factorsDevoxx Ukraine - Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factors
Grace Jansen
 
BuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factorsBuildStuffConf Going beyond the 12 factors
BuildStuffConf Going beyond the 12 factors
Grace Jansen
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_Containers
Grace Jansen
 
Ad

Recently uploaded (20)

How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Ad

2022-Devnexus-StatefulMicroservices.pptx.pdf

  • 1. Exploring Stateful Microservices in the Cloud Native World Mary Grygleski & Grace Jansen @mgrygles April 2022 @gracejansen27
  • 2. Who is Grace Jansen? • Developer Advocate at IBM • Java, Cloud-Native, Reactive, MicroProfile, Open Source • A Biologist turned software engineer • Passionate about encouraging more WIT • Love traveling and trying new activities
  • 3. Who is Mary Grygleski? • Senior Developer Advocate at DataStax • Streaming, Event-Driven, NoSQL, Open Source • Java Champion • Over 25 years of software engineering experience that span a wide spectrum from product development to enterprise applications and beyond • Previously a Senior Developer Advocate at IBM • President of Chicago Java Users Group (CJUG) • Active church volunteer and religious education teacher
  • 6. Stateless Computing • State of the data does not get recorded between transactions A communication protocol that does not retain any session information • Scaling the system is easier • Recoverability from system failure is easier Architecture, design and implementation is simpler
  • 7. Realistically, we live in a Stateful world
  • 8. Stateful Computing • State of the data gets recorded at every step across all transactions A communication protocol that would retain all session information • Scaling the system is difficult • Recoverability from system failure involves a lot of efforts Architecture, design and implementation is complex
  • 9. The States of Data 3 fundamental state of data: ● Data at rest ● Data in motion ● Data in use
  • 10. The role of Microservices for the Data ● Microservices is a place where we “operate” on the data ● READ/WRITE: fetch from/place into the “data source” ● Data source: disk, in-memory, “cloud” ● Where I/O gets triggered to happen! ● Where transformation/remediation occur
  • 12. Client-Server Systems Stateful database systems on the server side Database-styled transactions 2-Phase Commit (2PC) Java Enterprise Java Beans – Stateful EJB (Session vs Entity Beans) Servlet – HTTPSession Client-side caching of server responses Cookie-based authentication Token-based authentication (JWT)
  • 15. Cloud Native Computing: An overarching approach ► Essentially an “extension” to Cloud Computing by addressing the true needs of enterprise-level distributed business application systems. ► What are the true needs? Netflix coined the term Cloud Native in the early 2010’s and essentially they wanted to leverage on the cloud to meet their goals for their systems to be: ► Highly available ► Scalable ► Performant
  • 17. The 12 Factor Application A methodology that was drafted by developers at Heroku. A set of guidelines or best practices for portable and resilient applications that are well suited to be in cloud environments. One of the factors indicates the need for self-contained services which are to be deployed as stateless processes. Microservices architecture (so far) is one that can satisfy such a requirement. It does not enforce the tools and libraries that the applications must use, but it provides the solid concepts that the applications must follow.
  • 18. The 12 Factor Application • VII. Port binding • Export services via port binding • VIII. Concurrency • Scale out via the process model • IX. Disposability • Maximize robustness with fast startup and graceful shutdown • X. Dev/prod parity • Keep development, staging, and production as similar as possible • XI. Logs • Treat logs as event streams • XII. Admin processes • Run admin/management tasks as one-off processes • I. Codebase • One codebase tracked in revision control, many deploys • II. Dependencies • Explicitly declare and isolate dependencies • III. Config • Store config in the environment • IV. Backing services • Treat backing services as attached resources • V. Build, release, run • Strictly separate build and run stages • VI. Processes • Execute the app as one or more stateless processes
  • 19. HOW to preserve state across session, transaction, and network boundaries?
  • 21. Leader Election (etcd) StatefulSets PersistentVolume Cookie/Session affinity (sticky session) Cloud Native Infrastructure: Containers/Kubernetes This Photo by Unknown Author is licensed under CC BY This Photo by Unknown Author is licensed under CC BY-SA-NC This Photo by Unknown Author is licensed under CC BY-SA This Photo by Unknown Author is licensed under CC BY-SA-NC
  • 22. Programming Design Pattern Saga Transactions spanning across multiple services Concept of compensation – no ”rollbacks” (forward strategy) 2 ways of coordination sagas: •Choreography •Orchestration Long-Running Action / Saga Interaction Pattern “Compensator” model Example Library implementing LRA: •MicroProfile LRA (1.0 – May 13, 2021)
  • 23. An example of a SAGA (choreography)
  • 25. Reactive Systems and the Reactive Manifesto Resilient Elastic Message-Driven Responsive
  • 27. Open Liberty session persistence labs Interactive Lab version: https://openliberty.io/guides/#persistence
  • 28. Apache Pulsar and Pulsar Functions Free-Tier Astra Cloud: https://astra.datastax.com ● Separation of Compute and Data Storage (Apache BookKeeper) ● Native from the start as a cloud-native provider ○ Multi-tenancy ○ Geo-replication
  • 30. Resources (Code samples, Design Patterns, Open Source Libraries) ● Code samples: ○ Open Liberty session persistence using JCache & Hazelcast https://openliberty.io/guides/sessions.html ○ A Stateful Open Liberty application in Kubernetes https://github.com/mgrygles/stateful-kube-demo Saga Design Pattern: https://microservices.io/patterns/data/saga.html MicroProfile LRA 1.0: https://download.eclipse.org/microprofile/microprofile-lra-1.0/microprofile-lra-spec- 1.0.html LRA Blog: MicroProfile Long Running Actions in Open Liberty ● Open Liberty: https://openliberty.io/ ○ Free tutorials/Guides: https://openliberty.io/guides ● MicroProfile: http://microprofile.io/ ● Jakarta EE: https://jakarta.ee/
  • 31. Resources (Cloud, Cloud-Native, DevOps) ● IBM Developer (all topics): https://developer.ibm.com ● IBM Developer (Cloud): https://developer.ibm.com/depmodels/cloud/ ● IBM Developer (Cloud DevOps): https://www.ibm.com/cloud/devops ● IBM Developer (Cloud Native): https://www.ibm.com/cloud/cloud-native/ ● IBM Developer (Saga Pattern): https://developer.ibm.com/articles/use-saga-to-solve-distributed-transaction-management-pr oblems-in-a-microservices-architecture/ ● Programming with Java on IBM Cloud (IBM Cloud Docs): https://cloud.ibm.com/docs/java?topic=cloud-native-overview ● Cloud Native Computing Foundation (CNCF): https://github.com/cncf/ ● The 12 Factor App (Cloud Native Best Practices): https://12factor.net/
  • 32. Resources (Apache Pulsar, Cassandra, AstraDB, Astra Streaming) Astra Streaming: https://www.datastax.com/products/astra-streaming Luna Streaming: https://www.datastax.com/products/luna-streaming Astra Cloud (free-tier Managed Cassandra on the Cloud): https://astra.datastax.com/ https://pulsar.apache.org/ https://bookkeeper.apache.org/ https://zookeeper.apache.org
  • 33. Managed Cassandra on the IBM Cloud https://www.ibm.com/cloud/databases-for-datastax
  • 34. Other Great Devnexus Sessions:
  • 35. Join our community meetups & free trainings IBM Expert TV: https://techtv.bemyapp.com/ IBM Developer on Meetup.com (includes all IBM Developer meetup groups in cities all over the world!) https://www.meetup.com/pro/ibmdeveloper/ DataStax YouTube Channel: https://www.youtube.com/c/DataStax Highly recommended also: Chicago Java Users Group (CJUG) https://www.meetup.com/ChicagoJUG/
  • 36. Follow Mary’s Twitch Stream (Different topics: Java, Open Source, Distributed Messaging, Event-Streaming, Cloud, DevOps, etc) Wednesday at 2pm-US/Central https://twitch.tv/mgrygles
  • 37. Join Pulsar at the ‘hood https://www.meetup.com/pro/apache-pulsar-neighborhood https://pulsar-neighborhood.github.io/
  • 38. Join Mary on Discord https://discord.gg/RMU4Juw Thank You! @mgrygles https://linkedin.com/in/mary-grygleski https://github.com/mgrygles https://dev.to/mgrygles @gracejansen27 https://linkedin.com/in/grace-jansen https://github.com/GraceJanse https://developer.ibm.com/profiles/grace.jansen1/