Slide 1

Slide 1 text

Containerize Your Enterprise DevOpsDays Austin 2015 Zach Jordan, Account Manager Sandeep Parikh, Solutions Architect

Slide 2

Slide 2 text

www.starwars.com/may-the-4th

Slide 3

Slide 3 text

We work with developers and business to help them adopt Google Cloud We build architectural solutions and patterns demonstrating how to use Google’s cloud What We Do At Google

Slide 4

Slide 4 text

What We Actually Do At Google

Slide 5

Slide 5 text

What Does DevOps Do? “It worked on my machine!” DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support. Infrastructure and environments need to be repeatedly provisioned, orchestrated, and configured, but every environment is different.

Slide 6

Slide 6 text

You are the keepers of “state”

Slide 7

Slide 7 text

Containers, Containers, Containers!

Slide 8

Slide 8 text

From VMs to Containers

Slide 9

Slide 9 text

Google has been developing and using containers to manage our applications for over 10 years. Images by Connie Zhou

Slide 10

Slide 10 text

Why containers? • Performance • Repeatability • Isolation • Quality of service • Accounting • Visibility • Portability A fundamentally different way of managing applications Images by Connie Zhou

Slide 11

Slide 11 text

Everything at Google runs in containers: • Gmail, Web Search, Maps, ... • MapReduce, batch, ... • GFS, Colossus, ... • Even GCE itself: VMs in containers

Slide 12

Slide 12 text

• Gmail, Web Search, Maps, ... • MapReduce, batch, ... • GFS, Colossus, ... • Even GCE itself: VMs in containers We launch over 2 billion containers per week. Everything at Google runs in containers:

Slide 13

Slide 13 text

Google is betting big on containers as the future of cloud computing workloads We want to let everyone run applications and infrastructure the same way we do

Slide 14

Slide 14 text

Welcome to Kubernetes Run and manage a cluster of containers as a single system Orchestrate Docker containers by scheduling on to cluster nodes Ensure state and group into units for management and discovery Manage applications, not machines kubernetes.io

Slide 15

Slide 15 text

Kubernetes is... Fully open source and actively developed in the open Driven by partners, big and small, along with Google Available to be deployed everywhere, public and private kubernetes.io

Slide 16

Slide 16 text

Democratizing Deployments Kubernetes runs on many, many platforms Hybrid architectures use the same containers everywhere Public Cloud Kubernetes Private Cloud Kubernetes Bare Metal Kubernetes

Slide 17

Slide 17 text

https://github.com/GoogleCloudPlatform/kubernetes/tree/master/docs/getting-started-guides

Slide 18

Slide 18 text

Concepts Clusters Pods Controllers Services Labels Compute resources that run Kubernetes Master and Nodes Starting point for Kubernetes deployments Colocated containers with shared volumes Destination for tightly coupled components Smallest deployable unit Manage Pod lifecycle Replication ensures N Pods are always running Useful for web frontends or multiple workers Single, stable name, and address for Pods Provide proxy load- balanced connectivity to ephemeral Pods Organize and select groups of objects based on key-value pairs

Slide 19

Slide 19 text

Node Kubernetes Cluster Master etcd Scheduler API Server Manager ... kubelet Proxy Docker Node kubelet Proxy Docker Docker Pod Container Pod Container “zoom in and enhance”

Slide 20

Slide 20 text

Pods • Group of containers and volumes • Tightly coupled • Smallest unit of scheduling/placement in Kubernetes • Shared namespace • Share IP address and localhost • Share IPC • Ephemeral • Pods can die, they don’t come back • Need more? Replicate! Services • A group of Pods that work together • Defines Pod access policy • Provides a stable virtual IP and port • And a DNS name too • Virtual IP handled by Proxy • Watches and updates based on Pod lifecycle • Hides the networking complexity

Slide 21

Slide 21 text

Networking Pod IPs are routable Pods can reach each other without NAT, even across Nodes No complex brokering of port numbers

Slide 22

Slide 22 text

Kubernetes Networking Master Node Node Node Load Balancer Incoming requests for service:port

Slide 23

Slide 23 text

Setting Up a Cluster 1. Choose the infrastructure: GCE, AWS, Azure, Rackspace, on-premise 2. Choose the node OS: CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu 3. Provision machines: Boot VMs, install and run kube components 4. Configure networking: IP ranges for Pods, Services, SDN 5. Start cluster services: DNS, logging, monitoring 6. Manage nodes: kernel upgrades, OS updates, hardware failures Not the most fun but unavoidable to get a cluster up and running.

Slide 24

Slide 24 text

Google Container Engine Hosted Kubernetes with managed resources Run clusters on a bundle of Google Compute Engine resources: Instances, Disks, Networking, Load Balancer Built-in support for centralized logging and container health checking Private container registry to store and access your images at gcr.io

Slide 25

Slide 25 text

Using Kubernetes • Run Pods & Containers • Replication controllers • Services • Volumes • Secrets • A distinct set of problems from cluster setup and management • Accelerate development by focusing on the applications, not the cluster • Ops ensures processes for development, test, staging, production

Slide 26

Slide 26 text

Availability

Slide 27

Slide 27 text

What Else Is Coming? Network plugins Secrets Graceful termination Quota More volumes Downward API More platforms Performance Scalability High availability masters Scheduling Cluster federation Multi-cloud Easier setup

Slide 28

Slide 28 text

Move away from using tools to provision, orchestrate, configure environments Create Docker image build and test pipelines Leverage tools like Packer to create “golden images” The same containers can be used in development, test, staging, production The same deployment tools can be used regardless of infrastructure How Does Kubernetes Impact DevOps?

Slide 29

Slide 29 text

More and more examples with different patterns and components More documentation (always!) More in-depth and expanded tutorials and articles Complex, hybrid deployment examples How Can We Help?

Slide 30

Slide 30 text

What’s faster, booting 160 containers on GKE or making a latte?

Slide 31

Slide 31 text

Kubernetes kubernetes.io github.com/GoogleCloudPlatform/kubernetes Google Container Engine cloud.google.com/container-engine cloud.google.com/container-engine/docs/hello-wordpress cloud.google.com/container-engine/docs/guestbook Getting Started

Slide 32

Slide 32 text

Zach Jordan zachjordan@google.com Sandeep Parikh parikhs@google.com Contact Us