SlideShare a Scribd company logo
Monolith to Microservices
with containers
Marcel Dempers - Solutions Architect @ Webjet
$> whoami
● Solutions Architect
○ Distributed System Platforms
○ Performance Engineering
○ Microservice Architectures
○ Containers & Kubernetes
● YouTube
● I also lift weights
● https://marcel.guru
@marceldempers https://youtube.com/c/marceldempers
Monolith Paradigm: example
User Interface
(Web site)
Business logic
(Back end) API
Large
Database
LOCALHOST
Identify your pain points
- Our release cycles were slow - Every 3-6 months deployments
- Monolithic code is complex
- Difficult to implement change
- Test surface is large (feature pileup)
- High Risk deployments
- Low team morale
Taking the First step
- Reduce operational overhead on monolith
- Target low hanging fruit
- For Webjet, this was automated deployments
- Without downtime
- Teams gained confidence
- Business gained confidence
- Agile  DevOps
- Automate yourself out of a job
- Deploy weekly
Selecting first candidate
- Decoupling the monolith
- Don’t decouple for the sake of decoupling
- Don’t over-engineer
- If it ain’t broke, don’t fix it
- Low hanging fruit
- Do what adds value
- MVP
- Found Low critical, valuable feature candidate
- Write it in .NET Core
Azure Web Apps
- We deployed our first web app
- IIS as a service model
- don’t have to manage VMs and infrastructure
- Less operational overhead
- At some point we had 60
- - Allowed teams to learn about microservices
- - Less unknowns (Managed IIS)
- Focus on agility and value
New pain points
- We needed more
- Became quite expensive at scale
- 60 apps
- 60 servers
- 120 servers data center HA
- 240 servers = cross geo HA
- Shared infrastructure = noisy neighbour
- Lot's more infrastructure
- Release cycles not fast enough
- Network not efficient enough
Era of containers
- Why containers ???
- Containers are enablers
- Resource isolation = contain noisy neighbour
- Port mappings
- Host machines are immutable
- Give me a kernel
- Stateless architectures
- Utilise PaaS for data (S3,blob etc)
- Immutable builds
- Don’t install anything on a build server ever!
- Only docker :)
- Jenkins pipelines as code
- Describe entire app and its dependencies in a single dockerfile
Choosing an orchestrator
- What is a container orchestrator?
- Deploys and runs containers
- Scheduler
- Monitor container health, restarts, probes
- Enforce resource limits
- DC/OS by Mesosphere , Kubernetes , Docker Enterprise ??? which one ?
- It doesn’t matter which one
- We did not lock ourselves to the platform
- We chose DC/OS
- We switched to K8s a week after going live
Kubernetes
- Platform to build platform
- Desired State Configuration
- Entire infrastructure described in a YAML file
- kubectl apply -f environment.yaml
- Manages ports for containers
- Internal DNS
- Ingress Traffic
- Deployments & Pods
VM VM VM VM VM
KUBERNETES API db
node node node node node
*Deployments - replicas=3 How to deploy=graceful
* Pod
- name=app
- port=80
- myimage:v0.0.1
- environment variables
appappapp app
*Services
- Describes
traffic
SERVICE (private DNS)SERVICE (type = LoadBalancer)
LOAD
BALANCER
(PUBLIC IP)
OTHERS
● CONFIGMAP
● SECRETS (passwordskeys)
KUBERNETES API db- Namespace
- Ingress
- Deployment
- Pod
- Ingress controller
- Service
- Type = LoadBalancer
Ingress controller
LOAD
BALANCER
(PUBLIC IP)- Namespace
- flights
- Deployment
- Pod
- flights-search-service
- Service
- Type = ClusterIP
- Ingress
- Host = host.com
- Path /api/flightsearch
Service
Pod 1
Pod 2
Ingress
Host.com
/api/flightssearch
Service
Pod A
Pod B
Ingress
Host.com
/api/bookservice
What’s next
- Scaling for performance
- Scale traffic to 100k+ requests  sec
- Scheduling for scale
- CPU + Memory allocation efficiency
- Capacity planning
- Quality of Service tuning
- Multitenancy
- Performance engineering
- Flame graph style metrics
- Developer Experience Improvements
We're hiring :
Careers Email : rrhh@sunhotels.com
Jobs Link : https://www.linkedin.com/company/webbeds-europe/jobs/

More Related Content

What's hot (20)

PPTX
Hyperloglog Lightning Talk
Simon Prickett
 
PDF
OpenNebulaConf2017EU: FairShare Scheduling by Valentina Zaccolo, INDIGO
OpenNebula Project
 
PPTX
Sizing Your Scylla Cluster
ScyllaDB
 
PDF
OpenNebulaConf2017EU: Hyper converged infrastructure with OpenNebula and Ceph...
OpenNebula Project
 
PDF
OpenNebulaConf2017EU: Elastic Clusters for Data Analysis by Carlos de Alfonso...
OpenNebula Project
 
PDF
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Mirantis
 
PDF
Scalable Clusters On Demand
Bogdan Kyryliuk
 
PPTX
CoreOS fest 2016 Summary - DevOps BP 2016 June
Zsolt Molnar
 
PDF
Logging for Containers
Eduardo Silva Pereira
 
PDF
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebula Project
 
PDF
Containers and Logging
Eduardo Silva Pereira
 
PPTX
Amazon Web Services lection 4
Binary Studio
 
PDF
Why You Definitely Don’t Want to Build Your Own Time Series Database
InfluxData
 
PPTX
Apache Cassandra Lunch #52: Airflow and Cassandra for Cluster Management
Anant Corporation
 
PDF
Dynomite - PerconaLive 2017
Ioannis Papapanagiotou
 
PDF
Strip your TEXT fields - Exeter Web Feb/2016
Gabriela Ferrara
 
PDF
Introduction to new high performance storage engines in mongodb 3.0
Henrik Ingo
 
PDF
Zentrales logging mit dem Elastic Stack
SimonSchneider24
 
PDF
Cloud Native Logging / Fluentd Summit Tokyo
Eduardo Silva Pereira
 
PDF
Fluent Bit: Log Forwarding at Scale
Eduardo Silva Pereira
 
Hyperloglog Lightning Talk
Simon Prickett
 
OpenNebulaConf2017EU: FairShare Scheduling by Valentina Zaccolo, INDIGO
OpenNebula Project
 
Sizing Your Scylla Cluster
ScyllaDB
 
OpenNebulaConf2017EU: Hyper converged infrastructure with OpenNebula and Ceph...
OpenNebula Project
 
OpenNebulaConf2017EU: Elastic Clusters for Data Analysis by Carlos de Alfonso...
OpenNebula Project
 
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Mirantis
 
Scalable Clusters On Demand
Bogdan Kyryliuk
 
CoreOS fest 2016 Summary - DevOps BP 2016 June
Zsolt Molnar
 
Logging for Containers
Eduardo Silva Pereira
 
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebula Project
 
Containers and Logging
Eduardo Silva Pereira
 
Amazon Web Services lection 4
Binary Studio
 
Why You Definitely Don’t Want to Build Your Own Time Series Database
InfluxData
 
Apache Cassandra Lunch #52: Airflow and Cassandra for Cluster Management
Anant Corporation
 
Dynomite - PerconaLive 2017
Ioannis Papapanagiotou
 
Strip your TEXT fields - Exeter Web Feb/2016
Gabriela Ferrara
 
Introduction to new high performance storage engines in mongodb 3.0
Henrik Ingo
 
Zentrales logging mit dem Elastic Stack
SimonSchneider24
 
Cloud Native Logging / Fluentd Summit Tokyo
Eduardo Silva Pereira
 
Fluent Bit: Log Forwarding at Scale
Eduardo Silva Pereira
 

Similar to From monolith to microservice with containers. (20)

PDF
Containers, microservices and serverless for realists
Karthik Gaekwad
 
PDF
Monolithic to Microservices Architecture
Vin Dahake
 
PDF
Docker Orchestrators
Andrew Sullivan
 
PPT
Integration in the Cloud
Rob Davies
 
PDF
Open shift and docker - october,2014
Hojoong Kim
 
PDF
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Mario Ishara Fernando
 
PDF
Rami Sayar - Node microservices with Docker
Web à Québec
 
PDF
Containers, Docker, and Microservices: the Terrific Trio
Jérôme Petazzoni
 
PPTX
Docker for the enterprise
Bert Poller
 
PDF
Containers and Microservices for Realists
Oracle Developers
 
PDF
Containers and microservices for realists
Karthik Gaekwad
 
PPTX
Containerization
Suryadeep Chatterjee
 
PPTX
Ignite 2017 - Windows Server Feature Release
Taylor Brown
 
PPTX
Docker and microservices - moving from a monolith to microservices
Johan Louwers
 
ODP
The journey to container adoption in enterprise
Igor Moochnick
 
PDF
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace
 
PPTX
A docker love story
Brian de Heus
 
PDF
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 
PPTX
Docker-N-Beyond
santosh007
 
PPTX
Docker Enterprise Workshop - Intro
Patrick Chanezon
 
Containers, microservices and serverless for realists
Karthik Gaekwad
 
Monolithic to Microservices Architecture
Vin Dahake
 
Docker Orchestrators
Andrew Sullivan
 
Integration in the Cloud
Rob Davies
 
Open shift and docker - october,2014
Hojoong Kim
 
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Mario Ishara Fernando
 
Rami Sayar - Node microservices with Docker
Web à Québec
 
Containers, Docker, and Microservices: the Terrific Trio
Jérôme Petazzoni
 
Docker for the enterprise
Bert Poller
 
Containers and Microservices for Realists
Oracle Developers
 
Containers and microservices for realists
Karthik Gaekwad
 
Containerization
Suryadeep Chatterjee
 
Ignite 2017 - Windows Server Feature Release
Taylor Brown
 
Docker and microservices - moving from a monolith to microservices
Johan Louwers
 
The journey to container adoption in enterprise
Igor Moochnick
 
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace
 
A docker love story
Brian de Heus
 
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 
Docker-N-Beyond
santosh007
 
Docker Enterprise Workshop - Intro
Patrick Chanezon
 
Ad

Recently uploaded (20)

PDF
July Patch Tuesday
Ivanti
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Python basic programing language for automation
DanialHabibi2
 
July Patch Tuesday
Ivanti
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Python basic programing language for automation
DanialHabibi2
 
Ad

From monolith to microservice with containers.

  • 1. Monolith to Microservices with containers Marcel Dempers - Solutions Architect @ Webjet
  • 2. $> whoami ● Solutions Architect ○ Distributed System Platforms ○ Performance Engineering ○ Microservice Architectures ○ Containers & Kubernetes ● YouTube ● I also lift weights ● https://marcel.guru @marceldempers https://youtube.com/c/marceldempers
  • 3. Monolith Paradigm: example User Interface (Web site) Business logic (Back end) API Large Database LOCALHOST
  • 4. Identify your pain points - Our release cycles were slow - Every 3-6 months deployments - Monolithic code is complex - Difficult to implement change - Test surface is large (feature pileup) - High Risk deployments - Low team morale
  • 5. Taking the First step - Reduce operational overhead on monolith - Target low hanging fruit - For Webjet, this was automated deployments - Without downtime - Teams gained confidence - Business gained confidence - Agile DevOps - Automate yourself out of a job - Deploy weekly
  • 6. Selecting first candidate - Decoupling the monolith - Don’t decouple for the sake of decoupling - Don’t over-engineer - If it ain’t broke, don’t fix it - Low hanging fruit - Do what adds value - MVP - Found Low critical, valuable feature candidate - Write it in .NET Core
  • 7. Azure Web Apps - We deployed our first web app - IIS as a service model - don’t have to manage VMs and infrastructure - Less operational overhead - At some point we had 60 - - Allowed teams to learn about microservices - - Less unknowns (Managed IIS) - Focus on agility and value
  • 8. New pain points - We needed more - Became quite expensive at scale - 60 apps - 60 servers - 120 servers data center HA - 240 servers = cross geo HA - Shared infrastructure = noisy neighbour - Lot's more infrastructure - Release cycles not fast enough - Network not efficient enough
  • 9. Era of containers - Why containers ??? - Containers are enablers - Resource isolation = contain noisy neighbour - Port mappings - Host machines are immutable - Give me a kernel - Stateless architectures - Utilise PaaS for data (S3,blob etc) - Immutable builds - Don’t install anything on a build server ever! - Only docker :) - Jenkins pipelines as code - Describe entire app and its dependencies in a single dockerfile
  • 10. Choosing an orchestrator - What is a container orchestrator? - Deploys and runs containers - Scheduler - Monitor container health, restarts, probes - Enforce resource limits - DC/OS by Mesosphere , Kubernetes , Docker Enterprise ??? which one ? - It doesn’t matter which one - We did not lock ourselves to the platform - We chose DC/OS - We switched to K8s a week after going live
  • 11. Kubernetes - Platform to build platform - Desired State Configuration - Entire infrastructure described in a YAML file - kubectl apply -f environment.yaml - Manages ports for containers - Internal DNS - Ingress Traffic - Deployments & Pods
  • 12. VM VM VM VM VM KUBERNETES API db node node node node node *Deployments - replicas=3 How to deploy=graceful * Pod - name=app - port=80 - myimage:v0.0.1 - environment variables appappapp app *Services - Describes traffic SERVICE (private DNS)SERVICE (type = LoadBalancer) LOAD BALANCER (PUBLIC IP) OTHERS ● CONFIGMAP ● SECRETS (passwordskeys)
  • 13. KUBERNETES API db- Namespace - Ingress - Deployment - Pod - Ingress controller - Service - Type = LoadBalancer Ingress controller LOAD BALANCER (PUBLIC IP)- Namespace - flights - Deployment - Pod - flights-search-service - Service - Type = ClusterIP - Ingress - Host = host.com - Path /api/flightsearch Service Pod 1 Pod 2 Ingress Host.com /api/flightssearch Service Pod A Pod B Ingress Host.com /api/bookservice
  • 14. What’s next - Scaling for performance - Scale traffic to 100k+ requests sec - Scheduling for scale - CPU + Memory allocation efficiency - Capacity planning - Quality of Service tuning - Multitenancy - Performance engineering - Flame graph style metrics - Developer Experience Improvements
  • 15. We're hiring : Careers Email : [email protected] Jobs Link : https://www.linkedin.com/company/webbeds-europe/jobs/