SlideShare a Scribd company logo
1 of 67
Download to read offline
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

The Power of Azure DevOps
The Power of Azure DevOpsThe Power of Azure DevOps
The Power of Azure DevOpsJeff Bramwell
 
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...Chris Richardson
 
Microsoft Cloud Adoption Framework
Microsoft Cloud Adoption FrameworkMicrosoft Cloud Adoption Framework
Microsoft Cloud Adoption Frameworkssuserdb85d71
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3Dmitry Skaredov
 
Site (Service) Reliability Engineering
Site (Service) Reliability EngineeringSite (Service) Reliability Engineering
Site (Service) Reliability EngineeringMark Underwood
 
Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...
Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...
Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...Amazon Web Services
 
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaDevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaEdureka!
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesShiva Narayanaswamy
 
Implementing DevOps
Implementing DevOpsImplementing DevOps
Implementing DevOpsMike McGarr
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
Workflow Automation with Logic Apps
Workflow Automation with Logic AppsWorkflow Automation with Logic Apps
Workflow Automation with Logic AppsBizTalk360
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application ModernizationKarina Matos
 
Getting Started with Azure DevOps
Getting Started with Azure DevOpsGetting Started with Azure DevOps
Getting Started with Azure DevOpsJessica Deen
 
SCS DevSecOps Seminar - State of DevSecOps
SCS DevSecOps Seminar - State of DevSecOpsSCS DevSecOps Seminar - State of DevSecOps
SCS DevSecOps Seminar - State of DevSecOpsStefan Streichsbier
 
Microservices
MicroservicesMicroservices
MicroservicesSmartBear
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureNguyen Tung
 

What's hot (20)

The Power of Azure DevOps
The Power of Azure DevOpsThe Power of Azure DevOps
The Power of Azure DevOps
 
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
 
Microsoft Cloud Adoption Framework
Microsoft Cloud Adoption FrameworkMicrosoft Cloud Adoption Framework
Microsoft Cloud Adoption Framework
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3
 
Site (Service) Reliability Engineering
Site (Service) Reliability EngineeringSite (Service) Reliability Engineering
Site (Service) Reliability Engineering
 
Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...
Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...
Four Strategies to Create a DevOps Culture & System that Favors Innovation & ...
 
DevOps and Tools
DevOps and ToolsDevOps and Tools
DevOps and Tools
 
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaDevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best Practices
 
Devops
DevopsDevops
Devops
 
Implementing DevOps
Implementing DevOpsImplementing DevOps
Implementing DevOps
 
From Monolith to Microservices
From Monolith to MicroservicesFrom Monolith to Microservices
From Monolith to Microservices
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Workflow Automation with Logic Apps
Workflow Automation with Logic AppsWorkflow Automation with Logic Apps
Workflow Automation with Logic Apps
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
 
Getting Started with Azure DevOps
Getting Started with Azure DevOpsGetting Started with Azure DevOps
Getting Started with Azure DevOps
 
SCS DevSecOps Seminar - State of DevSecOps
SCS DevSecOps Seminar - State of DevSecOpsSCS DevSecOps Seminar - State of DevSecOps
SCS DevSecOps Seminar - State of DevSecOps
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 

Similar to Microservices, Kubernetes, and Application Modernization Done Right

Digital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and MicroservicesDigital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and MicroservicesLightbend
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyondsantosh007
 
Docker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdminDocker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdminDocker, Inc.
 
Devops - why, what and how?
Devops - why, what and how?Devops - why, what and how?
Devops - why, what and how?Malinda Kapuruge
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracled0nn9n
 
Microservices - when, why and how incontrodevops.it
Microservices  - when, why and how incontrodevops.itMicroservices  - when, why and how incontrodevops.it
Microservices - when, why and how incontrodevops.itGiuseppe Lavagetto
 
Cloud 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud HybridizationCloud 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud HybridizationMark Hinkle
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDr Ganesh Iyer
 
Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?John Rofrano
 
Docker in the Enterprise
Docker in the EnterpriseDocker in the Enterprise
Docker in the EnterpriseSaul Caganoff
 
Docker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application DeliveryDocker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application DeliveryDocker, Inc.
 
The Container Revolution: Reflections after the first decade
The Container Revolution: Reflections after the first decadeThe Container Revolution: Reflections after the first decade
The Container Revolution: Reflections after the first decadebcantrill
 
Docker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application DeliveryDocker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application DeliveryDocker, Inc.
 
Why docker | OSCON 2013
Why docker | OSCON 2013Why docker | OSCON 2013
Why docker | OSCON 2013dotCloud
 
The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data
The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data
The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data DataCentred
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
The DIY Punk Rock DevOps Playbook
The DIY Punk Rock DevOps PlaybookThe DIY Punk Rock DevOps Playbook
The DIY Punk Rock DevOps Playbookbcantrill
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMarkus Eisele
 

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

Digital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and MicroservicesDigital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and Microservices
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
 
Docker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdminDocker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdmin
 
Devops - why, what and how?
Devops - why, what and how?Devops - why, what and how?
Devops - why, what and how?
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracle
 
Microservices - when, why and how incontrodevops.it
Microservices  - when, why and how incontrodevops.itMicroservices  - when, why and how incontrodevops.it
Microservices - when, why and how incontrodevops.it
 
Cloud 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud HybridizationCloud 2.0: Containers, Microservices and Cloud Hybridization
Cloud 2.0: Containers, Microservices and Cloud Hybridization
 
Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 
Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?
 
Docker in the Enterprise
Docker in the EnterpriseDocker in the Enterprise
Docker in the Enterprise
 
Docker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application DeliveryDocker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application Delivery
 
The Container Revolution: Reflections after the first decade
The Container Revolution: Reflections after the first decadeThe Container Revolution: Reflections after the first decade
The Container Revolution: Reflections after the first decade
 
Docker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application DeliveryDocker, Containers and the Future of Application Delivery
Docker, Containers and the Future of Application Delivery
 
Why docker | OSCON 2013
Why docker | OSCON 2013Why docker | OSCON 2013
Why docker | OSCON 2013
 
The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data
The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data
The Effectiveness, Efficiency and Legitimacy of Outsourcing Your Data
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
The DIY Punk Rock DevOps Playbook
The DIY Punk Rock DevOps PlaybookThe DIY Punk Rock DevOps Playbook
The DIY Punk Rock DevOps Playbook
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systems
 

More from Lightbend

IoT 'Megaservices' - High Throughput Microservices with Akka
IoT 'Megaservices' - High Throughput Microservices with AkkaIoT 'Megaservices' - High Throughput Microservices with Akka
IoT 'Megaservices' - High Throughput Microservices with AkkaLightbend
 
How Akka Cluster Works: Actors Living in a Cluster
How Akka Cluster Works: Actors Living in a ClusterHow Akka Cluster Works: Actors Living in a Cluster
How Akka Cluster Works: Actors Living in a ClusterLightbend
 
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
The Reactive Principles: Eight Tenets For Building Cloud Native ApplicationsThe Reactive Principles: Eight Tenets For Building Cloud Native Applications
The Reactive Principles: Eight Tenets For Building Cloud Native ApplicationsLightbend
 
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Putting the 'I' in IoT - Building Digital Twins with Akka MicroservicesPutting the 'I' in IoT - Building Digital Twins with Akka Microservices
Putting the 'I' in IoT - Building Digital Twins with Akka MicroservicesLightbend
 
Akka at Enterprise Scale: Performance Tuning Distributed Applications
Akka at Enterprise Scale: Performance Tuning Distributed ApplicationsAkka at Enterprise Scale: Performance Tuning Distributed Applications
Akka at Enterprise Scale: Performance Tuning Distributed ApplicationsLightbend
 
Detecting Real-Time Financial Fraud with Cloudflow on Kubernetes
Detecting Real-Time Financial Fraud with Cloudflow on KubernetesDetecting Real-Time Financial Fraud with Cloudflow on Kubernetes
Detecting Real-Time Financial Fraud with Cloudflow on KubernetesLightbend
 
Cloudstate - Towards Stateful Serverless
Cloudstate - Towards Stateful ServerlessCloudstate - Towards Stateful Serverless
Cloudstate - Towards Stateful ServerlessLightbend
 
Digital Transformation from Monoliths to Microservices to Serverless and Beyond
Digital Transformation from Monoliths to Microservices to Serverless and BeyondDigital Transformation from Monoliths to Microservices to Serverless and Beyond
Digital Transformation from Monoliths to Microservices to Serverless and BeyondLightbend
 
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6Lightbend
 
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
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...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...Lightbend
 
Full Stack Reactive In Practice
Full Stack Reactive In PracticeFull Stack Reactive In Practice
Full Stack Reactive In PracticeLightbend
 
Akka and Kubernetes: A Symbiotic Love Story
Akka and Kubernetes: A Symbiotic Love StoryAkka and Kubernetes: A Symbiotic Love Story
Akka and Kubernetes: A Symbiotic Love StoryLightbend
 
Scala 3 Is Coming: Martin Odersky Shares What To Know
Scala 3 Is Coming: Martin Odersky Shares What To KnowScala 3 Is Coming: Martin Odersky Shares What To Know
Scala 3 Is Coming: Martin Odersky Shares What To KnowLightbend
 
Migrating From Java EE To Cloud-Native Reactive Systems
Migrating From Java EE To Cloud-Native Reactive SystemsMigrating From Java EE To Cloud-Native Reactive Systems
Migrating From Java EE To Cloud-Native Reactive SystemsLightbend
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsLightbend
 
Designing Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldDesigning Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldLightbend
 
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For ScalaScala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For ScalaLightbend
 
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesHow To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesLightbend
 
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And KubernetesA Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And KubernetesLightbend
 

More from Lightbend (20)

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

Recently uploaded

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Recently uploaded (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

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, david.ogren@lightbend.com Frank Carvalho (Lightbend) (617) 312-7915, frank.carvalho@lightbend.com Reach out to Us