SlideShare a Scribd company logo
1 of 42
Download to read offline
Kubernetes Config
Management Landscape
Tomasz Tarczyński, Gigaset
Agenda
@ttarczynski
1. Configuration Management
2. Kubernetes
3. Declarative application management
4. Tools Landscape
Configuration Management
@ttarczynski
“Of all the problems we have confronted, the ones over
which the most brainpower, ink, and code have been
spilled are related to managing configurations.”
Borg, Omega, and Kubernetes (2016)
Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, John Wilkes
Configuration Management
@ttarczynski
● Infrastructure as Code
● GIT – as a single source of truth
● Tools:
CFEngine / Puppet / Chef / Ansible
Configuration Management
@ttarczynski
● Tools:
○ CFEngine (1993) Mark Burgess
○ Puppet (2005) Luke Kanies
○ Chef (2009) Adam Jacob
○ Ansible (2012) Michael DeHaan
Puppet
@ttarczynski
● Declarative – describe the desired state
● Resources automation – Types / providers
● DSL – a simple and constrained language
● Templates – ERB
● Modules – public and private
● Code / data separation – Hiera
Agenda
@ttarczynski
1. Configuration Management
2. Kubernetes
3. Declarative application management
4. Tools Landscape
Kubernetes
@ttarczynski
● Control plane provides a Declarative API
● Declare the desired state
● Control plane makes sure that the actual
state converges to the desired state
Kubernetes
@ttarczynski
Kubernetes
@ttarczynski
● Counting the YAMLs (real env example)
○ 54 standard k8s resource types
○ 50 CRD types
○ 790 API object (user-provided)
○ 5,500 API objects (total)
○ 107,000 lines of YAML (user-provided)
○ 507,000 lines of YAML (total)
Kubernetes
@ttarczynski
● “Are we all YAML engineers now?”
– Bob Walker at CfgMgmtCampt 2018
Kubernetes
@ttarczynski
● “Are we all YAML engineers now?”
– Bob Walker at CfgMgmtCampt 2018
Agenda
@ttarczynski
1. Configuration Management
2. Kubernetes
3. Declarative application management
4. Tools Landscape
Kubernetes: Declarative application management
@ttarczynski
● “Declarative application management in
Kubernetes”
– article by Brian Grant, 2017
Kubernetes: Declarative application management
@ttarczynski
● Central Idea:
○ Composable tools
○ Manipulate configuration data
○ Declarative data model
● NOT: Configuration as Code
Kubernetes: Declarative application management
@ttarczynski
● Configuration as Data
○ Code goes into controllers (control loops)
○ Data in native Kubernetes API format
Kubernetes: Declarative application management
@ttarczynski
● Declarative – k8s API
● Resources automation – k8s controllers
● DSL –
● Templates –
● Modules –
● Code / data separation – controllers / API
Agenda
@ttarczynski
1. Configuration Management
2. Kubernetes
3. Declarative application management
4. Tools Landscape
Tools Landscape
● List by Brian Grant
● Currently 125 tools on the list
Tools Landscape – k8s config mgmt
@ttarczynski
● Approaches to config:
○ Fork
○ Overlay / patch
○ Parametrization
○ Generation
○ DSL (domain-specific language)
○ GPL (general-purpose language)
Tools Landscape – tools (1–3)
@ttarczynski
● 3 most widely used tools:
○ Jsonnet (2014) 4,5k ⭐
○ Helm (2015) 18,6k ⭐
○ Kustomize (2018) 6,5k ⭐
Tools Landscape – tools (1–3)
@ttarczynski
● Jsonnet
○ Data templating language (DSL)
○ Generates JSON
○ Hermetic / side-effect free
○ Superset of JSON
Tools Landscape – tools (1–3)
@ttarczynski
● Helm
○ Template YAML (with Go template)
○ Package cfg into charts
○ Simple sharing (public / private repos)
○ Manage releases (in Kubernetes)
Tools Landscape – tools (1–3)
@ttarczynski
● Kustomize
○ Template-free / DSL-free
○ Plain YAML
○ Customize Kubernetes objects
○ Built into kubectl
Tools Landscape – tools (4–5)
@ttarczynski
● GitOps tools:
○ Flux CD (2016) 5,9k ⭐
○ Argo CD (2018) 4,6k ⭐
Tools Landscape – tools (4–5)
@ttarczynski
● GitOps tools:
○ Keep Kubernetes clusters in sync with Git
○ Use operator in the cluster
● Integrations:
○ Flux CD – Helm, Kustomize
○ Argo CD – Helm, Kustomize, Jsonnet
Tools Landscape – tools (6–8)
@ttarczynski
● More tools:
○ Kapitan (2017) 1,3k ⭐
○ Tanka (2019) 1,2k ⭐
○ Kpt (2019) 0,7k ⭐
Tools Landscape – tools (6–8)
@ttarczynski
● Kapitan:
○ Template engines – Jsonnet, Jinja2, Kadet, Helm
○ Inventory – YAML-based, hierarchical
○ Compile k8s manifests and store in git
Tools Landscape – tools (6–8)
@ttarczynski
● Tanka:
○ By Grafana Labs
○ Powered by Jsonnet
○ Jsonnet Kubernetes library
○ Replacement for ksonnet
○ Integrates with: Helm, Kustomize
Tools Landscape – tools (6–8)
@ttarczynski
● Kpt:
○ Treat configuration as data
○ Provides a packaging solution (Git-based)
○ Run functions to: generate, transform, validate cfg
○ Integrates with: Kustomize, Helm, (anything via fns)
Tools Landscape – tools (9–10)
@ttarczynski
● More tools:
○ Ytt (2019) 0,7k ⭐
○ Cue (2019) 2,4k ⭐
Tools Landscape – tools (9–10)
@ttarczynski
● ytt:
○ YAML structure-aware templating
○ Based on Starlark (Python-like language)
○ Conceptually close to Jsonnet
○ Supports patch/overlay approach
Tools Landscape – tools (9–10)
@ttarczynski
● Cue:
○ Data constraint language
○ Superset of JSON
○ Data validation
○ Reduce boilerplate
Tools Landscape – tools (11–13)
@ttarczynski
● IaC tools:
○ Terraform (2014) 25,2k ⭐
○ Pulumi (2016) 7,3k ⭐
○ Cdk8s (2020) 1,9k ⭐
Tools Landscape – tools (11–13)
@ttarczynski
● Terraform:
○ HCL (HashiCorp Configuration Language)
■ JSON compatible DSL
■ Declarative
○ Providers:
■ Kubernetes – 34 core resource types
■ Kubernetes-alpha – any resource (incl. CRDs)
■ Helm – manage charts
Tools Landscape – tools (11–13)
@ttarczynski
● Pulumi:
○ Infrastructure as Code SDK
○ General-purpose programming language:
■ JavaScript, TypeScript, Python, Go, .NET
○ Supports: Helm, Kustomize, plain YAML
○ SDK API:
■ 100% compatible with the Kubernetes API
■ Supports CRDs
Tools Landscape – tools (11–13)
@ttarczynski
● Cdk8s:
○ CDK for Kubernetes
○ General-purpose programming language:
■ Typescript, JavaScript, Python, and Java
○ Supports: Helm, plain YAML
○ Covers:
■ 100% of the Kubernetes API
■ CRDs
Tools Landscape – summary
@ttarczynski
Tools Landscape – CNCF Tech Radar
@ttarczynski
Tools Landscape – CNCF Tech Radar
@ttarczynski
Links
@ttarczynski
1. Borg, Omega, and Kubernetes – Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer,
John Wilkes, 2016
2. Are we all YAML engineer now? – Bob Walker at CfgMgmtCampt, 2018
3. Declarative application management in Kubernetes – Brian Grant, 2017
4. Kubernetes application management tools – Brian Grant, 2017
5. CNCF End User Technology Radar – Continuous Delivery – CNCF, 2020
6. All materials used for this talk – me, 2021
7. Tools comparison spreadsheet – me, 2021
Thanks!

More Related Content

What's hot

MongoDB and the Future of Workspaces
MongoDB and the Future of WorkspacesMongoDB and the Future of Workspaces
MongoDB and the Future of WorkspacesMongoDB
 
SAIS2018 - Fact Store At Netflix Scale
SAIS2018 - Fact Store At Netflix ScaleSAIS2018 - Fact Store At Netflix Scale
SAIS2018 - Fact Store At Netflix ScaleNitin S
 
Collaborative data science and how to build a data science toolchain around n...
Collaborative data science and how to build a data science toolchain around n...Collaborative data science and how to build a data science toolchain around n...
Collaborative data science and how to build a data science toolchain around n...Moon Soo Lee
 
From logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C SchneiderFrom logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C Schneidermfrancis
 
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...apidays
 
Productionize spark structured streaming
Productionize spark structured streamingProductionize spark structured streaming
Productionize spark structured streamingIvan Kosianenko
 
Data Engineer’s Lunch #41: PygramETL
Data Engineer’s Lunch #41: PygramETLData Engineer’s Lunch #41: PygramETL
Data Engineer’s Lunch #41: PygramETLAnant Corporation
 
Seventh openCypher Implementers Group Meeting: Status Update
Seventh openCypher Implementers Group Meeting: Status UpdateSeventh openCypher Implementers Group Meeting: Status Update
Seventh openCypher Implementers Group Meeting: Status UpdateopenCypher
 
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open WebKafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open WebHostedbyConfluent
 
Multiplatform development with Kotlin
Multiplatform  development with KotlinMultiplatform  development with Kotlin
Multiplatform development with KotlinGaetan Zoritchak
 
Graph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and GremlinGraph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and GremlinJason Plurad
 
Webinar about Spring Data Neo4j 4
Webinar about Spring Data Neo4j 4Webinar about Spring Data Neo4j 4
Webinar about Spring Data Neo4j 4GraphAware
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKKriangkrai Chaonithi
 
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStackIntroducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStackMirantis
 
Start Flying with Python & Apache TinkerPop
Start Flying with Python & Apache TinkerPopStart Flying with Python & Apache TinkerPop
Start Flying with Python & Apache TinkerPopJason Plurad
 
Collaborative environment with data science notebook
Collaborative environment with data science notebook Collaborative environment with data science notebook
Collaborative environment with data science notebook Moon Soo Lee
 
TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)Kevin Xu
 
Presto Summit 2018 - 08 - FINRA
Presto Summit 2018  - 08 - FINRAPresto Summit 2018  - 08 - FINRA
Presto Summit 2018 - 08 - FINRAkbajda
 

What's hot (19)

MongoDB and the Future of Workspaces
MongoDB and the Future of WorkspacesMongoDB and the Future of Workspaces
MongoDB and the Future of Workspaces
 
SAIS2018 - Fact Store At Netflix Scale
SAIS2018 - Fact Store At Netflix ScaleSAIS2018 - Fact Store At Netflix Scale
SAIS2018 - Fact Store At Netflix Scale
 
Collaborative data science and how to build a data science toolchain around n...
Collaborative data science and how to build a data science toolchain around n...Collaborative data science and how to build a data science toolchain around n...
Collaborative data science and how to build a data science toolchain around n...
 
From logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C SchneiderFrom logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C Schneider
 
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
 
Productionize spark structured streaming
Productionize spark structured streamingProductionize spark structured streaming
Productionize spark structured streaming
 
Data Engineer’s Lunch #41: PygramETL
Data Engineer’s Lunch #41: PygramETLData Engineer’s Lunch #41: PygramETL
Data Engineer’s Lunch #41: PygramETL
 
Seventh openCypher Implementers Group Meeting: Status Update
Seventh openCypher Implementers Group Meeting: Status UpdateSeventh openCypher Implementers Group Meeting: Status Update
Seventh openCypher Implementers Group Meeting: Status Update
 
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open WebKafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
 
CCT Check and Calculate Transfer
CCT Check and Calculate TransferCCT Check and Calculate Transfer
CCT Check and Calculate Transfer
 
Multiplatform development with Kotlin
Multiplatform  development with KotlinMultiplatform  development with Kotlin
Multiplatform development with Kotlin
 
Graph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and GremlinGraph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and Gremlin
 
Webinar about Spring Data Neo4j 4
Webinar about Spring Data Neo4j 4Webinar about Spring Data Neo4j 4
Webinar about Spring Data Neo4j 4
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStackIntroducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStack
 
Start Flying with Python & Apache TinkerPop
Start Flying with Python & Apache TinkerPopStart Flying with Python & Apache TinkerPop
Start Flying with Python & Apache TinkerPop
 
Collaborative environment with data science notebook
Collaborative environment with data science notebook Collaborative environment with data science notebook
Collaborative environment with data science notebook
 
TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)
 
Presto Summit 2018 - 08 - FINRA
Presto Summit 2018  - 08 - FINRAPresto Summit 2018  - 08 - FINRA
Presto Summit 2018 - 08 - FINRA
 

Similar to Kubernetes Config Management Landscape

Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)
Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)
Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)Tomasz Tarczyński
 
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19Sujit Pal
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022ArangoDB Database
 
Config management for kubernetes: GitOps + Helm
Config management for kubernetes: GitOps + HelmConfig management for kubernetes: GitOps + Helm
Config management for kubernetes: GitOps + HelmTomasz Tarczyński
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022ArangoDB Database
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fastDenis Karpenko
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB
 
Workshop on Google Cloud Data Platform
Workshop on Google Cloud Data PlatformWorkshop on Google Cloud Data Platform
Workshop on Google Cloud Data PlatformGoDataDriven
 
Machine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better RecommendationsMachine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better RecommendationsChristopherWoodward16
 
ACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformaticsACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformaticsGreg Landrum
 
Understanding Hadoop
Understanding HadoopUnderstanding Hadoop
Understanding HadoopAhmed Ossama
 
Open Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistryOpen Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistryMarcus Hanwell
 
Accelerating NLP with Dask and Saturn Cloud
Accelerating NLP with Dask and Saturn CloudAccelerating NLP with Dask and Saturn Cloud
Accelerating NLP with Dask and Saturn CloudSujit Pal
 
Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1aspyker
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1Ruslan Meshenberg
 
GitOps - Argo CD - GDSC WoW Punjab
GitOps - Argo CD - GDSC WoW PunjabGitOps - Argo CD - GDSC WoW Punjab
GitOps - Argo CD - GDSC WoW PunjabTusharVilekar1
 
Data Platform in the Cloud
Data Platform in the CloudData Platform in the Cloud
Data Platform in the CloudAmihay Zer-Kavod
 
What is Software Development by Thesys Tech Head of Development
What is Software Development by Thesys Tech Head of DevelopmentWhat is Software Development by Thesys Tech Head of Development
What is Software Development by Thesys Tech Head of DevelopmentProduct School
 
Meetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaCMeetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaCDamienCarpy
 
Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020
Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020
Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020Mariano Gonzalez
 

Similar to Kubernetes Config Management Landscape (20)

Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)
Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)
Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)
 
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
Accelerating NLP with Dask on Saturn Cloud: A case study with CORD-19
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
 
Config management for kubernetes: GitOps + Helm
Config management for kubernetes: GitOps + HelmConfig management for kubernetes: GitOps + Helm
Config management for kubernetes: GitOps + Helm
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
 
Workshop on Google Cloud Data Platform
Workshop on Google Cloud Data PlatformWorkshop on Google Cloud Data Platform
Workshop on Google Cloud Data Platform
 
Machine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better RecommendationsMachine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better Recommendations
 
ACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformaticsACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformatics
 
Understanding Hadoop
Understanding HadoopUnderstanding Hadoop
Understanding Hadoop
 
Open Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistryOpen Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistry
 
Accelerating NLP with Dask and Saturn Cloud
Accelerating NLP with Dask and Saturn CloudAccelerating NLP with Dask and Saturn Cloud
Accelerating NLP with Dask and Saturn Cloud
 
Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1
 
GitOps - Argo CD - GDSC WoW Punjab
GitOps - Argo CD - GDSC WoW PunjabGitOps - Argo CD - GDSC WoW Punjab
GitOps - Argo CD - GDSC WoW Punjab
 
Data Platform in the Cloud
Data Platform in the CloudData Platform in the Cloud
Data Platform in the Cloud
 
What is Software Development by Thesys Tech Head of Development
What is Software Development by Thesys Tech Head of DevelopmentWhat is Software Development by Thesys Tech Head of Development
What is Software Development by Thesys Tech Head of Development
 
Meetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaCMeetup 2020 - Back to the Basics part 101 : IaC
Meetup 2020 - Back to the Basics part 101 : IaC
 
Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020
Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020
Architecting Analytic Pipelines on GCP - Chicago Cloud Conference 2020
 

More from Tomasz Tarczyński

Learning Terraform While Building a Reference Repository of Code Examples
Learning Terraform While Building a Reference Repository of Code ExamplesLearning Terraform While Building a Reference Repository of Code Examples
Learning Terraform While Building a Reference Repository of Code ExamplesTomasz Tarczyński
 
What is Cloud Native and why should I care
What is Cloud Native and why should I careWhat is Cloud Native and why should I care
What is Cloud Native and why should I careTomasz Tarczyński
 
What is Cloud Native, and why should I care?
What is Cloud Native, and why should I care?What is Cloud Native, and why should I care?
What is Cloud Native, and why should I care?Tomasz Tarczyński
 
Evolution of the IoT backend platform. From a monolith to microservices and t...
Evolution of the IoT backend platform. From a monolith to microservices and t...Evolution of the IoT backend platform. From a monolith to microservices and t...
Evolution of the IoT backend platform. From a monolith to microservices and t...Tomasz Tarczyński
 

More from Tomasz Tarczyński (6)

Learning Terraform While Building a Reference Repository of Code Examples
Learning Terraform While Building a Reference Repository of Code ExamplesLearning Terraform While Building a Reference Repository of Code Examples
Learning Terraform While Building a Reference Repository of Code Examples
 
What is Cloud Native and why should I care
What is Cloud Native and why should I careWhat is Cloud Native and why should I care
What is Cloud Native and why should I care
 
What is Cloud Native, and why should I care?
What is Cloud Native, and why should I care?What is Cloud Native, and why should I care?
What is Cloud Native, and why should I care?
 
Evolution of the IoT backend platform. From a monolith to microservices and t...
Evolution of the IoT backend platform. From a monolith to microservices and t...Evolution of the IoT backend platform. From a monolith to microservices and t...
Evolution of the IoT backend platform. From a monolith to microservices and t...
 
IoT backend architecture
IoT backend architectureIoT backend architecture
IoT backend architecture
 
#Monitoringlove in 2017
#Monitoringlove in 2017#Monitoringlove in 2017
#Monitoringlove in 2017
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 

Kubernetes Config Management Landscape

  • 2. Agenda @ttarczynski 1. Configuration Management 2. Kubernetes 3. Declarative application management 4. Tools Landscape
  • 3. Configuration Management @ttarczynski “Of all the problems we have confronted, the ones over which the most brainpower, ink, and code have been spilled are related to managing configurations.” Borg, Omega, and Kubernetes (2016) Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, John Wilkes
  • 4. Configuration Management @ttarczynski ● Infrastructure as Code ● GIT – as a single source of truth ● Tools: CFEngine / Puppet / Chef / Ansible
  • 5. Configuration Management @ttarczynski ● Tools: ○ CFEngine (1993) Mark Burgess ○ Puppet (2005) Luke Kanies ○ Chef (2009) Adam Jacob ○ Ansible (2012) Michael DeHaan
  • 6. Puppet @ttarczynski ● Declarative – describe the desired state ● Resources automation – Types / providers ● DSL – a simple and constrained language ● Templates – ERB ● Modules – public and private ● Code / data separation – Hiera
  • 7. Agenda @ttarczynski 1. Configuration Management 2. Kubernetes 3. Declarative application management 4. Tools Landscape
  • 8. Kubernetes @ttarczynski ● Control plane provides a Declarative API ● Declare the desired state ● Control plane makes sure that the actual state converges to the desired state
  • 10. Kubernetes @ttarczynski ● Counting the YAMLs (real env example) ○ 54 standard k8s resource types ○ 50 CRD types ○ 790 API object (user-provided) ○ 5,500 API objects (total) ○ 107,000 lines of YAML (user-provided) ○ 507,000 lines of YAML (total)
  • 11. Kubernetes @ttarczynski ● “Are we all YAML engineers now?” – Bob Walker at CfgMgmtCampt 2018
  • 12. Kubernetes @ttarczynski ● “Are we all YAML engineers now?” – Bob Walker at CfgMgmtCampt 2018
  • 13. Agenda @ttarczynski 1. Configuration Management 2. Kubernetes 3. Declarative application management 4. Tools Landscape
  • 14. Kubernetes: Declarative application management @ttarczynski ● “Declarative application management in Kubernetes” – article by Brian Grant, 2017
  • 15. Kubernetes: Declarative application management @ttarczynski ● Central Idea: ○ Composable tools ○ Manipulate configuration data ○ Declarative data model ● NOT: Configuration as Code
  • 16. Kubernetes: Declarative application management @ttarczynski ● Configuration as Data ○ Code goes into controllers (control loops) ○ Data in native Kubernetes API format
  • 17. Kubernetes: Declarative application management @ttarczynski ● Declarative – k8s API ● Resources automation – k8s controllers ● DSL – ● Templates – ● Modules – ● Code / data separation – controllers / API
  • 18. Agenda @ttarczynski 1. Configuration Management 2. Kubernetes 3. Declarative application management 4. Tools Landscape
  • 19. Tools Landscape ● List by Brian Grant ● Currently 125 tools on the list
  • 20. Tools Landscape – k8s config mgmt @ttarczynski ● Approaches to config: ○ Fork ○ Overlay / patch ○ Parametrization ○ Generation ○ DSL (domain-specific language) ○ GPL (general-purpose language)
  • 21. Tools Landscape – tools (1–3) @ttarczynski ● 3 most widely used tools: ○ Jsonnet (2014) 4,5k ⭐ ○ Helm (2015) 18,6k ⭐ ○ Kustomize (2018) 6,5k ⭐
  • 22. Tools Landscape – tools (1–3) @ttarczynski ● Jsonnet ○ Data templating language (DSL) ○ Generates JSON ○ Hermetic / side-effect free ○ Superset of JSON
  • 23. Tools Landscape – tools (1–3) @ttarczynski ● Helm ○ Template YAML (with Go template) ○ Package cfg into charts ○ Simple sharing (public / private repos) ○ Manage releases (in Kubernetes)
  • 24. Tools Landscape – tools (1–3) @ttarczynski ● Kustomize ○ Template-free / DSL-free ○ Plain YAML ○ Customize Kubernetes objects ○ Built into kubectl
  • 25. Tools Landscape – tools (4–5) @ttarczynski ● GitOps tools: ○ Flux CD (2016) 5,9k ⭐ ○ Argo CD (2018) 4,6k ⭐
  • 26. Tools Landscape – tools (4–5) @ttarczynski ● GitOps tools: ○ Keep Kubernetes clusters in sync with Git ○ Use operator in the cluster ● Integrations: ○ Flux CD – Helm, Kustomize ○ Argo CD – Helm, Kustomize, Jsonnet
  • 27. Tools Landscape – tools (6–8) @ttarczynski ● More tools: ○ Kapitan (2017) 1,3k ⭐ ○ Tanka (2019) 1,2k ⭐ ○ Kpt (2019) 0,7k ⭐
  • 28. Tools Landscape – tools (6–8) @ttarczynski ● Kapitan: ○ Template engines – Jsonnet, Jinja2, Kadet, Helm ○ Inventory – YAML-based, hierarchical ○ Compile k8s manifests and store in git
  • 29. Tools Landscape – tools (6–8) @ttarczynski ● Tanka: ○ By Grafana Labs ○ Powered by Jsonnet ○ Jsonnet Kubernetes library ○ Replacement for ksonnet ○ Integrates with: Helm, Kustomize
  • 30. Tools Landscape – tools (6–8) @ttarczynski ● Kpt: ○ Treat configuration as data ○ Provides a packaging solution (Git-based) ○ Run functions to: generate, transform, validate cfg ○ Integrates with: Kustomize, Helm, (anything via fns)
  • 31. Tools Landscape – tools (9–10) @ttarczynski ● More tools: ○ Ytt (2019) 0,7k ⭐ ○ Cue (2019) 2,4k ⭐
  • 32. Tools Landscape – tools (9–10) @ttarczynski ● ytt: ○ YAML structure-aware templating ○ Based on Starlark (Python-like language) ○ Conceptually close to Jsonnet ○ Supports patch/overlay approach
  • 33. Tools Landscape – tools (9–10) @ttarczynski ● Cue: ○ Data constraint language ○ Superset of JSON ○ Data validation ○ Reduce boilerplate
  • 34. Tools Landscape – tools (11–13) @ttarczynski ● IaC tools: ○ Terraform (2014) 25,2k ⭐ ○ Pulumi (2016) 7,3k ⭐ ○ Cdk8s (2020) 1,9k ⭐
  • 35. Tools Landscape – tools (11–13) @ttarczynski ● Terraform: ○ HCL (HashiCorp Configuration Language) ■ JSON compatible DSL ■ Declarative ○ Providers: ■ Kubernetes – 34 core resource types ■ Kubernetes-alpha – any resource (incl. CRDs) ■ Helm – manage charts
  • 36. Tools Landscape – tools (11–13) @ttarczynski ● Pulumi: ○ Infrastructure as Code SDK ○ General-purpose programming language: ■ JavaScript, TypeScript, Python, Go, .NET ○ Supports: Helm, Kustomize, plain YAML ○ SDK API: ■ 100% compatible with the Kubernetes API ■ Supports CRDs
  • 37. Tools Landscape – tools (11–13) @ttarczynski ● Cdk8s: ○ CDK for Kubernetes ○ General-purpose programming language: ■ Typescript, JavaScript, Python, and Java ○ Supports: Helm, plain YAML ○ Covers: ■ 100% of the Kubernetes API ■ CRDs
  • 38. Tools Landscape – summary @ttarczynski
  • 39. Tools Landscape – CNCF Tech Radar @ttarczynski
  • 40. Tools Landscape – CNCF Tech Radar @ttarczynski
  • 41. Links @ttarczynski 1. Borg, Omega, and Kubernetes – Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, John Wilkes, 2016 2. Are we all YAML engineer now? – Bob Walker at CfgMgmtCampt, 2018 3. Declarative application management in Kubernetes – Brian Grant, 2017 4. Kubernetes application management tools – Brian Grant, 2017 5. CNCF End User Technology Radar – Continuous Delivery – CNCF, 2020 6. All materials used for this talk – me, 2021 7. Tools comparison spreadsheet – me, 2021