SlideShare uma empresa Scribd logo
1 de 22
Kubernetes CI/CD with Helm:
Checking in your deployment configuration as code
Adnan Abdulhussein - @prydonius
Software Engineer, Bitnami
Agenda
Benefits of configuration/infrastructure as code
Managing Kubernetes deployments
Introduction to Helm
Demo CI/CD pipeline with Helm
Configuration and Infrastructure
as Code
Host Management CI/CD InfrastructurePackaging
Configuration and Infrastructure
as Code
Why?
Version Control
Consistent
Reproducible
Rollbacks
Auditing
Tools
Source Code
Management
CI/CD Platform Deployment Tool
Orchestration
Platform
Kubernetes Resource Definitions
MariaDB
Service
resource
Database tier
Secret
resource
Deployment
resource
Application
Service
resource
Backend tier
Config Map
resource
Deployment
resource
Nginx
Service
resource
Frontend tier
Deployment
resource
Example: Kubernetes Resource
apiVersion: v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: prydonius/node-todo:v1.0.0
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 120
timeoutSeconds: 5
Example: Deploying to Kubernetes
$ kubectl apply -f ./mariadb-secret.yaml
secret "mariadb" configured
$ kubectl apply -f ./mariadb-deployment.yaml
deployment "mariadb" configured
$ kubectl apply -f ./mariadb-service.yaml
service "mariadb" configured
$ kubectl apply -f ./application-configmap.yaml
configmap "application" configured
$ kubectl apply -f ./application-deployment.yaml
deployment "application" configured
$ kubectl apply -f ./application-service.yaml
service "application" configured
$ kubectl apply -f ./nginx-deployment.yaml
deployment "nginx" configured
$ kubectl apply -f ./nginx-service.yaml
service "nginx" configured
Managing raw
manifests can be
difficult
No template parameterization
No application lifecycle hooks
No history of releases
Tool for managing
resources as a
single unit
Reuse resources
Logically group app resources
Manage app lifecycles
Charts
(packages)
Application definitions
Consist of
Metadata (Chart.yaml)
Kubernetes templates
Configuration file (values.yaml)
Documentation
Can depend on other charts
Navigating a Chart
MariaDB
Service
resource
Database tier
Secret
resource
Deployment
resource
Application
Service
resource
Backend tier
Config Map
resource
Deployment
resource
Nginx
Service
resource
Frontend tier
Deployment
resourceDocumentation
Metadata
Config File
helm install my-app
myapp
├── Chart.yaml
├── README.md
├── charts
│ └── mariadb-0.5.8.tgz
├── templates
│ ├── deployment.yaml
│ └── ...
└── values.yaml
Navigating a Chart
Public charts repository
CLI tool
Takes a local Chart path
Set parameters used in Chart templates
Release state stored in cluster
How the Helm can I setup CD?
Generic CI/CD pipeline
Code/config change
Build
Test
Publish artifacts
Staging/QA Deployment
Production Deployment
Manual verification
Demo: CI/CD Pipeline
Code/config change
Build
Test
Push Docker image
Staging/QA Deployment
Production Deployment
Manual verification
Demo: Todo List App
Application Code
Dockerfile
Jenkinsfile
Helm Chart
prydonius/node-todo
Amazing Todo App
● Express.js server
● Angular frontend
● MongoDB database
Demo
Helm + Jenkins vs. Spinnaker
Helm and Jenkins
+ config as code, single source of truth
+ multi-branch support (including pull requests)
+ rich source of plugins
+ single platform for CI and CD
Spinnaker
- more deployment strategies
Helm Community
Over 100 contributors
1.5 years old
Slack channel: Kubernetes/#Helm
Public dev meetings: Thursdays @ 9:30 pacific
Weekly updates & demos at SIG-Apps meetings: Mondays @ 9am pacific
Join
us!
Thank youTime for questions and (hopefully) answers...

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Introduction to Helm
Introduction to HelmIntroduction to Helm
Introduction to Helm
 
Helm.pptx
Helm.pptxHelm.pptx
Helm.pptx
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Helm intro
Helm introHelm intro
Helm intro
 
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
 Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion... Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
 
Helm 3
Helm 3Helm 3
Helm 3
 
[GitOps] Argo CD on GKE (v0.9.2).pdf
[GitOps] Argo CD on GKE (v0.9.2).pdf[GitOps] Argo CD on GKE (v0.9.2).pdf
[GitOps] Argo CD on GKE (v0.9.2).pdf
 
What Is Helm
 What Is Helm What Is Helm
What Is Helm
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Terraform
TerraformTerraform
Terraform
 
Kubernetes Deployment Strategies
Kubernetes Deployment StrategiesKubernetes Deployment Strategies
Kubernetes Deployment Strategies
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 

Semelhante a Kubernetes CI/CD with Helm

Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
NaveedAhmad239
 
Developing Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with Knative
VMware Tanzu
 

Semelhante a Kubernetes CI/CD with Helm (20)

Continuous Delivery to Kubernetes Using Helm
Continuous Delivery to Kubernetes Using HelmContinuous Delivery to Kubernetes Using Helm
Continuous Delivery to Kubernetes Using Helm
 
Deploy your favorite apps on Kubernetes
Deploy your favorite apps on KubernetesDeploy your favorite apps on Kubernetes
Deploy your favorite apps on Kubernetes
 
Can i service this from my raspberry pi
Can i service this from my raspberry piCan i service this from my raspberry pi
Can i service this from my raspberry pi
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01
 
Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
 
Deep Dive on Serverless Stack
Deep Dive on Serverless StackDeep Dive on Serverless Stack
Deep Dive on Serverless Stack
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
betterCode Workshop: Effizientes DevOps-Tooling mit Go
betterCode Workshop:  Effizientes DevOps-Tooling mit GobetterCode Workshop:  Effizientes DevOps-Tooling mit Go
betterCode Workshop: Effizientes DevOps-Tooling mit Go
 
Scaffolding for Serverless: lightning talk for AWS Arlington Meetup
Scaffolding for Serverless: lightning talk for AWS Arlington MeetupScaffolding for Serverless: lightning talk for AWS Arlington Meetup
Scaffolding for Serverless: lightning talk for AWS Arlington Meetup
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volution
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
 
Application Model for Cloud Deployment
Application Model for Cloud DeploymentApplication Model for Cloud Deployment
Application Model for Cloud Deployment
 
Orchestration with Kubernetes
Orchestration with KubernetesOrchestration with Kubernetes
Orchestration with Kubernetes
 
Kubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platformKubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platform
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
 
Developing Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with Knative
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Último (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 

Kubernetes CI/CD with Helm

  • 1. Kubernetes CI/CD with Helm: Checking in your deployment configuration as code Adnan Abdulhussein - @prydonius Software Engineer, Bitnami
  • 2. Agenda Benefits of configuration/infrastructure as code Managing Kubernetes deployments Introduction to Helm Demo CI/CD pipeline with Helm
  • 3. Configuration and Infrastructure as Code Host Management CI/CD InfrastructurePackaging
  • 4. Configuration and Infrastructure as Code Why? Version Control Consistent Reproducible Rollbacks Auditing
  • 5. Tools Source Code Management CI/CD Platform Deployment Tool Orchestration Platform
  • 6. Kubernetes Resource Definitions MariaDB Service resource Database tier Secret resource Deployment resource Application Service resource Backend tier Config Map resource Deployment resource Nginx Service resource Frontend tier Deployment resource
  • 7. Example: Kubernetes Resource apiVersion: v1 kind: Deployment metadata: name: my-app spec: replicas: 3 template: metadata: labels: app: my-app spec: containers: - name: my-app image: prydonius/node-todo:v1.0.0 ports: - containerPort: 8080 livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 120 timeoutSeconds: 5
  • 8. Example: Deploying to Kubernetes $ kubectl apply -f ./mariadb-secret.yaml secret "mariadb" configured $ kubectl apply -f ./mariadb-deployment.yaml deployment "mariadb" configured $ kubectl apply -f ./mariadb-service.yaml service "mariadb" configured $ kubectl apply -f ./application-configmap.yaml configmap "application" configured $ kubectl apply -f ./application-deployment.yaml deployment "application" configured $ kubectl apply -f ./application-service.yaml service "application" configured $ kubectl apply -f ./nginx-deployment.yaml deployment "nginx" configured $ kubectl apply -f ./nginx-service.yaml service "nginx" configured
  • 9. Managing raw manifests can be difficult No template parameterization No application lifecycle hooks No history of releases
  • 10. Tool for managing resources as a single unit Reuse resources Logically group app resources Manage app lifecycles
  • 11. Charts (packages) Application definitions Consist of Metadata (Chart.yaml) Kubernetes templates Configuration file (values.yaml) Documentation Can depend on other charts
  • 12. Navigating a Chart MariaDB Service resource Database tier Secret resource Deployment resource Application Service resource Backend tier Config Map resource Deployment resource Nginx Service resource Frontend tier Deployment resourceDocumentation Metadata Config File helm install my-app
  • 13. myapp ├── Chart.yaml ├── README.md ├── charts │ └── mariadb-0.5.8.tgz ├── templates │ ├── deployment.yaml │ └── ... └── values.yaml Navigating a Chart
  • 15. CLI tool Takes a local Chart path Set parameters used in Chart templates Release state stored in cluster How the Helm can I setup CD?
  • 16. Generic CI/CD pipeline Code/config change Build Test Publish artifacts Staging/QA Deployment Production Deployment Manual verification
  • 17. Demo: CI/CD Pipeline Code/config change Build Test Push Docker image Staging/QA Deployment Production Deployment Manual verification
  • 18. Demo: Todo List App Application Code Dockerfile Jenkinsfile Helm Chart prydonius/node-todo Amazing Todo App ● Express.js server ● Angular frontend ● MongoDB database
  • 19. Demo
  • 20. Helm + Jenkins vs. Spinnaker Helm and Jenkins + config as code, single source of truth + multi-branch support (including pull requests) + rich source of plugins + single platform for CI and CD Spinnaker - more deployment strategies
  • 21. Helm Community Over 100 contributors 1.5 years old Slack channel: Kubernetes/#Helm Public dev meetings: Thursdays @ 9:30 pacific Weekly updates & demos at SIG-Apps meetings: Mondays @ 9am pacific Join us!
  • 22. Thank youTime for questions and (hopefully) answers...

Notas do Editor

  1. Tools that define configuration or infrastructure as code have existed for a long time, such as Chef and Puppet More recently we've seen this extend to CI pipelines, packaging with Dockerfiles, Packer config, and Infrastructure on clouds with Terraform and AWS CloudFormation, and more recently with Kubernetes and Helm
  2. Single source of truth for all configuration Gives you consistency across your deployments and tools Declarative definitions allow for reproducibility Version control comes with goodies
  3. In this talk, we'll take a look at how to build a whole CI/CD pipeline out of these tools
  4. In Kubernetes, you would define and create multiple resources for each of these tiers Deployment resource - describes what containers to run in the service, how to scale them, healthchecks, resources Service resource - enables service discovery and loadbalancing for your deployments Secret/ConfigMap resource - your application may take in a password or API token that needs to be kept secret Each resource is a declarative definition usually written in YAML or JSON
  5. When you want to go and upgrade your templates to release a new version of your application, you need to manually edit these files to change the tag of the docker image or if you want to change configuration in the configmap this is painful and hard to automate after making changes, it's difficult to rollback to a previous state because history is not tracked for every resource if your application needs to run a database migration during an upgrade you need to build tooling to manage this during your release process
  6. Helm allows you to reduce boilerplate and reuse resources in intelligent ways e.g. provides a public repository to take common components from Bundling different resources together and reordering into dependencies makes resources easier to manage and update Helm allows you to hook into your deployments and run database migrations at certain points in the deployment process
  7. Packages in Helm are called Charts They consist of metadata, templates, config files and docs They can depend on other charts
  8. Mostly the same as before, but Helm packages this all as a bundle Also containers metadata, docs, config file for exposing configuration for your app during install-time
  9. Laid out into two chart repos: Incubator - great place for sharing and developing ideas, and trying out new k8s alpha features Stable - a place for curated, ready-to-run applications
  10. Build - Docker Test - ??? Release artifacts - Image registry Manual verification - Yes no, maybe so? Staging environment Deploy - Production
  11. Build - Docker Test - ??? Release artifacts - Image registry Manual verification - Yes no, maybe so? Staging environment Deploy - Production