SlideShare a Scribd company logo
Microservices, Kubernetes
And Application Modernization
Using Reactive Microservices to be Successful
Moving to Modern Environments
David Ogren, Enterprise Architect
Agenda
• Why Modernization
• Microservices
• Containers
• Kubernetes
• Modernization Approaches
• Reactive, Lightbend, and Reactive Launch
• Q&A
Why Application Modernization?
What is Application Modernization?
• Digital Transformation
– Do something new
• Be more Agile
– Speed up changes or make them less risky
• Move to the “Cloud”
– Reduce costs
– Be more elastic
Characteristics of a Monolith
• Deployed as a unit
• “Big Bang” releases – long and carefully coordinated
• Single shared database
• Communicate with synchronous method calls
• Deep coupling
Business Reasons for Modernization
• Performance can be an Issue
• Serious failures in one component can bring
down the whole application
• Have to buy infrastructure for worst case:
application hard to scale
• Deep coupling leads to inflexibility
Inventory
Shopping
Cart
Shipping
Payment
Personalization
Technical Reasons for Modernization
• Scaling a monolith is hard
– Concurrency
• How to deal with data science?
• Codebase becomes large and hard to
understand – “fun” with merge conflicts
• Teams become large and hard to coordinate
• Moving to cloud is hard
Broker-Dealers
Assets
Taxes
Clients
Corporate
Actions
Framing Project Goals
• Digital Transformation
– Do something new
• Be more Agile
– Speed up changes or make them less risky
• Move to the “Cloud”
– Reduce costs
– Be more elastic
Why Microservices?
Small autonomous services that work
together, modeled around a business
domain.
What is a Microservice?
Sam Newman
Author of Building Microservices
• Single Responsibility (do one thing …)
Duck Typing a Microservice?
There are only two hard problems in distributed systems:
• 2. Exactly-once delivery
• 1. Guaranteed order of messages
• 2. Exactly-once delivery
—Mathias Verraes?
Distributed Systems
Amdahl’s Law & Gunther’s Law
Amdahl’s Law
Inventory
Shopping
Cart
Inventory
Shipping
Amdahl’s Law
Wheel of Doom
• The network is reliable
• Latency is zero
• Bandwidth is infinite
• The network is secure
8 Fallacies of Distributed Systems
—L Peter Deutsch
• Topology doesn't change
• There is 1 administrator
• Transport cost is zero
• The network is homogeneous
Wheel of Doom
• The network is reliable
• Latency is zero
• Bandwidth is infinite
• The network is secure
8 Fallacies of Distributed Systems
—L Peter Deutsch
• Topology doesn't change
• There is 1 administrator
• Transport cost is zero
• The network is homogeneous
Amdahl’s Law
• The network is reliable
• Latency is zero
• Bandwidth is infinite
• The network is secure
8 Fallacies of Distributed Systems
—L Peter Deutsch
• Topology doesn't change
• There is 1 administrator
• Transport cost is zero
• The network is homogeneous
Inventory
Gunther’s Law
Shopping
Cart
Shipping
Gunther’s Law
Wheel of Doom
• Single Responsibility (do one thing …)
Duck Typing a Microservice?
Microservices are NOT just
small applications
Pitfall #1
• Isolation between services
– Services deployed independently
– Independent data
– Loose coupling of components
• Agile Deployment
• Distributed/Elastic Deployment
• Single Responsibility (do one thing …)
Duck Typing a Microservice
State
Space
Time
Failure
• All access to a service’s state must got through its API
• This allows the service to evolve internally
• This allows the service to survive failures in other services
Independent Data
Inventory
Service
Shipping
Service
Inventory DB
Shipping DB
• Shared nothing (except integration protocols)
• Logic inside services, communication is asynchronous “dumb pipes”.
• Based on the assumption that change is required and infrastructure automated
Microservices Implement Bounded
Contexts
ShippingInventory
Shipping DBInventory DB
Payment
Payment DB
Search
Search DB
API Layer
Event Bus
• Isolation between services
– Services deployed independently
– Independent data
– Loose coupling of components
• Single Responsibility
• Agile Deployment
• Distributed/Elastic Deployment
Duck Typing a Microservice
• Scales horizontally
• Fault Isolation
– Security Isolation
• Fits well with cloud/containers
• Encapsulation: scales complexity
– Flexibility: right tool for each job
Microservice Benefits
• Distributed systems are hard
– Hard to develop
– Hard to debug
– Hard to monitor
• Requires an API driven approach
• Nearly always requires TDD approach
• Assumes infrastructure is automated
Microservice Challenges
Containerization
In theory: any OS level virtualization
In practice: Docker and Open Container
Initiative competitors
What is containerization?
A layer on top of LXC based Linux Virtualization
• Lighter weight than VMs: containers share one kernel
• Combine the application and the platform into a unified image
Tools for building, managing and storing those container
images
What is containerization?
What is containerization?
Dockerfile
FROM registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift
COPY stage/* /opt/docker
EXPOSE 8080
ENTRYPOINT ["/opt/docker/bin/myapp"]
DEPLOY
SERVER(S)
BUILD
MACHINE
stage folder “image”
docker image build –t myapp:1.0 .
REGISTRY
docker image push myapp:1.0docker image run myapp:1.0
Repeatability of infrastructure
– If it runs on my laptop it should run on dev and it should run on prod: the
Dockerfile captures everything needed
Repeatability of deployment
– I don’t need to understand anything about the app to deploy it
Containers can be built out of layered building blocks
Quick deployments mean containerization fits with automation
(including CI/CD and our microservice requirements)
Benefits of Containerization
Avoid startup complexity and large containers
• One process per container
• Images should be “ephemeral”: easy to start, stop, Avoid
persistent state in your containers
– In theory you can store state in persistent volume
– But this defeats the purpose of immutability
• Images should be portable
– Don’t rely on details of your environment, for example
• Cattle vs pets
Principles of Containerization
Containers are NOT just
lightweight Linux boxes
Pitfall #2
No difference between application and platform: they are
fused into an image
• For example, no concept of “applying an OS patch” to a container. You rebuild the image from
scratch.
• This, however, also plays into the idea of containers being ephemeral: you should be recreating
your images by rebuilding them on top of patched base images via CI/CD
Single purpose images with single processes
Containers vs Hosts/VMs
• Lots of things we used to take for granted in the monolith based
world are difficult/impossible in containers
– And easy to find lots of published containers that violate best practices
• The focus on making container images immutable means that either
you:
– Push all of your state out of the container (bad for performance/scale)
– Manage all of the state yourself (difficult)
• Containerization (by itself) doesn’t actually help you
manage or deploy containers at scale
Challenges of Containerization
Containers by themselves are about running single images:
there is no concept in ordinary Docker of:
• If each container is one process, how do I define the relationship between the
parts?
• How do I horizontally scale my application?
• How do I monitor my application? And take action when something goes wrong?
• How do I upgrade my application in place? And take action when something goes
wrong with the upgrade?
• How do I control access to my containers?
As the name implies, container orchestration is about how we
coordinate all of the containers.
Container Orchestration
Container Orchestration
Even Further Options
Regardless, each of these systems is a framework for defining the
orchestration.
• You don’t tell the framework what to do, the framework tells you what
to do.
• Once more, we are changing how we operate and a new mindset is
needed
Container Orchestration
You would think [a rewrite] is easy - just make the
new one do what the old one did. Yet they are always
much more complex than they seem, and overflowing
with risk.
–Martin Fowler
Migration
Old code has been used. It has been tested. Lots of
bugs have been found, and they’ve been fixed.
–Joel Spolsky
The Strangler Fig Pattern
An alternative route is to gradually create a
new system around the edges of the old,
letting it grow slowly over several years
until the old system is strangled.
Strangler Fig == Events
Monolith
Users
Strangler Fig == Events
Monolith
Users
Proxy
Shopping Cart Events
μService
Strangler Fig == Events
Monolith
Users
Proxy
Shopping Cart Events
μService
New Views
Strangler Fig == Events
Monolith
Users
Proxy
Shopping Cart
Commands
μService
New Views
Verify
Strangler Fig == Events
Monolith
Users
Proxy
μService
All Interaction
Event Bus
Strangler Fig == Events
Monolith
Users
Proxy
μService
All Interaction
Event Bus
μService μService
• Have a business sponsor, listen,
deliver new value
• Incrementally build trust
• Start small, think big
Rules of Thumb
Reactive Systems
Reactive Manifesto
http://www.reactivemanifesto.org/
RESILIENT
The system
stays
responsive in
the face
of failure
ELASTIC
The system
stays
responsive
under varying
workload
RESPONSIVE
The system
responds in a
timely manner
if at all possible
Asynchronous message-
passing ensures loose
coupling, isolation
and location
transparency
MESSAGE DRIVEN
Web Application Framework Concurrency Toolkit  Runtime
Thin, powerful abstraction
Other curated tools, architectural principles and patterns
used for building reactive microservice systems
Asynchronous
& Non Blocking
Event Sourcing
Command
query
responsibility
segregation
Eventual
Consistency
Domain Driven
Design
(Bounded Contexts, Context
Maps, Aggregate Entities)
Service Locator
Discovery
Edge Service
Lagom Design Patterns
Key Patterns
Required
when building
distributed
reactive
microservice
systems
Circuit Breaker
Lagom Components
Akka – Persistence, PubSub, Cluster, Streaming Async Services
Play Framework – Web framework
Cassandra – managing data persistence
Guice – dependency injection
SLF4J & Logback – Logging
Typesafe Config – configuration
JSON Serialization – Play JSON (Scala) Jackson (Java)
Service Gateway
Message Broker - Kafka
67
Lightbend Platform
Products and Services that improve time to value and decrease project risk
69
Lightbend Reactive Launch
Reac i e La nch
S a Yo Reac i e P ojec Off Righ S a on Ta ge
A a complemen o o Ligh bend S b c ip ion he Reac i e La nch offe ing ill accele a e o adop ion of
he Reac i e pla fo m i h deepe collabo a ion b connec ing o domain e pe i h o Ligh bend Reac i e
e pe Collabo a e o e plo e he e ca e of o legac echnolog and o k oge he o define he a
fo a d
Benefi
● Ini ia e o eam o he la e a chi ec e and de ign app oache fo Reac i e S em and ge cla i
on hich one migh be applicable o o need
● De elop clea ie be een echnical o k and b ine o come
● E abli h p io i ie h o gh cla i of nde anding on a mp ion gap and i k
● Imp o e o eam kill b ilding he confidence and mo i a ion
O come
● Ha e a olid plan fo de igning con c ing e ing deplo ing moni o ing and caling o eac i e
ol ion
● So nd e ie ed em a chi ec e a mp ion challenged
● F nc ioning de elopmen eam i h ea l cce e nde i fee
● Recommenda ion on he a fo a d o en e and ppo cce
Me hodolog
● Incep ion p epa a ion and anal i o nde and o compan and domain
● da f ll ime in en i e kickoff o la nch on i e op ion e abli h ini ial ajec o
● Con in ed coaching and men o ing d ing da i e a ion a on a ge
● Facili a ion and men o ing in Reac i e Pla fo m de elopmen
● E pe e ie of o em a chi ec e and de ign i h ecommenda ion
● P od c anal i i h o p od c o ne and akeholde
● Acce e pe ad ice i h de elope foc ed ppo b c ip ion
● Reac i e La nch epo and ecommenda ion fo he f e
• Focused on enablement
• Holistic: develop clear ties between the
technical work and the business outcomes
• Prove the key technical points, establish a
sound system architecture
Next Steps
https://www.lightbend.com/ebooks
• Reactive Systems Architecture
• Domain-Driven Design Distilled
• Developing Reactive Microservices
• Reactive Microsystems: The Evolution of Microservices at Scale
• Reactive Microservices: From Prototype to Production Ready Systems
• And many more …
Free e-books
Akka: akka.io
Lagom: lagomframework.com
Lightbend Platform
https://www.lightbend.com/lightbend-platform
Bla Bla Microservices Bla Bla: http://bit.ly/blabla_micro
First principles of microservices from Lightbend’s CTO
Links
David Ogren (Global Solutions Architect)
(919) 946-4847, david.ogren@lightbend.com
Frank Carvalho (Lightbend)
(617) 312-7915, frank.carvalho@lightbend.com
Reach out to Us
Thank You
Start Small
Think Big
Move Fast

More Related Content

What's hot (20)

PDF
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu
 
PDF
Efficient Kubernetes scaling using Karpenter
Marko Bevc
 
PDF
Multi-cloud strategies and services
Tatiana Lavrentieva
 
PPTX
Eucalyptus cloud computing
Rahul Rana
 
PDF
Kubernetes in Docker
Docker, Inc.
 
PDF
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
Edureka!
 
PPTX
Ansible presentation
Suresh Kumar
 
PDF
Kubernetes Introduction
Peng Xiao
 
PPTX
UCS Presentation
Robert Evans
 
PPTX
Infrastructure as Code Presentation v5.pptx
YASHSRIVASTAVA811639
 
PDF
MAPFRE: Aplicando orientación a eventos en cores de seguros
confluent
 
PPTX
Kubernetes presentation
GauranG Bajpai
 
PPTX
DevOps-CoE
Sudarshan Angirash
 
PPTX
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
PDF
VMware vSphere vMotion: 5.4 times faster than Hyper-V Live Migration
VMware
 
PDF
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
gjuljo
 
PPT
Virtualization in cloud
Ashok Kumar
 
PPTX
Introduction to Containers and Docker
Fayçal Bziou
 
PPTX
Introduction to OpenStack Trove & Database as a Service
Tesora
 
PPTX
Nutanix basic
ganang saputro
 
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu
 
Efficient Kubernetes scaling using Karpenter
Marko Bevc
 
Multi-cloud strategies and services
Tatiana Lavrentieva
 
Eucalyptus cloud computing
Rahul Rana
 
Kubernetes in Docker
Docker, Inc.
 
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
Edureka!
 
Ansible presentation
Suresh Kumar
 
Kubernetes Introduction
Peng Xiao
 
UCS Presentation
Robert Evans
 
Infrastructure as Code Presentation v5.pptx
YASHSRIVASTAVA811639
 
MAPFRE: Aplicando orientación a eventos en cores de seguros
confluent
 
Kubernetes presentation
GauranG Bajpai
 
DevOps-CoE
Sudarshan Angirash
 
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
VMware vSphere vMotion: 5.4 times faster than Hyper-V Live Migration
VMware
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
gjuljo
 
Virtualization in cloud
Ashok Kumar
 
Introduction to Containers and Docker
Fayçal Bziou
 
Introduction to OpenStack Trove & Database as a Service
Tesora
 
Nutanix basic
ganang saputro
 

Similar to Microservices, Kubernetes, and Application Modernization Done Right (20)

PDF
Digital Transformation with Kubernetes, Containers, and Microservices
Lightbend
 
PDF
Containers, microservices and serverless for realists
Karthik Gaekwad
 
PDF
Embracing Containers and Microservices for Future Proof Application Moderniza...
Marlabs
 
PDF
Microservices: moving parts around
Chris Winters
 
PDF
Micro service, Containers & Cluster Management
Vasu Thiyagarajan
 
PDF
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
Mindfire LLC
 
PDF
Microservices and Docker at Scale: The PB&J of Modern Systems
TechWell
 
PPT
Integration in the Cloud
Rob Davies
 
PPTX
Kubernetes solutions
Eric Cattoir
 
PDF
Monoliths, Myths, and Microservices - CfgMgmtCamp
Michael Ducy
 
PPTX
Cloud Foundry 2015 LInuxCon Keynote
Cloud Foundry Foundation
 
PPTX
Microservices, Containers, Scheduling and Orchestration - A Primer
Gareth Llewellyn
 
PPTX
Docker-N-Beyond
santosh007
 
PPTX
Microservices pros and cons dark
Andrew Siemer
 
PPTX
DockerCon 2016 - Structured Container Delivery
Oscar Renalias
 
PDF
Are VM Passé?
dotCloud
 
PDF
Are VMs Passé?
Docker, Inc.
 
PPTX
Serverless microservices
Lalit Kale
 
PDF
Microservices: How loose is loosely coupled?
John Rofrano
 
PPTX
Microservices Architecture
Rishabh Karajgi
 
Digital Transformation with Kubernetes, Containers, and Microservices
Lightbend
 
Containers, microservices and serverless for realists
Karthik Gaekwad
 
Embracing Containers and Microservices for Future Proof Application Moderniza...
Marlabs
 
Microservices: moving parts around
Chris Winters
 
Micro service, Containers & Cluster Management
Vasu Thiyagarajan
 
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
Mindfire LLC
 
Microservices and Docker at Scale: The PB&J of Modern Systems
TechWell
 
Integration in the Cloud
Rob Davies
 
Kubernetes solutions
Eric Cattoir
 
Monoliths, Myths, and Microservices - CfgMgmtCamp
Michael Ducy
 
Cloud Foundry 2015 LInuxCon Keynote
Cloud Foundry Foundation
 
Microservices, Containers, Scheduling and Orchestration - A Primer
Gareth Llewellyn
 
Docker-N-Beyond
santosh007
 
Microservices pros and cons dark
Andrew Siemer
 
DockerCon 2016 - Structured Container Delivery
Oscar Renalias
 
Are VM Passé?
dotCloud
 
Are VMs Passé?
Docker, Inc.
 
Serverless microservices
Lalit Kale
 
Microservices: How loose is loosely coupled?
John Rofrano
 
Microservices Architecture
Rishabh Karajgi
 
Ad

More from Lightbend (20)

PDF
IoT 'Megaservices' - High Throughput Microservices with Akka
Lightbend
 
PDF
How Akka Cluster Works: Actors Living in a Cluster
Lightbend
 
PDF
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
Lightbend
 
PDF
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Lightbend
 
PDF
Akka at Enterprise Scale: Performance Tuning Distributed Applications
Lightbend
 
PDF
Detecting Real-Time Financial Fraud with Cloudflow on Kubernetes
Lightbend
 
PDF
Cloudstate - Towards Stateful Serverless
Lightbend
 
PDF
Digital Transformation from Monoliths to Microservices to Serverless and Beyond
Lightbend
 
PDF
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
Lightbend
 
PPTX
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
Lightbend
 
PDF
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
Lightbend
 
PDF
Full Stack Reactive In Practice
Lightbend
 
PDF
Akka and Kubernetes: A Symbiotic Love Story
Lightbend
 
PPTX
Scala 3 Is Coming: Martin Odersky Shares What To Know
Lightbend
 
PDF
Migrating From Java EE To Cloud-Native Reactive Systems
Lightbend
 
PDF
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
PDF
Designing Events-First Microservices For A Cloud Native World
Lightbend
 
PDF
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Lightbend
 
PDF
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
Lightbend
 
PDF
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
Lightbend
 
IoT 'Megaservices' - High Throughput Microservices with Akka
Lightbend
 
How Akka Cluster Works: Actors Living in a Cluster
Lightbend
 
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
Lightbend
 
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Lightbend
 
Akka at Enterprise Scale: Performance Tuning Distributed Applications
Lightbend
 
Detecting Real-Time Financial Fraud with Cloudflow on Kubernetes
Lightbend
 
Cloudstate - Towards Stateful Serverless
Lightbend
 
Digital Transformation from Monoliths to Microservices to Serverless and Beyond
Lightbend
 
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
Lightbend
 
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
Lightbend
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
Lightbend
 
Full Stack Reactive In Practice
Lightbend
 
Akka and Kubernetes: A Symbiotic Love Story
Lightbend
 
Scala 3 Is Coming: Martin Odersky Shares What To Know
Lightbend
 
Migrating From Java EE To Cloud-Native Reactive Systems
Lightbend
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
Designing Events-First Microservices For A Cloud Native World
Lightbend
 
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Lightbend
 
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
Lightbend
 
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
Lightbend
 
Ad

Recently uploaded (20)

PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Human Resources Information System (HRIS)
Amity University, Patna
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 

Microservices, Kubernetes, and Application Modernization Done Right

  • 1. Microservices, Kubernetes And Application Modernization Using Reactive Microservices to be Successful Moving to Modern Environments David Ogren, Enterprise Architect
  • 2. Agenda • Why Modernization • Microservices • Containers • Kubernetes • Modernization Approaches • Reactive, Lightbend, and Reactive Launch • Q&A
  • 4. What is Application Modernization? • Digital Transformation – Do something new • Be more Agile – Speed up changes or make them less risky • Move to the “Cloud” – Reduce costs – Be more elastic
  • 5. Characteristics of a Monolith • Deployed as a unit • “Big Bang” releases – long and carefully coordinated • Single shared database • Communicate with synchronous method calls • Deep coupling
  • 6. Business Reasons for Modernization • Performance can be an Issue • Serious failures in one component can bring down the whole application • Have to buy infrastructure for worst case: application hard to scale • Deep coupling leads to inflexibility Inventory Shopping Cart Shipping Payment Personalization
  • 7. Technical Reasons for Modernization • Scaling a monolith is hard – Concurrency • How to deal with data science? • Codebase becomes large and hard to understand – “fun” with merge conflicts • Teams become large and hard to coordinate • Moving to cloud is hard Broker-Dealers Assets Taxes Clients Corporate Actions
  • 8. Framing Project Goals • Digital Transformation – Do something new • Be more Agile – Speed up changes or make them less risky • Move to the “Cloud” – Reduce costs – Be more elastic
  • 10. Small autonomous services that work together, modeled around a business domain. What is a Microservice? Sam Newman Author of Building Microservices
  • 11. • Single Responsibility (do one thing …) Duck Typing a Microservice?
  • 12. There are only two hard problems in distributed systems: • 2. Exactly-once delivery • 1. Guaranteed order of messages • 2. Exactly-once delivery —Mathias Verraes? Distributed Systems
  • 13. Amdahl’s Law & Gunther’s Law
  • 17. • The network is reliable • Latency is zero • Bandwidth is infinite • The network is secure 8 Fallacies of Distributed Systems —L Peter Deutsch • Topology doesn't change • There is 1 administrator • Transport cost is zero • The network is homogeneous
  • 19. • The network is reliable • Latency is zero • Bandwidth is infinite • The network is secure 8 Fallacies of Distributed Systems —L Peter Deutsch • Topology doesn't change • There is 1 administrator • Transport cost is zero • The network is homogeneous
  • 21. • The network is reliable • Latency is zero • Bandwidth is infinite • The network is secure 8 Fallacies of Distributed Systems —L Peter Deutsch • Topology doesn't change • There is 1 administrator • Transport cost is zero • The network is homogeneous
  • 25. • Single Responsibility (do one thing …) Duck Typing a Microservice?
  • 26. Microservices are NOT just small applications Pitfall #1
  • 27. • Isolation between services – Services deployed independently – Independent data – Loose coupling of components • Agile Deployment • Distributed/Elastic Deployment • Single Responsibility (do one thing …) Duck Typing a Microservice
  • 29. • All access to a service’s state must got through its API • This allows the service to evolve internally • This allows the service to survive failures in other services Independent Data Inventory Service Shipping Service Inventory DB Shipping DB
  • 30. • Shared nothing (except integration protocols) • Logic inside services, communication is asynchronous “dumb pipes”. • Based on the assumption that change is required and infrastructure automated Microservices Implement Bounded Contexts ShippingInventory Shipping DBInventory DB Payment Payment DB Search Search DB API Layer Event Bus
  • 31. • Isolation between services – Services deployed independently – Independent data – Loose coupling of components • Single Responsibility • Agile Deployment • Distributed/Elastic Deployment Duck Typing a Microservice
  • 32. • Scales horizontally • Fault Isolation – Security Isolation • Fits well with cloud/containers • Encapsulation: scales complexity – Flexibility: right tool for each job Microservice Benefits
  • 33. • Distributed systems are hard – Hard to develop – Hard to debug – Hard to monitor • Requires an API driven approach • Nearly always requires TDD approach • Assumes infrastructure is automated Microservice Challenges
  • 35. In theory: any OS level virtualization In practice: Docker and Open Container Initiative competitors What is containerization?
  • 36. A layer on top of LXC based Linux Virtualization • Lighter weight than VMs: containers share one kernel • Combine the application and the platform into a unified image Tools for building, managing and storing those container images What is containerization?
  • 37. What is containerization? Dockerfile FROM registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift COPY stage/* /opt/docker EXPOSE 8080 ENTRYPOINT ["/opt/docker/bin/myapp"] DEPLOY SERVER(S) BUILD MACHINE stage folder “image” docker image build –t myapp:1.0 . REGISTRY docker image push myapp:1.0docker image run myapp:1.0
  • 38. Repeatability of infrastructure – If it runs on my laptop it should run on dev and it should run on prod: the Dockerfile captures everything needed Repeatability of deployment – I don’t need to understand anything about the app to deploy it Containers can be built out of layered building blocks Quick deployments mean containerization fits with automation (including CI/CD and our microservice requirements) Benefits of Containerization
  • 39. Avoid startup complexity and large containers • One process per container • Images should be “ephemeral”: easy to start, stop, Avoid persistent state in your containers – In theory you can store state in persistent volume – But this defeats the purpose of immutability • Images should be portable – Don’t rely on details of your environment, for example • Cattle vs pets Principles of Containerization
  • 40. Containers are NOT just lightweight Linux boxes Pitfall #2
  • 41. No difference between application and platform: they are fused into an image • For example, no concept of “applying an OS patch” to a container. You rebuild the image from scratch. • This, however, also plays into the idea of containers being ephemeral: you should be recreating your images by rebuilding them on top of patched base images via CI/CD Single purpose images with single processes Containers vs Hosts/VMs
  • 42. • Lots of things we used to take for granted in the monolith based world are difficult/impossible in containers – And easy to find lots of published containers that violate best practices • The focus on making container images immutable means that either you: – Push all of your state out of the container (bad for performance/scale) – Manage all of the state yourself (difficult) • Containerization (by itself) doesn’t actually help you manage or deploy containers at scale Challenges of Containerization
  • 43. Containers by themselves are about running single images: there is no concept in ordinary Docker of: • If each container is one process, how do I define the relationship between the parts? • How do I horizontally scale my application? • How do I monitor my application? And take action when something goes wrong? • How do I upgrade my application in place? And take action when something goes wrong with the upgrade? • How do I control access to my containers? As the name implies, container orchestration is about how we coordinate all of the containers. Container Orchestration
  • 46. Regardless, each of these systems is a framework for defining the orchestration. • You don’t tell the framework what to do, the framework tells you what to do. • Once more, we are changing how we operate and a new mindset is needed Container Orchestration
  • 47. You would think [a rewrite] is easy - just make the new one do what the old one did. Yet they are always much more complex than they seem, and overflowing with risk. –Martin Fowler Migration Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. –Joel Spolsky
  • 48. The Strangler Fig Pattern An alternative route is to gradually create a new system around the edges of the old, letting it grow slowly over several years until the old system is strangled.
  • 49. Strangler Fig == Events Monolith Users
  • 50. Strangler Fig == Events Monolith Users Proxy Shopping Cart Events μService
  • 51. Strangler Fig == Events Monolith Users Proxy Shopping Cart Events μService New Views
  • 52. Strangler Fig == Events Monolith Users Proxy Shopping Cart Commands μService New Views Verify
  • 53. Strangler Fig == Events Monolith Users Proxy μService All Interaction Event Bus
  • 54. Strangler Fig == Events Monolith Users Proxy μService All Interaction Event Bus μService μService
  • 55. • Have a business sponsor, listen, deliver new value • Incrementally build trust • Start small, think big Rules of Thumb
  • 57. Reactive Manifesto http://www.reactivemanifesto.org/ RESILIENT The system stays responsive in the face of failure ELASTIC The system stays responsive under varying workload RESPONSIVE The system responds in a timely manner if at all possible Asynchronous message- passing ensures loose coupling, isolation and location transparency MESSAGE DRIVEN
  • 58. Web Application Framework Concurrency Toolkit Runtime Thin, powerful abstraction Other curated tools, architectural principles and patterns used for building reactive microservice systems
  • 59. Asynchronous & Non Blocking Event Sourcing Command query responsibility segregation Eventual Consistency Domain Driven Design (Bounded Contexts, Context Maps, Aggregate Entities) Service Locator Discovery Edge Service Lagom Design Patterns Key Patterns Required when building distributed reactive microservice systems Circuit Breaker
  • 60. Lagom Components Akka – Persistence, PubSub, Cluster, Streaming Async Services Play Framework – Web framework Cassandra – managing data persistence Guice – dependency injection SLF4J & Logback – Logging Typesafe Config – configuration JSON Serialization – Play JSON (Scala) Jackson (Java) Service Gateway Message Broker - Kafka
  • 61. 67 Lightbend Platform Products and Services that improve time to value and decrease project risk
  • 62. 69 Lightbend Reactive Launch Reac i e La nch S a Yo Reac i e P ojec Off Righ S a on Ta ge A a complemen o o Ligh bend S b c ip ion he Reac i e La nch offe ing ill accele a e o adop ion of he Reac i e pla fo m i h deepe collabo a ion b connec ing o domain e pe i h o Ligh bend Reac i e e pe Collabo a e o e plo e he e ca e of o legac echnolog and o k oge he o define he a fo a d Benefi ● Ini ia e o eam o he la e a chi ec e and de ign app oache fo Reac i e S em and ge cla i on hich one migh be applicable o o need ● De elop clea ie be een echnical o k and b ine o come ● E abli h p io i ie h o gh cla i of nde anding on a mp ion gap and i k ● Imp o e o eam kill b ilding he confidence and mo i a ion O come ● Ha e a olid plan fo de igning con c ing e ing deplo ing moni o ing and caling o eac i e ol ion ● So nd e ie ed em a chi ec e a mp ion challenged ● F nc ioning de elopmen eam i h ea l cce e nde i fee ● Recommenda ion on he a fo a d o en e and ppo cce Me hodolog ● Incep ion p epa a ion and anal i o nde and o compan and domain ● da f ll ime in en i e kickoff o la nch on i e op ion e abli h ini ial ajec o ● Con in ed coaching and men o ing d ing da i e a ion a on a ge ● Facili a ion and men o ing in Reac i e Pla fo m de elopmen ● E pe e ie of o em a chi ec e and de ign i h ecommenda ion ● P od c anal i i h o p od c o ne and akeholde ● Acce e pe ad ice i h de elope foc ed ppo b c ip ion ● Reac i e La nch epo and ecommenda ion fo he f e • Focused on enablement • Holistic: develop clear ties between the technical work and the business outcomes • Prove the key technical points, establish a sound system architecture
  • 64. https://www.lightbend.com/ebooks • Reactive Systems Architecture • Domain-Driven Design Distilled • Developing Reactive Microservices • Reactive Microsystems: The Evolution of Microservices at Scale • Reactive Microservices: From Prototype to Production Ready Systems • And many more … Free e-books
  • 65. Akka: akka.io Lagom: lagomframework.com Lightbend Platform https://www.lightbend.com/lightbend-platform Bla Bla Microservices Bla Bla: http://bit.ly/blabla_micro First principles of microservices from Lightbend’s CTO Links
  • 66. David Ogren (Global Solutions Architect) (919) 946-4847, [email protected] Frank Carvalho (Lightbend) (617) 312-7915, [email protected] Reach out to Us