Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOpsDays 2015: Containerize Your Enterprise

DevOpsDays 2015: Containerize Your Enterprise

DevOpsDays Austin 2015: Containerize Your Enterprise

Sandeep Parikh

May 04, 2015
Tweet

More Decks by Sandeep Parikh

Other Decks in Technology

Transcript

  1. 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
  2. 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.
  3. Google has been developing and using containers to manage our

    applications for over 10 years. Images by Connie Zhou
  4. Why containers? • Performance • Repeatability • Isolation • Quality

    of service • Accounting • Visibility • Portability A fundamentally different way of managing applications Images by Connie Zhou
  5. Everything at Google runs in containers: • Gmail, Web Search,

    Maps, ... • MapReduce, batch, ... • GFS, Colossus, ... • Even GCE itself: VMs in containers
  6. • 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:
  7. 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
  8. 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
  9. 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
  10. Democratizing Deployments Kubernetes runs on many, many platforms Hybrid architectures

    use the same containers everywhere Public Cloud Kubernetes Private Cloud Kubernetes Bare Metal Kubernetes
  11. 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
  12. 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”
  13. 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
  14. Networking Pod IPs are routable Pods can reach each other

    without NAT, even across Nodes No complex brokering of port numbers
  15. 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.
  16. 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
  17. 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
  18. 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
  19. 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?
  20. 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?