why kubernetes matters

48
Kubernetes & Containers A New Era for DevOps Sirish Raghuram, Co-founder, CEO

Upload: platform9

Post on 14-Apr-2017

647 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Why kubernetes matters

Kubernetes & ContainersA New Era for DevOps

Sirish Raghuram,Co-founder, CEO

Page 2: Why kubernetes matters

About UsLauren Delgado, VP Marketing• Leads marketing and education at Platform9• Open-source at Platform9, DataTorrent and

HortonWorks• Before: Developer marketing at Microsoft

Sirish Raghuram, Co-founder, CEO• Vision of Open-source-as-a-Service• Believes Kubernetes represents a fundamental

breakthrough• Before: early engineer at VMware

Page 3: Why kubernetes matters

Context: Kubernetes & Containers•Massive interest in Containers today•Many good technology choices•We’re focussing on Containers & Kubernetes• Why is Kubernetes strategic?• How do Containers & Kubernetes help DevOps?

Page 4: Why kubernetes matters

#1: Write Once, Run Anywhere(Any Cloud)

Page 5: Why kubernetes matters

How does one build for hybrid?#1: Write Once, Run Anywhere (Any Cloud)

Page 6: Why kubernetes matters

#1: Write Once, Run Anywhere (Any Cloud)•Applications and DevOps tooling “couple” to infrastructure:• Performance dependencies• Network architecture, routing, load-balancing

• Cloud provider specific constructs• AWS Auto-scaling or Cloud-formations

• Storage services• EBS, RDS

Page 7: Why kubernetes matters

#1: Write Once, Run Anywhere (Any Cloud)•Infrastructure coupling is a long term competitive disadvantage• Economic reasons• Strategic. Examples:• On-premises companies going to SaaS• SaaS companies needing to sell on-premises• Hosting in a specific geo/region/MSP

Page 8: Why kubernetes matters

#1: Write Once, Run Anywhere (Any Cloud)•Kubernetes eliminates infrastructure lock-in• Uses containers• Run well everywhere

• Provides management capabilities for containers• Infrastructure-agnostic• Application independent• Supports most modern DevOps scenarios

Page 9: Why kubernetes matters

#1: Write Once, Run Anywhere (Any Cloud)

KubernetesClusters

Nodes + Networking

Resource Pools

Cloud Providers

Bare OS Bare metalBare OS

Applications

Page 10: Why kubernetes matters

#2: Modular App Design w/ Containers

Page 11: Why kubernetes matters

#2: Modular App Design w/ Containers•Monolithic applications make everything worse• Larger teams slow things down• Spaghetti dependencies• Lack of ownership for shared components• Path complexity to testing• Slower builds

Page 12: Why kubernetes matters

#2: Modular App Design w/ Containers•OOP vs procedural languages: much more modular• Notion of “class”: public, private (contracts)• Separation of concerns• Extensibility and reusability• More modular code

Page 13: Why kubernetes matters

#2: Modular App Design w/ Containers•Does the Container image boundary feel similar to the class boundary?• Yes, but…• My app requires many different collaborating

processes• We need a system - a harness - that enables modular

apps using Containers

Page 14: Why kubernetes matters

#2: Modular App Design w/ Containers•How could we use a collection of Containers?• Let’s assume an App can be broken into n distinct

“Services”• Each Service may need a collection of Containers to

get work done

Page 15: Why kubernetes matters

#2: Modular App Design w/ Containers•Kubernetes makes it easy to leverage Containers to modularize Apps• Apps —> Service*

An application is composed of many Services• Service —> Pod (label)*

A Service exposes some functionality and is supported by a collection of workers called Pods

• Pod —> Container*A Pod is a co-located set of Containers, sharing compute, storage and network resources

Page 16: Why kubernetes matters

#2: Modular App Design w/ Containers

Page 17: Why kubernetes matters

#2: Modular App Design w/ Containers•Modularity can grow over time• Services can represent Kubernetes native or external

functionality• Pods can evolve to be modular• Sidecar containers

Extend a main container. E.g. event publishers• Ambassador containers

Proxy to external systems. E.g. data loaders• Adapter containers

Enable data normalization. E.g. schema mapping

Page 18: Why kubernetes matters

#2: Modular App Design w/ Containers•Modularity can grow over time• Start with monolithic applications• End up with micro-services• Kubernetes helps modularize, at every stage

Page 19: Why kubernetes matters

#3: Fault-tolerant by Design

Page 20: Why kubernetes matters

#3: Fault-tolerant by Design•Design for failure takes a lot of integration• Infrastructure provisioning and re-provisioning• Configuring networking and load balancers• Redundancy (scale-out)• Lifecycle management• Software update?

Page 21: Why kubernetes matters

#3: Fault-tolerant by Design•Kubernetes native Services are automatically fault-tolerant• Accessed via “virtual-IP” and ports• Visible inside cluster or publicly

• Automatically replicated onto many ephemeral workers (Pods)

• Automatically load-balanced, out-of-the-box• Kubernetes built-in or cloud-provider provided

• Discoverable via DNS

Page 22: Why kubernetes matters

#3: Fault-tolerant by Design•Kubernetes drives current state towards desired state• Desired state is what is declared• e.g. # replicas=3

• Observed state may differ over time• e.g. a replica became unreachable

• Kubernetes will find the diff and converge• Fault tolerance therefore based on desired state

Page 23: Why kubernetes matters

#3: Fault-tolerant by Designreplicas = 2

Page 24: Why kubernetes matters

#3: Fault-tolerant by Designreplicas = 3

Page 25: Why kubernetes matters

#4: Deployment Control, not just Infrastructure Management

Page 26: Why kubernetes matters

#4: Deployment, not Infrastructure•Software deployment is hard • Amplifies sins in design, testing, implementation,

infrastructure, version management, schema upgrades

• Operations teams have infrastructure management tools

• Deployment requires using ad-hoc scripting and automation

• Why is the hardest part of Ops being done ad-hoc?

Page 27: Why kubernetes matters

#4: Deployment, not Infrastructure•Kubernetes has native support for Deployment• Controllers are in focus, not infrastructure• Infrastructure is orchestrated behind the scenes

• Deployment controller:• Deploys a scale-out Kubernetes Service• Answers queries for deployment status• Updates deployed Pods using new versions of Container

images• Rolls back to a previous version• Pauses and resumes a deployment

Page 28: Why kubernetes matters

#4: Deployment, not Infrastructure•Deployments provide even more goodness• Horizontal auto-scaling

Dynamically scale-out Services based on compute / memory usage, within limits

• Rolling updatesSequence update of scale-out Services while meeting spare / worker downtime limits

• Canary deploymentsDeploy a new version of software side by side with previous version, route traffic progressively

Page 29: Why kubernetes matters

#4: Deployment, not InfrastructureRolling Update

Page 30: Why kubernetes matters

#4: Deployment, not InfrastructureRolling Update

Page 31: Why kubernetes matters

#4: Deployment, not InfrastructureRolling Update

Page 32: Why kubernetes matters

#4: Deployment, not InfrastructureRolling Update

Page 33: Why kubernetes matters

#4: Deployment, not InfrastructureRolling Update

Page 34: Why kubernetes matters

#4: Deployment, not InfrastructureRolling Update

Page 35: Why kubernetes matters

#4: Deployment, not InfrastructureRolling Update

Page 36: Why kubernetes matters

#5: Container Integrations for Production

Page 37: Why kubernetes matters

#5: Container Integrations for Production•Kubernetes provides many integrations to run Containers in production• Distributing secrets without environment variables or

storing them in images• Resource QoS for Containers• Liveness and readiness probes• Termination message and pre-termination hook

Page 38: Why kubernetes matters

FAQ: Why Not PaaS?•Kubernetes preserves more user choice• Any application, framework or language• Any middleware• Choice of source-to-image workflow• Choice of logging, monitoring and alerting systems

Page 39: Why kubernetes matters

In Summary

Page 40: Why kubernetes matters

Kubernetes: New Era for DevOps•Kubernetes represents a breakthrough for DevOps• Integrate applications and operations by design • Write once, run anywhere• Modular applications w/ containers• Fault-tolerant by design• Control deployments, not just infrastructure• Integrate containers for production

Page 41: Why kubernetes matters

Platform9 Overview

Page 42: Why kubernetes matters

About Platform9

Coolest Cloud Startup of 2015

MIT CIO Sloan FinalistTop 10 Virtualization Startup

• Founded in 2013 by early VMware engineers•Global traction since 2015•Deliver open-source as SaaS, making cloud infrastructure easy•Managed OpenStack. Managed Kubernetes. In Production Globally

Page 43: Why kubernetes matters

Platform9 Managed Kubernetes• “SaaS Managed” SLA• Fully automated deployment• 24/7 pro-active health

monitoring and alerting• Zero-touch upgrades

•Enterprise Ready• SSO, RBAC, multi-tenancy and

security/isolation• Out of box integration with any

storage and networking infra•Multi-cloud• Run anywhere: Bare-metal,

AWS, GCE, Azure• Quotas and isolation for tenants

across clouds • Define once - deploy anywhere

Page 44: Why kubernetes matters

Platform9 Managed Kubernetes

Page 45: Why kubernetes matters

Platform9 Managed Kubernetes

Page 46: Why kubernetes matters

Platform9 Managed Kubernetes

Page 47: Why kubernetes matters

Get In Touch•Let us help you build your first Kubernetes Service• https://platform9.com/contact/• Reference: “Kubernetes webinar”

•Visit our blog• https://platform9.com/blog/• Compare Kubernetes vs Amazon ECS, Docker Swarm and Mesos

•Follow us on Twitter•@Platform9Sys•Watch for:•Kubernetes Comparison eBook•Why Kubernetes? whitepaper

Page 48: Why kubernetes matters