SlideShare a Scribd company logo
Kubernetes and lastminute.com group:
our course towards better scalability
and processes
michele.orsi@lastminute.com
Milan, 25-26 November 2016
The inspiring travel company
lastminute.com group in numbers
40 countries
17 languages
10M
travellers per year*
€ 2.5B GTV*
€ 250M revenue*
43M
users per month*
*data as 31st December 2015
icons from http://www.flaticon.com
A tech company to the core
Tech department: 300+ people
Modules: ~100
Database: 150 schemas, 3300 tables, TB data
Instances: 1400+
Locations: Chiasso, Milan, Madrid, London, Bengaluru
https://www.pexels.com/photo/turtle-walking-on-sand-132936/
“Business thinks developers are slow"
lastminute.com group: an agile company
● Scrum and Kanban
● TDD
● clean code
● continuous integration
● code review
● internal communities
Starting from the monolith ...
https://www.flickr.com/photos/southtopia/5702790189
https://www.pexels.com/photo/gray-pebbles-with-green-grass-51168/
... broken into microservices
The improvements needed
● alignment
● real pipelines
● infrastructure
● resilience
● monitoring
● remove constraints
An year-long endeavour
● build a new, modern infrastructure
● migrate the search (flight/hotel) product there
... without:
● impacting the business
● throwing away our whole datacenter
TODO list
● company framework
● docker
● kubernetes
How? Teams and peopleNew teams
https://www.pexels.com/photo/blue-lego-toy-beside-orange-and-white-lego-toy-standing-during-daytime-105822/
Our infrastructure and technologyOur infrastructure and technology
https://www.pexels.com/photo/colorful-toothed-wheels-171198/
● build once, run everywhere
● externalised configuration
Docker containers
Docker containers
registry.intra/application:v2-090025112016
BASE OS
JAVA SDK
START/STOP SCRIPTS
JAR APPLICATION
● build once, run everywhere
● externalised configuration
Kubernetes
● independent from OS/hosts
● isolated env, managed at scale
● self-healing
● externalised configuration
Omega paper: http://research.google.com/pubs/pub41684.html
https://www.pexels.com/photo/red-toy-truck-24619/
“Your infrastructure on wheels”
Kubernetes: physical representation
NODE
1
DOCKER
ETCD
K8S
cluster
FLANNEL
NODE
2
DOCKER
ETCD
K8S
FLANNEL
NODE
28
DOCKER
ETCD
K8S
FLANNEL
...
Kubernetes: logical representation
NAMESPACE1 CPU 10
MEM 40GB
NAMESPACE2 CPU 20
MEM 50GB
NAMESPACE3 CPU 80
MEM 60GB
NAMESPACE4 CPU 5
MEM 5GB
cluster
APP3-PRODUCTION
Kubernetes: our architecture
APP2-PRODUCTION
APP1-PRODUCTION
APP3-PRODUCTION
APP2-PRODUCTION
APP1-PREVIEW
APP3-PRODUCTION
APP2-PRODUCTION
APP1-DEVELOPMENT
APP3-PRODUCTION
APP2-PRODUCTION
APP1-QA
APP3-PRODUCTION
APP2-PRODUCTION
APP1-STRESSTEST
nonproductionproduction
Kubernetes: our architecture and choices
APP1-PRODUCTION
deployment
replica-set
POD
3
POD
2
POD
1
production
Kubernetes: our architecture and choices
APP1-PRODUCTION
deployment
replica-set
secret configmap
POD
3
POD
2
POD
1
production
Kubernetes: our architecture and choices
APP1-PRODUCTION
deployment
replica-set
app1.lastminute.intra
secret configmap
POD
3
POD
2
POD
1
loadbalancer-app1
production
APP1-PRODUCTION
Kubernetes: our architecture and choices
POD
collectd
production
application fluentd
Kubernetes: what’s left outside?
● datastores
● distributed caches
● distributed locking
● pub-sub
● logs and metrics storage
1st try (with test app), it seemed to work
https://www.flickr.com/photos/26516072@N00/2194001232
The self-healing term describes any application,
service, or a system that can discover that it is
not working correctly and, without any human
intervention, make the necessary changes to
restore itself to the normal or designed state.
Self-healing
ref: https://technologyconversations.com/2016/01/26/self-healing-systems
Kubernetes agnostic interfaces
“When a container is dead I will restart it”
“When a container is ready I will forward traffic to it”
Kubernetes probes: liveness & readiness
Two questions for dev:
● when can I consider my
container alive?
● when can I consider my
container ready to receive
traffic?
spec:
containers:
livenessProbe:
httpGet:
path: /liveness
successThreshold: 3
failureThreshold: 2
readinessProbe:
httpGet:
path: /readiness
successThreshold: 3
failureThreshold: 2
deployment.yaml
/liveness:
● when tomcat container is up
● when ratio “active/max” threads are lower than a
threshold
/readiness:
● all the startup jobs have run
● no termination request has been received
.. ongoing never-ending research ..
Our choices: framework - k8s
● zero downtime during rollout
● monitoring in place
● alerting
● centralized logging
● legacy infrastructure to the rescue in case of problem
2nd try (with production traffic)
... failure ... the big one!
https://www.flickr.com/photos/ghost_of_kuji/2763674926
Problems
● configuration
● infrastructure
● tools
● manual mistakes
● (external) scalability
● temporary team focus on objective
● automation
● monitoring
● Go deeper in docker/kubernetes
Another improvement step
Pipeline: a huge step forward
microservice = factory.newDeployRequest()
.withArtifact(“com.lastminute.application1”,2)
lmn_deployCanaryStrategy(microservice,”qa”)
lmn_deployStableStrategy(microservice,”preview”)
lmn_deployCanaryStrategy(microservice,”production”)
pipeline
APP1-PRODUCTION
Monitoring: grafana/graphite/nagios
cluster
graphite
n collectd
Grafana
nagios
icons from http://www.flaticon.com
“Go” deep .. whatever language it takes
https://www.pexels.com/photo/sea-man-person-ocean-2859/
There’s light ..There’s a light .. at the end
https://www.pexels.com/photo/grayscale-photography-of-person-at-the-end-of-tunnel-211816/
● lead and migration time
● resilience
● root cause analysis
● speed of deployment
● instant scaling
... benefits
● 1300 req/sec in the new cluster
● 25 micro-services migrated in 4 months
● 1 week to migrate an application
● 10 minutes to create a new environment
● 11 min to gracefully roll-out a new version with 55
instances
● whole pipeline runs in 16 min
● 1.5M metrics/minute flows
Give me the numbers!
Yes, we’re hiring!
THANKS
www.lastminutegroup.com

More Related Content

What's hot (20)

PDF
Angular v2 et plus : le futur du développement d'applications en entreprise
LINAGORA
 
PDF
11th Docker Switzerland User Group Meetup
Philipp Grossenbacher
 
PDF
CNCF Projects Overview
Neependra Khare
 
PDF
Beyond OpenStack
Jirayut Nimsaeng
 
PDF
An Open Source Story: Open Containers & Open Communities
Phil Estes
 
PDF
Ewebkit basic (Web rendering enging of EFL)
ryuan choi
 
PDF
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
CodeOps Technologies LLP
 
PDF
Docker in Production, die Mobiliar
Philipp Grossenbacher
 
PDF
Pydata 2020 containers meetup
Walid Shaari
 
PDF
Intro to creating kubernetes operators
Juraj Hantak
 
PDF
1 - Welcome OPEN19 & Partners line-up
Kangaroot
 
PDF
Advanced Node.JS Meetup
LINAGORA
 
ODP
Proteon - DevOps Live 2019 - OpenShift Pitfalls
proteon-openshift-services
 
PDF
Red Hat Java Update and Quarkus Introduction
John Archer
 
PDF
OpenStack Ansible for private cloud at Kaidee
Jirayut Nimsaeng
 
PPTX
Docker
Joel Pinheiro
 
PPTX
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Konveyor Community
 
PDF
Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str...
Publicis Sapient Engineering
 
PDF
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeAcademy
 
PDF
Chaos Engineering Here We_Go
Lothar Wieske
 
Angular v2 et plus : le futur du développement d'applications en entreprise
LINAGORA
 
11th Docker Switzerland User Group Meetup
Philipp Grossenbacher
 
CNCF Projects Overview
Neependra Khare
 
Beyond OpenStack
Jirayut Nimsaeng
 
An Open Source Story: Open Containers & Open Communities
Phil Estes
 
Ewebkit basic (Web rendering enging of EFL)
ryuan choi
 
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
CodeOps Technologies LLP
 
Docker in Production, die Mobiliar
Philipp Grossenbacher
 
Pydata 2020 containers meetup
Walid Shaari
 
Intro to creating kubernetes operators
Juraj Hantak
 
1 - Welcome OPEN19 & Partners line-up
Kangaroot
 
Advanced Node.JS Meetup
LINAGORA
 
Proteon - DevOps Live 2019 - OpenShift Pitfalls
proteon-openshift-services
 
Red Hat Java Update and Quarkus Introduction
John Archer
 
OpenStack Ansible for private cloud at Kaidee
Jirayut Nimsaeng
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Konveyor Community
 
Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str...
Publicis Sapient Engineering
 
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeAcademy
 
Chaos Engineering Here We_Go
Lothar Wieske
 

Viewers also liked (20)

PDF
Kubernetes to scale
Michele Orsi
 
PPTX
Monitoring, Logging and Tracing on Kubernetes
Martin Etmajer
 
PPTX
Container & kubernetes
Ted Jung
 
PDF
Understanding Kubernetes
Tu Pham
 
PDF
Kubernetes in 30 minutes (2017/03/10)
lestrrat
 
PPTX
Docker and kubernetes
Dongwon Kim
 
PDF
Extending DevOps to Big Data Applications with Kubernetes
Nicola Ferraro
 
PDF
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Arjen Wassink
 
PPTX
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
Apigee | Google Cloud
 
PDF
An Introduction to Kubernetes
Imesh Gunaratne
 
PDF
From Code to Kubernetes
Daniel Oliveira Filho
 
PDF
Fluentd meetup
Sadayuki Furuhashi
 
PDF
Understanding Docker and IBM Bluemix Container Service
Andrew Ferrier
 
PDF
From zero to exit: a full startup journey
Michele Orsi
 
PDF
Containers: The What, Why, and How
Sneha Inguva
 
PDF
Kubernetes on aws
Yousun Jeong
 
PPTX
More tips and tricks for running containers like a pro - Rancher Online MEetu...
Shannon Williams
 
PDF
Microservices at scale with docker and kubernetes - AMS JUG 2017
Arjen Wassink
 
PDF
"On-premises" FaaS on Kubernetes
Alex Casalboni
 
PPTX
Deploying apps with Docker and Kubernetes
Daniel Fenton
 
Kubernetes to scale
Michele Orsi
 
Monitoring, Logging and Tracing on Kubernetes
Martin Etmajer
 
Container & kubernetes
Ted Jung
 
Understanding Kubernetes
Tu Pham
 
Kubernetes in 30 minutes (2017/03/10)
lestrrat
 
Docker and kubernetes
Dongwon Kim
 
Extending DevOps to Big Data Applications with Kubernetes
Nicola Ferraro
 
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Arjen Wassink
 
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
Apigee | Google Cloud
 
An Introduction to Kubernetes
Imesh Gunaratne
 
From Code to Kubernetes
Daniel Oliveira Filho
 
Fluentd meetup
Sadayuki Furuhashi
 
Understanding Docker and IBM Bluemix Container Service
Andrew Ferrier
 
From zero to exit: a full startup journey
Michele Orsi
 
Containers: The What, Why, and How
Sneha Inguva
 
Kubernetes on aws
Yousun Jeong
 
More tips and tricks for running containers like a pro - Rancher Online MEetu...
Shannon Williams
 
Microservices at scale with docker and kubernetes - AMS JUG 2017
Arjen Wassink
 
"On-premises" FaaS on Kubernetes
Alex Casalboni
 
Deploying apps with Docker and Kubernetes
Daniel Fenton
 
Ad

Similar to Kubernetes and lastminute.com: our course towards better scalability and processes (Codemotion Milan 2016) (20)

PDF
Kubernetes and lastminute.com: our course towards better scalability and proc...
Codemotion
 
PDF
Xpdays: Kubernetes CI-CD Frameworks Case Study
Denys Vasyliev
 
PDF
Kubecon seattle 2018 workshop slides
Weaveworks
 
PDF
Evolving for Kubernetes
Chris McEniry
 
PDF
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
PPTX
Why kubernetes matters
Platform9
 
PDF
Forced Evolution: Shopify's Journey to Kubernetes
C4Media
 
PDF
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
PROIDEA
 
PDF
Large Scale Kubernetes on AWS at Europe's Leading Online Fashion Platform - C...
Henning Jacobs
 
PDF
12.07.2017 Docker Meetup - KUBERNETES ON AWS @ ZALANDO TECH
Zalando adtech lab
 
PDF
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
Henning Jacobs
 
PDF
kubernetes_largescale_system_design_optimization
RaviShankar KS
 
PPTX
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
Tony Erwin
 
PDF
Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...
Henning Jacobs
 
PDF
Kubernetes - introduction
Sparkbit
 
PDF
Kubernetes 101 and Fun
QAware GmbH
 
PDF
Kubernetes 101 and Fun
Mario-Leander Reimer
 
PDF
From Containerized Application to Secure and Scaling With Kubernetes
Shikha Srivastava
 
PPTX
Kubernetes Community Growth and Use Case
Chris Gaun
 
PDF
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Kubernetes and lastminute.com: our course towards better scalability and proc...
Codemotion
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Denys Vasyliev
 
Kubecon seattle 2018 workshop slides
Weaveworks
 
Evolving for Kubernetes
Chris McEniry
 
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
Why kubernetes matters
Platform9
 
Forced Evolution: Shopify's Journey to Kubernetes
C4Media
 
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
PROIDEA
 
Large Scale Kubernetes on AWS at Europe's Leading Online Fashion Platform - C...
Henning Jacobs
 
12.07.2017 Docker Meetup - KUBERNETES ON AWS @ ZALANDO TECH
Zalando adtech lab
 
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
Henning Jacobs
 
kubernetes_largescale_system_design_optimization
RaviShankar KS
 
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
Tony Erwin
 
Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...
Henning Jacobs
 
Kubernetes - introduction
Sparkbit
 
Kubernetes 101 and Fun
QAware GmbH
 
Kubernetes 101 and Fun
Mario-Leander Reimer
 
From Containerized Application to Secure and Scaling With Kubernetes
Shikha Srivastava
 
Kubernetes Community Growth and Use Case
Chris Gaun
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Ad

Recently uploaded (20)

PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
July Patch Tuesday
Ivanti
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 

Kubernetes and lastminute.com: our course towards better scalability and processes (Codemotion Milan 2016)