SlideShare une entreprise Scribd logo
1  sur  48
ORCHESTRATION
WITH KUBERNETES
Kunal Kerkar
Software Engineer, Karix
@tsudot
1
ps://www.cncf.io/blog/2018/08/29/cncf-survey-use-of-cloud-native-technologies-in-production-has-grown-over-200-pe
CLOUD NATIVE
CNCF
‣ 200% increase since Dec ‘17
Kubernetes
‣40% (5000+) enterprises
2
‣Kubernetes Objects
‣Build Pipeline
‣Packaging
‣Deployment
‣Load Testing
‣Dev Productivity
‣Areas of Improvement
AGENDA
3
Kubernetes Cluster
Source: https://kubernetes.io/
4
Kubernetes Pods
Source: https://kubernetes.io/
5
Kubernetes Deployment
Source: https://kubernetes.io/
6
Kubernetes Service
Source: https://kubernetes.io/
7
BUILD PIPELINE
Source: https://justinklingler.com/
8
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline
9
Pipeline Features
1. Fast deployments
2. Debugging failures
3. Notifications
4. Immutable builds
10
Source code
1. Dockerfile
2. Makefile
3. Jenkinsfile
4. charts/
11
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline Progress…
12
Source code: Tungsten
13
Tungsten: Dockerfile
FROM gcr.io/karix/golang:1.9
ENV GOBIN /go/bin
COPY . /go/src/github.com/karixtech/tungsten/
WORKDIR /go/src/github.com/karixtech/tungsten/
RUN dep ensure
EXPOSE 8009
EXPOSE 8010
RUN make build
14
Tungsten: Makefile
.PHONY: build install test
build:
go build -o tungsten-server
install:
go install
test:
go test -v ./...
15
Tungsten: Jenkinsfile
1. Written in groovy
2. kubernetes-plugin
3. SemVer build trigger
16
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline Progress…
17
Tungsten: Jenkinsfile
node(label) {
container(‘jenkins-slave') {
stage("Fetch dependent images") {
sh("gcloud docker -- pull gcr.io/karix/golang:1.9-2")
}
}
}
18
Jenkinsfile: Build Image
stage("Build image") {
sh("docker build -f
Dockerfile -t ${imageTag} .”);
sh("docker build -f
postgres/Dockerfile .");
}
19
Jenkinsfile: Test Image
stage("Test image") {
result = sh (
script: "docker run --name ${appName}
--network ${appName}-n
/bin/bash -c "make test"",
returnStatus: true
)
}
20
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline Progress…
21
PACKAGING
Source: https://www.cartoonstock.com
22
Charts
tungsten
➜ charts git:(master) ✗ tree
.
└── tungsten
├── Chart.yaml
├── config
│ ├── prod_config.json
│ └── stage_config.json
├── templates
│ ├── configmap.yaml
│ ├── deployment.yaml
│ ├── hpa.yaml
│ └── service.yaml
└── values
├── prod_values.yaml
└── stage_values.yaml
4 directories, 9 files
23
Helm
1. Tiller (Server)
2. Helm client
> https://github.com/helm/
24
Charts: configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}
data:
config.json: |-
{{.Files.Get .Values.configFile |
printf "%s" | indent 4}}
25
Charts: deployment.yaml
kind: Deployment
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ["{{ .Values.image.command }}"]
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: {{ .Values.service.internalPort }}
volumeMounts:
- name: config-volume
mountPath: /var/config.json
subPath: config.json
livenessProbe:
httpGet:
path: /api/status/
port: {{ .Values.service.internalPort }}
readinessProbe:
httpGet:
path: /api/status/
port: {{ .Values.service.internalPort }}
resources:
{{ toYaml .Values.resources | indent 12 }}
volumes:
- name: config-volume
configMap:
name: {{ .Release.Name }}
26
Charts: service.yaml
apiVersion: v1
kind: Service
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
protocol: TCP
name: {{ .Values.service.name }}
selector:
app: {{ template "name" . }}
release: {{ .Release.Name }}
27
Charts: hpa.yaml
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
spec:
scaleTargetRef:
apiVersion: apps/v1beta1
kind: Deployment
name: {{ template "fullname" . }}
minReplicas: {{ .Values.hpa.minReplicas }}
maxReplicas: {{ .Values.hpa.maxReplicas }}
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.hpa.cpu.t
28
Charts: Packaging
‣ Generated from values
‣ Packaged into tgz
‣ Push to chart repository
(https://github.com/helm/chartmuseum)
29
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline Progress…
30
DEPLOYMENT
Source: http://simply-the-test.blogspot.com
31
Helm <command>
1. Update local repo cache
helm repo update
2. Install package
helm install -n tungsten stage/tungsten --version 2.13.0
3. Upgrade package
helm upgrade tungsten stage/tungsten --version 2.15.0
32
Helm upgrade
Source: https://kubernetes.io/
33
Helm upgrade
Source: https://kubernetes.io/
34
Helm upgrade
Source: https://kubernetes.io/
35
Helm upgrade
Source: https://kubernetes.io/
36
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline Progress…
37
Kubewatch
Source: https://kubernetes.io/
> https://github.com/bitnami-labs/kubewatch/
1. Project by bitnami
2. Publishes cluster events
38
LOAD TESTING
Source: http://geek-and-poke.com/
39
K6
> https://github.com/loadimpact/k6
k6 run -u 3 -i 10000 sms.js
40
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline Progress…
41
Finding out capacity
42
Developer
Github
Jenkins
Container
Registry
Chart
Repository
Production Deploy
Staging Deploy
Load Testing
Monitoring
Pipeline Progress…
43
DEVELOPER
PRODUCTIVITY
Source: http://xkcd.com
44
Developer upgrade
Source: https://kubernetes.io/
1. Quick Deployments
2. Control on cluster
3. Test Coverage
4. Boost Confidence
45
IMPROVEMENTS
Source: http://cartoonstock.com
46
Areas of Improvement
Source: https://kubernetes.io/
1. Gitkube
2. Operators
3. Secrets/Vault
47
Thank You
@tsudot
48

Contenu connexe

Tendances

Kubernetes: training micro-dragons for a serious battle
Kubernetes: training micro-dragons for a serious battleKubernetes: training micro-dragons for a serious battle
Kubernetes: training micro-dragons for a serious battleAmir Moghimi
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesChris Bailey
 
Microservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple wayMicroservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple waySuraj Deshmukh
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeMartin Schütte
 
Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014
Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014
Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014Yunong Xiao
 
Telepresence - Seamless Development Environments on Kubernetes
Telepresence - Seamless Development Environments on KubernetesTelepresence - Seamless Development Environments on Kubernetes
Telepresence - Seamless Development Environments on KubernetesAdnan Abdulhussein
 
Git, CMake, Conan - How to ship and reuse our C++ projects?
Git, CMake, Conan - How to ship and reuse our C++ projects?Git, CMake, Conan - How to ship and reuse our C++ projects?
Git, CMake, Conan - How to ship and reuse our C++ projects?Mateusz Pusz
 
Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIUilian Ries
 
Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Anton Babenko
 
Everything as Code with Terraform
Everything as Code with TerraformEverything as Code with Terraform
Everything as Code with TerraformAll Things Open
 
CI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und KubernetesCI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und Kubernetesinovex GmbH
 
用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化Shengyou Fan
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesChris Bailey
 
An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemLinaro
 
Terraform – Infrastructure as Code (Kielux'18)
Terraform – Infrastructure as Code (Kielux'18)Terraform – Infrastructure as Code (Kielux'18)
Terraform – Infrastructure as Code (Kielux'18)Martin Schütte
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰KAI CHU CHUNG
 

Tendances (19)

Kubernetes: training micro-dragons for a serious battle
Kubernetes: training micro-dragons for a serious battleKubernetes: training micro-dragons for a serious battle
Kubernetes: training micro-dragons for a serious battle
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 
Helm intro
Helm introHelm intro
Helm intro
 
Microservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple wayMicroservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple way
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as Code
 
Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014
Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014
Building Observable Applications w/ Node.js -- BayNode Meetup, March 2014
 
Telepresence - Seamless Development Environments on Kubernetes
Telepresence - Seamless Development Environments on KubernetesTelepresence - Seamless Development Environments on Kubernetes
Telepresence - Seamless Development Environments on Kubernetes
 
Git, CMake, Conan - How to ship and reuse our C++ projects?
Git, CMake, Conan - How to ship and reuse our C++ projects?Git, CMake, Conan - How to ship and reuse our C++ projects?
Git, CMake, Conan - How to ship and reuse our C++ projects?
 
Serving models using KFServing
Serving models using KFServingServing models using KFServing
Serving models using KFServing
 
Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CI
 
Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018
 
Everything as Code with Terraform
Everything as Code with TerraformEverything as Code with Terraform
Everything as Code with Terraform
 
CI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und KubernetesCI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und Kubernetes
 
用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift Microservices
 
An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating System
 
Terraform – Infrastructure as Code (Kielux'18)
Terraform – Infrastructure as Code (Kielux'18)Terraform – Infrastructure as Code (Kielux'18)
Terraform – Infrastructure as Code (Kielux'18)
 
Kubeflow repos
Kubeflow reposKubeflow repos
Kubeflow repos
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
 

Similaire à Orchestration with Kubernetes

Istio Playground
Istio PlaygroundIstio Playground
Istio PlaygroundQAware GmbH
 
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...Daniel Bryant
 
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...KubeAcademy
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesChris Bailey
 
Continuous Delivery to Kubernetes Using Helm
Continuous Delivery to Kubernetes Using HelmContinuous Delivery to Kubernetes Using Helm
Continuous Delivery to Kubernetes Using HelmAdnan Abdulhussein
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and FunQAware GmbH
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWSGrant Ellis
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWSGrant Ellis
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetesLiran Cohen
 
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADSKNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADSElad Hirsch
 
Kubernetes walkthrough
Kubernetes walkthroughKubernetes walkthrough
Kubernetes walkthroughSangwon Lee
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
The Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeThe Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeBen Hall
 
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019UA DevOps Conference
 
Deploying on Kubernetes - An intro
Deploying on Kubernetes - An introDeploying on Kubernetes - An intro
Deploying on Kubernetes - An introAndré Cruz
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerAndrew Phillips
 
What's new in Kubernetes
What's new in KubernetesWhat's new in Kubernetes
What's new in KubernetesDaniel Smith
 
DevOpSec_KubernetesOperatorUsingJava.pdf
DevOpSec_KubernetesOperatorUsingJava.pdfDevOpSec_KubernetesOperatorUsingJava.pdf
DevOpSec_KubernetesOperatorUsingJava.pdfkanedafromparis
 

Similaire à Orchestration with Kubernetes (20)

Istio Playground
Istio PlaygroundIstio Playground
Istio Playground
 
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
 
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
 
Continuous Delivery to Kubernetes Using Helm
Continuous Delivery to Kubernetes Using HelmContinuous Delivery to Kubernetes Using Helm
Continuous Delivery to Kubernetes Using Helm
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and Fun
 
Kubernetes 101 and Fun
Kubernetes 101 and FunKubernetes 101 and Fun
Kubernetes 101 and Fun
 
Kubernetes CI/CD with Helm
Kubernetes CI/CD with HelmKubernetes CI/CD with Helm
Kubernetes CI/CD with Helm
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetes
 
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADSKNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
 
Kubernetes walkthrough
Kubernetes walkthroughKubernetes walkthrough
Kubernetes walkthrough
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
The Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeThe Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud Native
 
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
 
Deploying on Kubernetes - An intro
Deploying on Kubernetes - An introDeploying on Kubernetes - An intro
Deploying on Kubernetes - An intro
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
 
What's new in Kubernetes
What's new in KubernetesWhat's new in Kubernetes
What's new in Kubernetes
 
DevOpSec_KubernetesOperatorUsingJava.pdf
DevOpSec_KubernetesOperatorUsingJava.pdfDevOpSec_KubernetesOperatorUsingJava.pdf
DevOpSec_KubernetesOperatorUsingJava.pdf
 

Dernier

data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdfSuman Jyoti
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfRagavanV2
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxJuliansyahHarahap1
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfrs7054576148
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfRagavanV2
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 

Dernier (20)

data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 

Orchestration with Kubernetes

Notes de l'éditeur

  1. CNCF survey - cloud native technologies - over 200% - December 2017 - 40% enterprises use k8s in production. Karix.io leverages k8s; send and receive messages over channels; Build and orchestrate; focus deployment pipeline; ensure staging production clusters replica; boost dev productivity - improve system reliability.
  2. K8s objects; build pipelines, packaging, deployment; throw light optimised CPU and memory by load testing; improved dev productivity - currently working on.
  3. State machine; set desired state - current state matches desired state; Nodes - VMs & bare metal; master controls each node; kubelet daemon - containers are running in pod
  4. Pod - basic building block; running process; never standalone pods - cannot have state; dont get rescheduled.
  5. Manage pods by Deployment; collection similar pods; maintain certain number pods
  6. Service - abstraction logical set of pods - policy to access them; Load balancers; expose external network - job of balancing traffic
  7. Build tech platform; integrate existing services - presence web mobile; Responsibility - enabling - developer tooling; goal - setup testing environment; running on VM; integration testing - staging VM ansible; Problem - one environment - QA/acceptance testing; big hurdle - major bottleneck - developer productivity; Realised - could not - single QA - meet deadlines; Goal clear - couldn’t timeshare; on demand; containers got drilled; Karix.io; decided to run containers; architecture - what microservices - independently scalable components; 2 engineers; thought process - developer time - building service - not managing infrastructure; super simple onboarding; Any product - start build pipeline; core unit - all software releases - revolve.
  8. This is build pipeline that we worked out for our platform karix.io. I will keep coming back to this slide as we progress through our pipeline stages.
  9. Time gap - release tag - run in production - optimized; build fails - debug the build; notified early on; container building - packaging - pushing notified; Build immutable - release gets tagged, new changes cannot be pushed - cluster in the state; Chose Jenkins - versatile tool; Jenkins Pipeline - DSL - modeling delivery pipeline; Code shipped instructions; turn concept dev-ops into reality; Service will be built - run test cases - find config - how to package; enables developers - part of their code.
  10. Golden rule - 3 files - folder charts.
  11. So behind the scenes our developer has pushed their code to github.
  12. Tungsten - golang; main layers - messaging architecture
  13. Dockerfile - generic; host base image - high security
  14. Makefile - compiling, building, test; standard targets - little change - build script;
  15. Jenkinsfile - groovy; calls standard Makefile - logic upload builds; runs on k8s - spawned pod using the jenkins slave base image; triggered - spawn slave Pod - run instructions - terminate job finishes; kubernetes-plugin; semantic versioning; patch staging; minor major production; release tag as version.
  16. At this point a release tag has been created and GitHub has notified Jenkins.
  17. Stages - Jenkinfile; split different stages - debug better; first stage fetch golang
  18. Build tungsten image; postgres image;
  19. test cases pass - push to registry
  20. So back to our pipeline progress, At this point image has been built and pushed to the the container repository.
  21. Builds - staging, production; charts folder - helm package; templates spew k8s objects
  22. templates - cm, dep, hpa, svc; config folder - config files; values - template values - env; specific to helm
  23. tiller; helm-client
  24. config files mounted; varies env; CM picks config file; location in values.yml; mounted through CM
  25. Deployment - config files; path to container image - command; readiness/liveness - exposed TCP/HTTP
  26. Service - route traffic; pod selector - route traffic to; external port - accept incoming traffic; target port
  27. HPA - auto scaling spec; top of deployment
  28. Generated from values.yml; helm package tar; tar pushed chart repository; chartmuseum
  29. At this point the deployment package has been created and pushed to the the chart repository.
  30. Believed deploying software - breeze; click button - single command; building packaging - get back shell. Jenkins notify built, packaged, pushed to chart repo. Deployment manual
  31. Pushing versioned chart - update local index; install command; helm fetches the tungsten chart ; deploys CM, SVC and deployment. Rolling updates/rollbacks benefits deploying containers; devops teams - zero downtime application upgrades; overview upgrade works
  32. tungsten pods; helm terminate signal - start booting new pod. Service incorporate - start sending traffic - readiness checks. Upgrade one by one
  33. tungsten pods; helm terminate signal - start booting new pod. Service incorporate - start sending traffic - readiness checks. Upgrade one by one
  34. tungsten pods; helm terminate signal - start booting new pod. Service incorporate - start sending traffic - readiness checks. Upgrade one by one
  35. tungsten pods; helm terminate signal - start booting new pod. Service incorporate - start sending traffic - readiness checks. Upgrade one by one
  36. At this point the package has been installed on our staging cluster and is ready for load testing.
  37. Deployments tracked; cannot be blind; kubewatch; bitnami - publishes notifications; changes upgrades deployments cluster.
  38. launched karix.io - New to k8s; k8s production; load test feasibility setup - determine resources - individual pods; business requirement to benchmark capacity; came up with average spend on infrastructure vs QPS.
  39. k6 - seamless integration with pipeline; prometheus
  40. At this point the load testing has happened.
  41. resource usages hit threshold - wrt - requests fired on component; trial and error; .5 CPU started benchmarking from there; came up with data no of requests wrt given resources
  42. And finally the package gets deployed on production with the right set of resources.
  43. deployment process established - improved dev productivity - efficient workflow
  44. Quick uniform deployments; feature - existing bug isolated, independent clusters; feature specific cluster - without affecting staging dev; Own environment - deploy builds; low resources - financially sustainable; replica - without compatibility; Test coverage 80% = no fault code; earlier bug the better; multiple envs - bugs reduce drastically; 2 engineers - hired first engineer; deploys to production - first week; Boost confidence - sense of achievement.
  45. k8s - rapidly developing - incorporate best practices - deploying orchestrating applications - different aspects; known technical debts - ship/release faster; improving and fixing pipeline - specific topics.
  46. Code changes - rigmarole; “my code is building” - high debugging cycles. Gitkube - runs git remote - push changes; has instructions; Operator - extend type of applications - need to maintain state; database/cache managed - didn’t want operational overhead - persistent storage; operators evolving - explore mechanism - staging/dev; Exploring integration with vault/k8s secrets - challenging part - app needs code changes
  47. Pulling code - restarting daemons; Ansible scripts; clusterssh - parallel ssh - deployment script; k8s - not one-stop solution; rethink your philosophy; onus of uptime scaling k8s master - desired state always maintained.