Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Kubecon: Continuously Delivering Microservices in Kubernetes
Sandeep Parikh
November 10, 2015
Technology
0
77
Kubecon: Continuously Delivering Microservices in Kubernetes
https://www.youtube.com/watch?v=Odg_g_F55gs
Sandeep Parikh
November 10, 2015
Tweet
Share
More Decks by Sandeep Parikh
See All by Sandeep Parikh
crcsmnky
1
1.2k
crcsmnky
0
54
crcsmnky
0
9
crcsmnky
0
23
crcsmnky
1
83
crcsmnky
0
200
crcsmnky
0
32
crcsmnky
1
31
crcsmnky
1
67
Other Decks in Technology
See All in Technology
ihcomega56
2
930
hagifoo
0
100
techharmony
0
190
yuzoiwasaki
0
170
sat
8
7.4k
ayatokura
1
190
line_developers
PRO
2
390
thehajime
0
120
shwars
0
110
satosiyonezawa
0
150
yasuakiomokawa
0
280
picardparis
4
2.5k
Featured
See All Featured
moore
125
21k
maggiecrowley
10
550
colly
188
14k
sachag
267
17k
myddelton
109
11k
philhawksworth
192
17k
kneath
220
15k
productmarketing
7
780
addyosmani
1346
200k
paulrobertlloyd
71
3.7k
zenorocha
297
40k
tenderlove
55
3.5k
Transcript
Continuous Delivery in Kubernetes Sandeep Parikh @crcsmnky Solutions Architect Google
Cloud Platform
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
Continuous Integration Test Code Commit Push Test Build The ideal
development flow
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
Continuous Delivery Test Build Deploy Testing Staging
Continuous Deployment Deploy Approve Deliver Profit
Why Continuous? Fail fast I broke the build! Blame fast
Who broke the build? Deliver faster Better software in customers hands!
Tools
Jenkins
Kubernetes Cluster (GKE) Kubernetes Cluster Node 1 Node 3 Node
2
Kubernetes Cluster (GKE) Jenkins Leader Node 1 Node 3 Node
2 Jenkins Leader
Kubernetes Cluster (GKE) Jenkins Service Node 1 Node 3 Node
2 Jenkins Leader Jenkins Service
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
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
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
Microservices
None
Kubernetes Cluster (GKE) Microservices Node 2 Node 1 Backend Frontend
Frontend Backend Service Frontend Frontend Service Backend Backend
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.
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
Workflow
Kubernetes Workflow Create Push Package Expose
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
Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default
Staging Production
Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default
Staging Production 1 Push 1
Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default
Staging Production 1 2 Push Build 1 2
Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default
Staging Production 1 2 3 Push Build Clone 1 2 3
Workflow Repo Kubernetes Cluster (GKE) Github Jenkins µservice µservice Default
Staging Production 1 2 3 4 Push Build Clone Stage 1 2 3 4
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
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
Demo Come find me after the talk and I promise
I’ll run it live :)
Shout Out Give Evan Brown (@evanbrown) a high-five next time
you see him. He’s super smart and got this whole thing working.
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