32
digitalocean.co m Betting on Kubernetes: DigitalOcean’s journey from adoption to production Joonas Bergius @joonas

Tectonic Summit 2016: Betting on Kubernetes

  • Upload
    coreos

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Betting on Kubernetes:DigitalOcean’s journey from adoption to production

Joonas Bergius@joonas

Page 2: Tectonic Summit 2016: Betting on Kubernetes
Page 3: Tectonic Summit 2016: Betting on Kubernetes

Where we started

digitalocean.com

Page 4: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Page 5: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

DeploymentProliferation of deployment tooling lead to inconsistent deployment capabilities from service to serviceSoftware deployment via configuration management took hours and was quite unreliableWriting the code to deploy new services could take up to as long as writing the software itself in the worst case“Total Ownership” model meant that every team needed to be experts in configuration management as well

Page 6: Tectonic Summit 2016: Betting on Kubernetes

Orchestration focused on servers rather than servicesMismatch how software was run at various stages of the lifecycle from developer laptops to production serversDependencies became increasingly intertwined making software upgrades difficult at best, near impossible at worstLack of consistent observability across services lead engineers needing direct access to the servers

digitalocean.com

Operability

Page 7: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Droplets launched

Page 8: Tectonic Summit 2016: Betting on Kubernetes

Ability to experiment with new features and services in matter of hours, not in days or weeksImproving visibility into the impact a given feature or service has on the wholeEmpower teams to deliver their work from end-to-end independent of other teamsCapability to quickly scale our services to be able to meet the ever-increasing customer demand digitalocean.com

Business needs

Page 9: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Coming up with a solution

Page 10: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Candidates

Page 11: Tectonic Summit 2016: Betting on Kubernetes

API-driven for automationCommunity engagementEase of operabilityFirst-class container supportFeature-compatibility with our existing toolingProduction-grade

digitalocean.com

Evaluation criteria

Page 12: Tectonic Summit 2016: Betting on Kubernetes

Built from the ground up to be API-firstExtremely engaged community and unparalleled

teamQuite involved to deploy and manage, but built with

GoBuilt on 10 years experience running containers at

GoogleRich feature set that surpassed our existing toolingReady for prime time

digitalocean.com

How Kubernetes stacked up

Page 13: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Page 14: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Refining our solution

Page 15: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Page 16: Tectonic Summit 2016: Betting on Kubernetes

Curate subset of Kubernetes features: Smaller feature set makes for a simplified user experience.

Focus on stateless services: Self-healing, automated remediation of service disruptions.

Declarative deployments: Each deploy is separate and immutable.

Abstract operational plumbing: Plugin to existing alerting, logging & metrics infrastructure.

digitalocean.com

Guiding principles

Page 17: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

docc: a tool for deploying containerized, stateless applications

Page 18: Tectonic Summit 2016: Betting on Kubernetes

Enables users to describe their application: number of instances, ports to expose, environment variables to pass in, resource usage, etc.

Provides a way to configure the infrastructure plumbing: How to collect metrics, what and where to alert on, how the service should be made available to the outside.

Drives accountability and provides insight by requiring each

service to have a maintainer listed.digitalocean.com

docc requires a manifest

Page 19: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Tectonic Summit application

Page 20: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Kubernetes resources

Deployment ReplicaSetPodPodPod

Page 21: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Exposing a Service

Page 22: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Kubernetes resources:Exposing a Service

Deployment ReplicaSetPodPodPod

Servicetectonic-summit:8080

Endpoint

Page 23: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Page 24: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Kubernetes resources:Ingress connectivity

Deployment ReplicaSetPodPodPod

Servicetectonic-summit:8080

Endpoint

Ingresstectonic-summit-2016

Page 25: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

kube-apiserverkube-apiserverkube-

apiserver

controllers

doccserver

ingress

docc

kubectl

kubelet

Page 26: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

Reflecting on the past 12 months

Page 27: Tectonic Summit 2016: Betting on Kubernetes

50 applications deployed to production in past 6 months

Reduced time-to-deploy from days and weeks to hours

Service coverage across all of our datacentersPowered 2-day internal hackathon:

a. 154 docc deploys during that timeb. 16 new applications on docc digitalocean.com

Accomplishments so far

Page 28: Tectonic Summit 2016: Betting on Kubernetes

Kubernetes moves really fast, find ways to keep upGet involved in the community earlyInvest heavily into automation for managing clustersBring in the professionals early to kickstart your

journeyBuild on top of Kubernetes to make it your own, it was made for thatThis is great company to be in

digitalocean.com

Lessons learned

Page 29: Tectonic Summit 2016: Betting on Kubernetes

Service mesh using linkerdNetwork Policies using CalicoSecure secret storage using HashiCorp Vault

digitalocean.com

Investing in the future

Page 30: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.com

– Tommy Murphy

“Reduce developer decision fatigue so they can make decisions that matter.”

Page 31: Tectonic Summit 2016: Betting on Kubernetes

digitalocean.comFatih Sneha Dan

Mac Tommy

Team

Page 32: Tectonic Summit 2016: Betting on Kubernetes

Thank you!