SlideShare a Scribd company logo
1 of 17
Download to read offline
Kubernetes at Buffer
2 years in
Dan Farrelly
What we’ll cover
- Why we chose Kubernetes
- A timeline of our journey with Kubernetes so far
- What’s next for us
- Hopes & Dreams
- Quick advice
Who is this guy talking right now?
- Dan Farrelly
- Director of Engineering & Technical Lead @ Buffer
- Leading our move from monolith to microservices since 2016
- @djfarrelly
- dan@buffer.com
Buffer’s remote team
Why Kubernetes
- Moving from monolithic application to service oriented architecture
- Great community & project velocity (v1.3 in July 2016)
- Enable our Self-service DevOps/NoOps vision for our remote team
- Increase Developer velocity
- Reliability
A timeline
Baby steps - Mid 2016
- Kubernetes 1.3 Cluster via kube-up.sh
- One massive shared private repo with all-the-yaml’s
for collaboration & backup
- Everyone had to have k8s credentials and access to
this yaml repo
- This was slow
- We learned a lot
First real attempt - Fall 2016
- Created and shared service yaml’s using massive repo still
- kubectl patch -p ‘{ “spec”: ... }’ to automate deployments
- Repo got out of date after deploys
- Built a deploy service to handle Slackbot commands & trigger deploys
pipeline on Jenkins
- Accelerated development of services on k8s → Massive learning
- Started developing our in-house best practices
The Helm Era - 2017
- Helm 2 released in late 2016
- Charts in each service’s repo fixed issues w/ apply vs. patch and
mono-repo
- Extended our deploy service
- Continuous deployment
- On-demand per branch staging deployments using Helm & Ingress
- New clusters managed via kops
What our deploys look like
Where we are now
- Stats
- 3 Clusters (v1.8.x main production & dev, v1.3 legacy, data jobs)
- 140-160+ services running 700-800 pods on ~30 nodes
- Focus on moving to Helm fully
- Using Heptio’s Ark for backups
- Deprecating our yaml-repo!
Where we’re headed - Charts
- Charts in services’ repos challenges:
- Fragmentation, hard to keep best practices consistent, slow to roll out
changes across many services
- Creating our own company-standard, extensible charts (web service, worker,
cron, etc.) w/ health check side-cars and other best practices baked in
- Experimenting with Chartmuseum (Helm Chart Repository)
Where we’re headed - Cluster
- Adopting Istio to secure our service-to-service traffic
- Increase adoption of request tracing w/ Jaeger
- Moving to a single production/dev cluster (est. 50-60 nodes Fall ‘18)
- Improving our strategy for disaster recovery using Heptio’s Ark
Our long term Kubernetes outlook
- Developers shouldn’t need cluster access to do their jobs
- Developers configure via well documented Helm charts & values.yaml files
- Enable initial deploys via tooling not manual cli initial deploys
- Providing more visibility into services for developers:
- Traces, Failed deploy & crash loop notifications, smarter monitoring
Quick advice for those early in their k8s journey
- Learn Vanilla k8s first...but then definitely use Helm, Istio, etc.
- Pay attention to kube-dns - Monitoring & auto-scaling
- Practice cluster upgrades early and do them often
- Resource limits, resource limits, resource limits
Any Questions?
Dan Farrelly
dan@buffer.com
@djfarrelly
We’re hiring!
journey.buffer.com

More Related Content

What's hot

Helm Charts 101 - Simply Kubernetes Apps deployment
Helm Charts 101 - Simply Kubernetes Apps deploymentHelm Charts 101 - Simply Kubernetes Apps deployment
Helm Charts 101 - Simply Kubernetes Apps deploymentAbdennour TM
 
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseum
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseumContinuous Delivery for Kubernetes Apps with Helm and ChartMuseum
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseumCodefresh
 
Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...Safe Software
 
From Raw to Cooked: In-Depth FME Desktop to FME Server Workflow
From Raw to Cooked: In-Depth FME Desktop to FME Server WorkflowFrom Raw to Cooked: In-Depth FME Desktop to FME Server Workflow
From Raw to Cooked: In-Depth FME Desktop to FME Server WorkflowSafe Software
 
How we Auto Scale applications based on CPU with Kubernetes at M6Web?
 How we Auto Scale applications based on CPU with Kubernetes at M6Web? How we Auto Scale applications based on CPU with Kubernetes at M6Web?
How we Auto Scale applications based on CPU with Kubernetes at M6Web?Vincent Gallissot
 
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation NightKubernetes Kops - Automation Night
Kubernetes Kops - Automation NightKasper Nissen
 
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
 Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion... Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...Codemotion
 
A Few of My Favorite Things: The Magic that FME Brings to My Life
A Few of My Favorite Things:The Magic that FME Brings to My LifeA Few of My Favorite Things:The Magic that FME Brings to My Life
A Few of My Favorite Things: The Magic that FME Brings to My LifeSafe Software
 
Should developers care about dockerfiles and kubernetes resources
Should developers care about dockerfiles and kubernetes resourcesShould developers care about dockerfiles and kubernetes resources
Should developers care about dockerfiles and kubernetes resourcesKasper Nissen
 
CNCF Rajkot group- Know the magic of kubernetes with AWS EKS
CNCF Rajkot group- Know the magic of kubernetes with AWS EKSCNCF Rajkot group- Know the magic of kubernetes with AWS EKS
CNCF Rajkot group- Know the magic of kubernetes with AWS EKSamanmakwana3
 
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)Matt Butcher
 
Optimizing Kubernetes deployments with Helm
Optimizing Kubernetes deployments with HelmOptimizing Kubernetes deployments with Helm
Optimizing Kubernetes deployments with Helmerwindeg
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_awsKasper Nissen
 
Helm - Package manager in K8S
Helm - Package manager in K8SHelm - Package manager in K8S
Helm - Package manager in K8SPiotr Perzyna
 
Kubernetes Operations (KOPS)
Kubernetes Operations (KOPS)Kubernetes Operations (KOPS)
Kubernetes Operations (KOPS)Jakir Patel
 
Helm – The package manager for Kubernetes
Helm – The package manager for KubernetesHelm – The package manager for Kubernetes
Helm – The package manager for KubernetesFabianRosenthal1
 
Terraform Architech
Terraform ArchitechTerraform Architech
Terraform ArchitechDavid Hsu
 

What's hot (20)

Helm Charts 101 - Simply Kubernetes Apps deployment
Helm Charts 101 - Simply Kubernetes Apps deploymentHelm Charts 101 - Simply Kubernetes Apps deployment
Helm Charts 101 - Simply Kubernetes Apps deployment
 
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseum
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseumContinuous Delivery for Kubernetes Apps with Helm and ChartMuseum
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseum
 
Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...
 
From Raw to Cooked: In-Depth FME Desktop to FME Server Workflow
From Raw to Cooked: In-Depth FME Desktop to FME Server WorkflowFrom Raw to Cooked: In-Depth FME Desktop to FME Server Workflow
From Raw to Cooked: In-Depth FME Desktop to FME Server Workflow
 
How we Auto Scale applications based on CPU with Kubernetes at M6Web?
 How we Auto Scale applications based on CPU with Kubernetes at M6Web? How we Auto Scale applications based on CPU with Kubernetes at M6Web?
How we Auto Scale applications based on CPU with Kubernetes at M6Web?
 
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation NightKubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
 
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
 Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion... Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
 
A Few of My Favorite Things: The Magic that FME Brings to My Life
A Few of My Favorite Things:The Magic that FME Brings to My LifeA Few of My Favorite Things:The Magic that FME Brings to My Life
A Few of My Favorite Things: The Magic that FME Brings to My Life
 
Should developers care about dockerfiles and kubernetes resources
Should developers care about dockerfiles and kubernetes resourcesShould developers care about dockerfiles and kubernetes resources
Should developers care about dockerfiles and kubernetes resources
 
CNCF Rajkot group- Know the magic of kubernetes with AWS EKS
CNCF Rajkot group- Know the magic of kubernetes with AWS EKSCNCF Rajkot group- Know the magic of kubernetes with AWS EKS
CNCF Rajkot group- Know the magic of kubernetes with AWS EKS
 
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)
 
Kubeflow control plane
Kubeflow control planeKubeflow control plane
Kubeflow control plane
 
Autoscaling on Kubernetes
Autoscaling on KubernetesAutoscaling on Kubernetes
Autoscaling on Kubernetes
 
Optimizing Kubernetes deployments with Helm
Optimizing Kubernetes deployments with HelmOptimizing Kubernetes deployments with Helm
Optimizing Kubernetes deployments with Helm
 
Managing tfs
Managing tfsManaging tfs
Managing tfs
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_aws
 
Helm - Package manager in K8S
Helm - Package manager in K8SHelm - Package manager in K8S
Helm - Package manager in K8S
 
Kubernetes Operations (KOPS)
Kubernetes Operations (KOPS)Kubernetes Operations (KOPS)
Kubernetes Operations (KOPS)
 
Helm – The package manager for Kubernetes
Helm – The package manager for KubernetesHelm – The package manager for Kubernetes
Helm – The package manager for Kubernetes
 
Terraform Architech
Terraform ArchitechTerraform Architech
Terraform Architech
 

Similar to Kubernetes at Buffer - 2 Years In

Running Cloudbreak on Kubernetes
Running Cloudbreak on KubernetesRunning Cloudbreak on Kubernetes
Running Cloudbreak on KubernetesKrisztián Horváth
 
KubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to ProdKubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to ProdSubhas Dandapani
 
Getting Pulsar Spinning_Addison Higham
Getting Pulsar Spinning_Addison HighamGetting Pulsar Spinning_Addison Higham
Getting Pulsar Spinning_Addison HighamStreamNative
 
Micro services vs hadoop
Micro services vs hadoopMicro services vs hadoop
Micro services vs hadoopGergely Devenyi
 
Managing Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache AmbariManaging Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache AmbariJayush Luniya
 
Managing Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache AmbariManaging Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache AmbariHortonworks
 
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
[DW Webinar] Effective Management of APIs and the Edge when Adopting KubernetesDaniel Bryant
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioMichelle Holley
 
Manage Add-on Services in Apache Ambari
Manage Add-on Services in Apache AmbariManage Add-on Services in Apache Ambari
Manage Add-on Services in Apache AmbariJayush Luniya
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01Scott Miao
 
DevOps in Age of Kubernetes
DevOps in Age of KubernetesDevOps in Age of Kubernetes
DevOps in Age of KubernetesMesosphere Inc.
 
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...Data Con LA
 
Punith's Résumé Cover
Punith's Résumé CoverPunith's Résumé Cover
Punith's Résumé Coverpunith s
 
Kubernetes - Container Management PaaS Journey
Kubernetes - Container Management PaaS JourneyKubernetes - Container Management PaaS Journey
Kubernetes - Container Management PaaS JourneyUladzimir Palkhouski
 
DevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of KubernetesDevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of KubernetesDevOps.com
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comSalesforce Engineering
 

Similar to Kubernetes at Buffer - 2 Years In (20)

Running Cloudbreak on Kubernetes
Running Cloudbreak on KubernetesRunning Cloudbreak on Kubernetes
Running Cloudbreak on Kubernetes
 
Running Cloudbreak on Kubernetes
Running Cloudbreak on KubernetesRunning Cloudbreak on Kubernetes
Running Cloudbreak on Kubernetes
 
Apache Hadoop 3.0 What's new in YARN and MapReduce
Apache Hadoop 3.0 What's new in YARN and MapReduceApache Hadoop 3.0 What's new in YARN and MapReduce
Apache Hadoop 3.0 What's new in YARN and MapReduce
 
KubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to ProdKubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to Prod
 
Santhosh resume
Santhosh resumeSanthosh resume
Santhosh resume
 
Getting Pulsar Spinning_Addison Higham
Getting Pulsar Spinning_Addison HighamGetting Pulsar Spinning_Addison Higham
Getting Pulsar Spinning_Addison Higham
 
Micro services vs hadoop
Micro services vs hadoopMicro services vs hadoop
Micro services vs hadoop
 
Managing Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache AmbariManaging Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache Ambari
 
Managing Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache AmbariManaging Enterprise Hadoop Clusters with Apache Ambari
Managing Enterprise Hadoop Clusters with Apache Ambari
 
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
 
Manage Add-on Services in Apache Ambari
Manage Add-on Services in Apache AmbariManage Add-on Services in Apache Ambari
Manage Add-on Services in Apache Ambari
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01
 
Kash Kubernetified
Kash KubernetifiedKash Kubernetified
Kash Kubernetified
 
DevOps in Age of Kubernetes
DevOps in Age of KubernetesDevOps in Age of Kubernetes
DevOps in Age of Kubernetes
 
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
 
Punith's Résumé Cover
Punith's Résumé CoverPunith's Résumé Cover
Punith's Résumé Cover
 
Kubernetes - Container Management PaaS Journey
Kubernetes - Container Management PaaS JourneyKubernetes - Container Management PaaS Journey
Kubernetes - Container Management PaaS Journey
 
DevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of KubernetesDevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
 

Recently uploaded

Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Chirag Panchal
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConNatan Silnitsky
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmuxevmux96
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfkalichargn70th171
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdfSelfMade bd
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio, Inc.
 
From Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptxFrom Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptxNeo4j
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...Neo4j
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Conceptsthomashtkim
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfSrushith Repakula
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...OnePlan Solutions
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfkalichargn70th171
 

Recently uploaded (20)

Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmux
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
From Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptxFrom Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptx
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 

Kubernetes at Buffer - 2 Years In

  • 1. Kubernetes at Buffer 2 years in Dan Farrelly
  • 2. What we’ll cover - Why we chose Kubernetes - A timeline of our journey with Kubernetes so far - What’s next for us - Hopes & Dreams - Quick advice
  • 3. Who is this guy talking right now? - Dan Farrelly - Director of Engineering & Technical Lead @ Buffer - Leading our move from monolith to microservices since 2016 - @djfarrelly - dan@buffer.com
  • 5. Why Kubernetes - Moving from monolithic application to service oriented architecture - Great community & project velocity (v1.3 in July 2016) - Enable our Self-service DevOps/NoOps vision for our remote team - Increase Developer velocity - Reliability
  • 7. Baby steps - Mid 2016 - Kubernetes 1.3 Cluster via kube-up.sh - One massive shared private repo with all-the-yaml’s for collaboration & backup - Everyone had to have k8s credentials and access to this yaml repo - This was slow - We learned a lot
  • 8. First real attempt - Fall 2016 - Created and shared service yaml’s using massive repo still - kubectl patch -p ‘{ “spec”: ... }’ to automate deployments - Repo got out of date after deploys - Built a deploy service to handle Slackbot commands & trigger deploys pipeline on Jenkins - Accelerated development of services on k8s → Massive learning - Started developing our in-house best practices
  • 9.
  • 10. The Helm Era - 2017 - Helm 2 released in late 2016 - Charts in each service’s repo fixed issues w/ apply vs. patch and mono-repo - Extended our deploy service - Continuous deployment - On-demand per branch staging deployments using Helm & Ingress - New clusters managed via kops
  • 11. What our deploys look like
  • 12. Where we are now - Stats - 3 Clusters (v1.8.x main production & dev, v1.3 legacy, data jobs) - 140-160+ services running 700-800 pods on ~30 nodes - Focus on moving to Helm fully - Using Heptio’s Ark for backups - Deprecating our yaml-repo!
  • 13. Where we’re headed - Charts - Charts in services’ repos challenges: - Fragmentation, hard to keep best practices consistent, slow to roll out changes across many services - Creating our own company-standard, extensible charts (web service, worker, cron, etc.) w/ health check side-cars and other best practices baked in - Experimenting with Chartmuseum (Helm Chart Repository)
  • 14. Where we’re headed - Cluster - Adopting Istio to secure our service-to-service traffic - Increase adoption of request tracing w/ Jaeger - Moving to a single production/dev cluster (est. 50-60 nodes Fall ‘18) - Improving our strategy for disaster recovery using Heptio’s Ark
  • 15. Our long term Kubernetes outlook - Developers shouldn’t need cluster access to do their jobs - Developers configure via well documented Helm charts & values.yaml files - Enable initial deploys via tooling not manual cli initial deploys - Providing more visibility into services for developers: - Traces, Failed deploy & crash loop notifications, smarter monitoring
  • 16. Quick advice for those early in their k8s journey - Learn Vanilla k8s first...but then definitely use Helm, Istio, etc. - Pay attention to kube-dns - Monitoring & auto-scaling - Practice cluster upgrades early and do them often - Resource limits, resource limits, resource limits