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

Kubecon: Continuously Delivering Microservices in Kubernetes

Kubecon: Continuously Delivering Microservices in Kubernetes

Sandeep Parikh

November 10, 2015
Tweet

More Decks by Sandeep Parikh

Other Decks in Technology

Transcript

  1. Why Is This Important Bulletproof process to go from code

    to production Centralized, repeatable building/tagging/pushing Iterate quickly and reliably Hands off my kubectl
  2. Continuous Integration Test Code Commit Push Test Build The ideal

    development flow Test D’oh! Code Commit Push Test Crap! Build Whoops! The real development flow
  3. Why Continuous? Fail fast I broke the build! Blame fast

    Who broke the build? Deliver faster Better software in customers hands!
  4. Kubernetes Cluster (GKE) Jenkins Builder Node 1 Node 3 Node

    2 Jenkins Leader Jenkins Builder Jenkins Builder Jenkins Builder Jenkins Builder Jenkins Service Jenkins Builder
  5. Kubernetes Cluster (GKE) Jenkins Proxy Node 1 Node 3 Node

    2 Jenkins Leader Jenkins Builder Jenkins Builder Jenkins Builder Jenkins Builder Jenkins Service Jenkins Builder nginx
  6. Kubernetes Cluster (GKE) Jenkins Proxy Service Node 1 Node 3

    Node 2 Jenkins Leader Jenkins Builder Jenkins Builder Jenkins Builder Jenkins Builder Jenkins Service Jenkins Builder nginx nginx Service
  7. Kubernetes Cluster (GKE) Microservices Node 2 Node 1 Backend Frontend

    Frontend Backend Service Frontend Frontend Service Backend Backend
  8. Microservices & Namespaces Virtual clusters backed by the same physical

    cluster Divide cluster resources by different use cases Supports quotas for managing resources Test, Staging, Production, etc.
  9. Pods Time Microservices & Rolling Update Replace Replication Controller A

    with Replication Controller B by updating one Pod at a time. A B A B A B A B A B A B
  10. Mapping To Jenkins Workflow plugin, Freestyle doesn’t fit Define a

    flexible, extensible, script-based CD pipeline Groovy for scripting actions Supports human input/approval
  11. Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default

    Staging Production 1 2 3 4 Push Build Clone Stage 1 2 3 4
  12. Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default

    Staging Production 1 2 3 5 4 Push Build Clone Stage Approve 1 2 3 4 5
  13. Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default

    Staging Production 1 2 3 5 4 Push Build Clone Stage Approve Deploy 1 2 3 4 5 6 6
  14. Shout Out Give Evan Brown (@evanbrown) a high-five next time

    you see him. He’s super smart and got this whole thing working.
  15. Questions, Comments @crcsmnky Repo https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes Docs Automated Image Builds with

    Jenkins, Packer, and Kubernetes Distributed Load Testing using Kubernetes Real-time data analysis with Kubernetes, Google Cloud Pub/Sub, and BigQuery Real-time data analysis with Kubernetes, Redis, and BigQuery Resources