SlideShare una empresa de Scribd logo
1 de 34
KUBERNETES @ BE-MOBILE
Pieter Callewaert – Teamlead Devops
DATA AGGREGATOR
KUBERNETES @ BE-MOBILE 2
Be-Mobile
mobility
database
Floating car data
• GPS data
• Smartphone data
• Telco data
Road sensors
• Cameras
• Radars
• Loops
Crowd sourced
• Drivers
• Social media
• Police
• Emergency vehicles
Other data
• Public transport
• Car & bike sharing
• Vehicles & bike parking, fuel
• Traffic emission & noise zones
• Toll
Sourcesfrom>20countries
WHO WE ARE
KUBERNETES @ BE-MOBILE 3
Smart Tolling &
Map Matching
Mobility
as a Service
Mobility Monitoring
& Analysis
Traffic
Management
Smart ParkingMobility Payments
Platform
Connected Vehicle
Platforms
Traveler
Information
Smart
mobility
BEFORE
KUBERNETE
S
MANUAL DEPLOYMENT
➞ Deployments were done manually on the servers
• Growing amount of countries where Be-Mobile is active
• Each country needs the same basic set of applications to be set up
• Growing amount of developers
• Meaning more applications to be deployed
• But, all deployments done by the DevOps-team
➞ Time to deployment increased due to the growth
➞ Management of the applications was getting complex
➞ Human errors might occur
KUBERNETES @ BE-MOBILE 5
PUPPET DEPLOYMENT
Dependencies problem: correct version of NodeJS, Java, Mono,…
• Programming the deployment of the applications by configuration
• Roll-outs of new countries and applications were much faster
• Helped avoiding human errors
KUBERNETES @ BE-MOBILE 6
PUPPET+DOCKER DEPLOYMENT
• Isolated environments for an application
• Contains all necessities for the application
• E.g.: website + webserver / Java application + Java framework
• No more need for ‘type-specific servers’
• Different types of applications
can all run on the same server
• Easy to migrate a container or scale
over multiple servers
KUBERNETES @ BE-MOBILE 7
HOWEVER… NEW BOTTLENECKS
• Chaining multiple applications
• Time consuming
• Error sensitive
• Crashes
• Manual interventions
• Deployments
• Faster, but still a backlog of deployments
KUBERNETES @ BE-MOBILE 8
WELCOME
KUBERNETE
S
WHAT IS KUBERNETES
• Google project (Borg) made open-source
• Further developed by a strong community
• Orchestration of containers
• Namespaces
• Self-healing
• Allows us to create deployment chains
KUBERNETES @ BE-MOBILE 10
ORCHESTRATION IN KUBERNETES
• Multiple servers are combined into a cluster
• Kubernetes picks a server to deploy an container to
• By checking the container resource needs (CPU/memory)
• By checking the servers resource availability
• Containers can be scaled or made high available very easy
• Different ways to do a deployment
• E.g.: rolling update, recreate
KUBERNETES @ BE-MOBILE 11
SELF-HEALING WITH KUBERNETES
• When a container no longer responds
• Health checks detect this (if configured)
• Container gets destroyed and restarted
• When a container crashes
• Container gets restarted
• When a server crashes
• Move containers running on the crashed server to another one
➞ Faster recovery time!
KUBERNETES @ BE-MOBILE 12
STARTING WITH KUBERNETES
First experience: The Sockshop demo from the kubernetes.io site (on minikube)
KUBERNETES @ BE-MOBILE 13
PRODUCTION DEPLOYMENT
Installing kubernetes on bare metal!
 A lot of deployment guides are focused on cloud environments
Started with kargo (now known as kubespray). Was our first production cluster.
Very alpha, updating between versions of kubernetes or kargo was very hard.
Then we tried with Kismatic
Easy and well documented installation
”Community” support is great, but only people from Apprenda are working on it
Is still our current installation method.
KUBERNETES @ BE-MOBILE 14
DISTRIBUTE
D
STORAGE
OPTION 1: GLUSTERFS
First experience with distributed storage systems
Installed automatic with Kismatic
Pros:
• Easy to manage/setup
Cons:
• We had to create our Persistent Volumes ourselves
• For some reason, not scalable when creating a lot of volumes
KUBERNETES @ BE-MOBILE 16
OPTION 2: CEPH
Deployed with Ansible
Pros:
• It just works.
• And really fast!
• StorageClass support in Kubernetes
Cons:
• Steep learning curve
• More complex architecture (compared to GlusterFS)
KUBERNETES @ BE-MOBILE 17
KUBERNETE
S
TODAY
WHAT DO WE DEPLOY ON KUBERNETES?
What we do not deploy on Kubernetes :
• Kafka
• Cassandra
• MongoDB
• Ceph
• Elastic Search
• Redis*
What do we deploy on Kubernetes:
• Everything else.
KUBERNETES @ BE-MOBILE 19
INSTALLATION SERVERS: ANSIBLE
• Installing one server was OK, installing 10 servers is slow, repetitive and boring.
• Automatic server installations
• Partitioning
• Basic installation of the operating system
• Configuration of firewall rules
• Deployment of core components (Kubernetes/Ceph)
KUBERNETES @ BE-MOBILE 20
CLUSTERS TODAY
• More than 1 year of production
• We migrated once a full Kubernetes cluster (switch from Kargo to Kismatic)
• Largest cluster surpassed 100 nodes (6.9 TB memory, 1000+ cores)
• Multiple clusters: test cluster, QA clusters, staging cluster,..
KUBERNETES @ BE-MOBILE 21
CONTINOUS DEPLOYMENT
KUBERNETES @ BE-MOBILE 22
VMAP DEPLOYMENTS
KUBERNETES @ BE-MOBILE 23
PROJECT DEPLOYMENT
KUBERNETES @ BE-MOBILE 24
CONTINOUS DEPLOYMENT: OTHER METHODS
KUBERNETES @ BE-MOBILE 25
• QA environments (e.g. Tolling Be-Mobile Acceptance)
• Self deploying applications
KUBERNETE
S
TOOLS
KUBERNETES PROXY MANGEMENT
KUBERNETES @ BE-MOBILE 27
BE-MOBILE LOGVIEWER
KUBERNETES @ BE-MOBILE 28
BE-MOBILE KUBETOKEN
• Inspired on Atlassian kubetoken (https://github.com/atlassian/kubetoken)
• Integrates with Hashicorp Vault
• Uses PKI backend to sign certificates, LDAP as auth backend.
KUBERNETES @ BE-MOBILE 29
LESSONS
LEARNED
NGINX INGRESS CONTROLLER AND WEBSOCKETS
Ingress controller getting unresponsive after a while
A lot of nginx processes still running
Perfect blog that describes the problem:
http://danielfm.me/posts/painless-nginx-ingress.html
KUBERNETES @ BE-MOBILE 31
CERTIFICATES EXPIRED
KUBERNETES @ BE-MOBILE 32
BE-MOBILE RECRUITING
We’re always looking for passionate talents!
http://www.be-mobile.com/careers/
PRESENTATION TITLE 33
info@be-mobile.com ⎹ www.be-mobile.com

Más contenido relacionado

La actualidad más candente

Xen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim MackeyXen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim Mackey
buildacloud
 

La actualidad más candente (20)

Adopting containers and kubernetes in production
Adopting containers and kubernetes in productionAdopting containers and kubernetes in production
Adopting containers and kubernetes in production
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
 
Stateful Applications On the Cloud: A PayPal Journey
Stateful Applications On the Cloud: A PayPal JourneyStateful Applications On the Cloud: A PayPal Journey
Stateful Applications On the Cloud: A PayPal Journey
 
Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2
 
Building Cloud Native Software
Building Cloud Native SoftwareBuilding Cloud Native Software
Building Cloud Native Software
 
Kubernetes and elixir
Kubernetes and elixirKubernetes and elixir
Kubernetes and elixir
 
Container Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesContainer Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher Kubernetes
 
New stuff in CloudStack!
New stuff in CloudStack!New stuff in CloudStack!
New stuff in CloudStack!
 
Define your Future with SUSE
Define your Future with SUSEDefine your Future with SUSE
Define your Future with SUSE
 
KubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the UnionKubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the Union
 
Xen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim MackeyXen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim Mackey
 
Kubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBayKubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBay
 
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOSDEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
 
Ceph for Storing MeerKAT Radio Telescope Data
Ceph for Storing MeerKAT Radio Telescope DataCeph for Storing MeerKAT Radio Telescope Data
Ceph for Storing MeerKAT Radio Telescope Data
 
Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news
 
Kube journey 2017-04-19
Kube journey   2017-04-19Kube journey   2017-04-19
Kube journey 2017-04-19
 
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCPstackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
 
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRYJELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
 
Cumulus Networks Overview
Cumulus Networks OverviewCumulus Networks Overview
Cumulus Networks Overview
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in Research
 

Similar a Kubernetes @ Be-Mobile

Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Tony Erwin
 
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + DockerAPPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
Steven Pousty
 

Similar a Kubernetes @ Be-Mobile (20)

DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
 
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
 
Arkena from heroku_to_k8s
Arkena from heroku_to_k8sArkena from heroku_to_k8s
Arkena from heroku_to_k8s
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to Kubernetes
 
DEVNET-1183 OpenShift + Kubernetes + Docker
DEVNET-1183	OpenShift + Kubernetes + DockerDEVNET-1183	OpenShift + Kubernetes + Docker
DEVNET-1183 OpenShift + Kubernetes + Docker
 
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + DockerAPPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
 
Data harmonycloudpowerpointclientfacing
Data harmonycloudpowerpointclientfacingData harmonycloudpowerpointclientfacing
Data harmonycloudpowerpointclientfacing
 
Kubernetes for All
Kubernetes for AllKubernetes for All
Kubernetes for All
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
Kubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning ControllerKubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning Controller
 
How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetup
 
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Kubernates : An Small introduction for Beginners by Rajiv VishwkarmaKubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
 
Container management with docker & kubernetes
Container management with docker & kubernetesContainer management with docker & kubernetes
Container management with docker & kubernetes
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
 
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
 
Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)
 
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar AasenContainer Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Kubernetes @ Be-Mobile

  • 1. KUBERNETES @ BE-MOBILE Pieter Callewaert – Teamlead Devops
  • 2. DATA AGGREGATOR KUBERNETES @ BE-MOBILE 2 Be-Mobile mobility database Floating car data • GPS data • Smartphone data • Telco data Road sensors • Cameras • Radars • Loops Crowd sourced • Drivers • Social media • Police • Emergency vehicles Other data • Public transport • Car & bike sharing • Vehicles & bike parking, fuel • Traffic emission & noise zones • Toll Sourcesfrom>20countries
  • 3. WHO WE ARE KUBERNETES @ BE-MOBILE 3 Smart Tolling & Map Matching Mobility as a Service Mobility Monitoring & Analysis Traffic Management Smart ParkingMobility Payments Platform Connected Vehicle Platforms Traveler Information Smart mobility
  • 5. MANUAL DEPLOYMENT ➞ Deployments were done manually on the servers • Growing amount of countries where Be-Mobile is active • Each country needs the same basic set of applications to be set up • Growing amount of developers • Meaning more applications to be deployed • But, all deployments done by the DevOps-team ➞ Time to deployment increased due to the growth ➞ Management of the applications was getting complex ➞ Human errors might occur KUBERNETES @ BE-MOBILE 5
  • 6. PUPPET DEPLOYMENT Dependencies problem: correct version of NodeJS, Java, Mono,… • Programming the deployment of the applications by configuration • Roll-outs of new countries and applications were much faster • Helped avoiding human errors KUBERNETES @ BE-MOBILE 6
  • 7. PUPPET+DOCKER DEPLOYMENT • Isolated environments for an application • Contains all necessities for the application • E.g.: website + webserver / Java application + Java framework • No more need for ‘type-specific servers’ • Different types of applications can all run on the same server • Easy to migrate a container or scale over multiple servers KUBERNETES @ BE-MOBILE 7
  • 8. HOWEVER… NEW BOTTLENECKS • Chaining multiple applications • Time consuming • Error sensitive • Crashes • Manual interventions • Deployments • Faster, but still a backlog of deployments KUBERNETES @ BE-MOBILE 8
  • 10. WHAT IS KUBERNETES • Google project (Borg) made open-source • Further developed by a strong community • Orchestration of containers • Namespaces • Self-healing • Allows us to create deployment chains KUBERNETES @ BE-MOBILE 10
  • 11. ORCHESTRATION IN KUBERNETES • Multiple servers are combined into a cluster • Kubernetes picks a server to deploy an container to • By checking the container resource needs (CPU/memory) • By checking the servers resource availability • Containers can be scaled or made high available very easy • Different ways to do a deployment • E.g.: rolling update, recreate KUBERNETES @ BE-MOBILE 11
  • 12. SELF-HEALING WITH KUBERNETES • When a container no longer responds • Health checks detect this (if configured) • Container gets destroyed and restarted • When a container crashes • Container gets restarted • When a server crashes • Move containers running on the crashed server to another one ➞ Faster recovery time! KUBERNETES @ BE-MOBILE 12
  • 13. STARTING WITH KUBERNETES First experience: The Sockshop demo from the kubernetes.io site (on minikube) KUBERNETES @ BE-MOBILE 13
  • 14. PRODUCTION DEPLOYMENT Installing kubernetes on bare metal!  A lot of deployment guides are focused on cloud environments Started with kargo (now known as kubespray). Was our first production cluster. Very alpha, updating between versions of kubernetes or kargo was very hard. Then we tried with Kismatic Easy and well documented installation ”Community” support is great, but only people from Apprenda are working on it Is still our current installation method. KUBERNETES @ BE-MOBILE 14
  • 16. OPTION 1: GLUSTERFS First experience with distributed storage systems Installed automatic with Kismatic Pros: • Easy to manage/setup Cons: • We had to create our Persistent Volumes ourselves • For some reason, not scalable when creating a lot of volumes KUBERNETES @ BE-MOBILE 16
  • 17. OPTION 2: CEPH Deployed with Ansible Pros: • It just works. • And really fast! • StorageClass support in Kubernetes Cons: • Steep learning curve • More complex architecture (compared to GlusterFS) KUBERNETES @ BE-MOBILE 17
  • 19. WHAT DO WE DEPLOY ON KUBERNETES? What we do not deploy on Kubernetes : • Kafka • Cassandra • MongoDB • Ceph • Elastic Search • Redis* What do we deploy on Kubernetes: • Everything else. KUBERNETES @ BE-MOBILE 19
  • 20. INSTALLATION SERVERS: ANSIBLE • Installing one server was OK, installing 10 servers is slow, repetitive and boring. • Automatic server installations • Partitioning • Basic installation of the operating system • Configuration of firewall rules • Deployment of core components (Kubernetes/Ceph) KUBERNETES @ BE-MOBILE 20
  • 21. CLUSTERS TODAY • More than 1 year of production • We migrated once a full Kubernetes cluster (switch from Kargo to Kismatic) • Largest cluster surpassed 100 nodes (6.9 TB memory, 1000+ cores) • Multiple clusters: test cluster, QA clusters, staging cluster,.. KUBERNETES @ BE-MOBILE 21
  • 25. CONTINOUS DEPLOYMENT: OTHER METHODS KUBERNETES @ BE-MOBILE 25 • QA environments (e.g. Tolling Be-Mobile Acceptance) • Self deploying applications
  • 29. BE-MOBILE KUBETOKEN • Inspired on Atlassian kubetoken (https://github.com/atlassian/kubetoken) • Integrates with Hashicorp Vault • Uses PKI backend to sign certificates, LDAP as auth backend. KUBERNETES @ BE-MOBILE 29
  • 31. NGINX INGRESS CONTROLLER AND WEBSOCKETS Ingress controller getting unresponsive after a while A lot of nginx processes still running Perfect blog that describes the problem: http://danielfm.me/posts/painless-nginx-ingress.html KUBERNETES @ BE-MOBILE 31
  • 33. BE-MOBILE RECRUITING We’re always looking for passionate talents! http://www.be-mobile.com/careers/ PRESENTATION TITLE 33

Notas del editor

  1. Welkomstwoord / wat zal er besproken worden Introductie mezelf / team (verantwoordelijkheid van devops team: infrastructuur, shared applicaties en GPS data) Eerste meetup Be-Mobile
  2. Be-Mobile is opgericht in 2007 met Touring als meerderheids aandeelhouder, sinds 2 jaar is nu Proximus aandeelhouder geworden - Verzamelen data van alle soorten bronnen (black box, smartphone data, social media, politie) Verkeers data Zo verzamelen we 20 miljard GPS posities per dag
  3. Welke diensten leveren we dan aan: Verkeersinformatie met media bedrijven RDS TMC/connected Analyse tools voor steden op historische data Parking (4411) en parkeergeleidingssytemen Traffic management (verkeers geleidings sytemen bij evenementen) Tolheffing
  4. Organisch gegroeid, diversiteit in technology stacks (.NET, mvc, java, nodejs, golang,…)
  5. Manueel deployment Veel meer landen, elk met hun basis set aan applicaties Meer en meer ontwikkelaars, dus ook meer applicaties die moeten uitgerold worden Via devops team Wachttijden Complex applicatiebeheer Menselijke fouten
  6. HIER BESLIST GEEN VM, WAAROM Automatisatie Programmeren eigenlijk hoe applicaties en servers moeten geinstalleerd worden Stijle leercurve Roll-out van nieuwe landen gingen pakken sneller Ook nieuwe applicaties gingen sneller
  7. Application dependencies mee in package (java framework, webserver,..) Geen nood aan specifieke java servers, web servers,.. Servers minder complex, gewoon docker containers draaien Applicatie schalen of migreren is pakken eenvoudiger
  8. Automatisatie brengt nieuwe bottle necks bloot Minder bezig houden met servers, meer bezig houden met koppelen van applicaties Nog altijd vrij foutgevoelig Bij crashes moesten we manueel tussenkomen Server crash: what to do Snellere deployments, maar nog altijd een backlog Service discovery met consul, maar gematigd succes
  9. 3 jaar geleden Open-Source gemaakt Community omvat ook bedrijven als RedHat, GitHub en Google Orchestration = beheer van de containers Namespaces = samenplaatsen van containers en configuraties, kan gemakkelijk verwijderd worden
  10. K8s = laag over de servers Vroeger: zelf server kiezen om iets te deployen Nu: Kubernetes laten weten dat we een container willen deployen, K8s will take care of it Vb rolling updates: web container Vb recreate: Icarus+ with state Hier zou ik aangeven dat we eigenlijk geen concept meer hebben van een server, maar dat we een overkoepelende interface hebben waar we kunnen aangeven dat een container moet draaien met bepaalde parameters
  11. - Health checks Vroeger: alles manueel recoveren -> veel werk en tijdrovend
  12. Nood aan state
  13. Deze systemen zijn al cluster/ha based systemen Performance redenen Redis is een uitzonderding, hangt er van af hoe belangrijk de persistence is Uitzondering is voor QA/staging omgevingen, waar we bewust de flexibel willen zijn en dat persistence/perfomance ondermaats is
  14. Automatisatie startte pas vanaf we de automatisatie tool installeerde Installeren van server viel mee van tijd.. Voor 1 server Extra automatisatie tool die ons toelaat gewoon het IP adres meegeven en de rol van server. Cluster van 10 server herinstalleren en terug operationeel hebben in <10 minuten
  15. Meer dan 1 jaar in productie Verschillende clusters, waaronder het grootste nu meer dan 100 servers bevat. Reden van verschillende clusters: QA cluster, staging cluster, test cluster
  16. Developer pusht code Buildserver compileert de applicatie Buildserver maakt de container voor de applicatie Slack notification “Deploy to Kubernetes?” Approval van teamlead of DevOps
  17. VMAP deployments: Basis componenten voor een basemap uitrollen
  18. Project deloyments: Pipedrives Alle configuratie zit samen op 1 plaats Tool leest de configuratie en geeft deze door aan Kubernetes om te deployen QA: Mogelijkheid om heel snel omgevingen op te starten en te verwijderen Geen achterblijvende test-files Meerdere environments naast elkaar draaien Beheer ligt volledig bij QA (en Devs) C-ITS Eigen deployment-systeem ontwikkeld door Backend
  19. QA: Mogelijkheid om heel snel omgevingen op te starten en te verwijderen Geen achterblijvende test-files Meerdere environments naast elkaar draaien Beheer ligt volledig bij QA (en Devs) C-ITS Eigen deployment-systeem ontwikkeld door Backend
  20. Nieuw deze maand Communicatie met kube-api gebeurt via kubectl en tls certificates, vault genereert certfificaten Eigen kubetoken programma die kubeconfig goed zet