why kubernetes matters

Post on 14-Apr-2017

648 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Kubernetes & ContainersA New Era for DevOps

Sirish Raghuram,Co-founder, CEO

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

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?

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

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

#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

#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

#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

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

KubernetesClusters

Nodes + Networking

Resource Pools

Cloud Providers

Bare OS Bare metalBare OS

Applications

#2: Modular App Design w/ Containers

#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

#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

#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

#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

#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

#2: Modular App Design w/ Containers

#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

#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

#3: Fault-tolerant by Design

#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?

#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

#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

#3: Fault-tolerant by Designreplicas = 2

#3: Fault-tolerant by Designreplicas = 3

#4: Deployment Control, not just Infrastructure Management

#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?

#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

#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

#4: Deployment, not InfrastructureRolling Update

#4: Deployment, not InfrastructureRolling Update

#4: Deployment, not InfrastructureRolling Update

#4: Deployment, not InfrastructureRolling Update

#4: Deployment, not InfrastructureRolling Update

#4: Deployment, not InfrastructureRolling Update

#4: Deployment, not InfrastructureRolling Update

#5: Container Integrations for Production

#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

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

In Summary

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

Platform9 Overview

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

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

Platform9 Managed Kubernetes

Platform9 Managed Kubernetes

Platform9 Managed Kubernetes

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

top related