SlideShare a Scribd company logo
1 of 37
Download to read offline
On declarative configuration management using
Kubernetes and Helm
Alexander Chistyakov
ITMO University
Software Engineering Conference Russia 2018
October 12-13
Moscow
First things first, what is DevOps?
● I will make a short break for you so you can ship a release
● And if your process is solid enough, you can ship while I talk
● Or even better, a release can ship itself when it’s ready without even
bothering you
● Do you need a couple of minutes just to check if something is shipping right
now?
BTW, who are you?
● Are you a human being?
● Maybe a DevOps engineer?
● Maybe a cyborg?
● Maybe even a Jenkins node?
● If so, how many jobs you can run in parallel?
What does a CM process look like?
● We define a desired state declaratively
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
● Midnight suddenly comes
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
● Midnight suddenly comes
● Infrastructure gets to the desired state!
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
● Midnight suddenly comes
● Infrastructure gets to the desired state!
● Sounds not too difficult, should be quite easy to implement
A bit of history
● Are you familiar with Puppet CM system?
● Raise your hands if you like it! (But how on Earth is it possible?)
A bit of history
● Are you familiar with Chef CM system?
● Raise your hands if you like it! (Please don’t cry, SECR is a safe place and
I’m your friend)
A bit of history
● Are you familiar with Ansible CM system?
● Raise your hands if you like it!
If you know Ansible, pls help me a bit
● I need to configure a cluster of something
● No, not a cluster yet, just a monitoring tool for a cluster
Okay let’s try
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s inside
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s wrong with it?
● Nothing, this module was just awesome
● Except that it was poorly written, not documented at all, hard to use, not
supported and finally abandoned
● Still 7 stars on GitHub!
Let’s try again
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s inside
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s wrong with it?
What’s terribly wrong with it?
● Can you tell for sure what is a status of the Carbon systemd service?
● And if you can, imagine a situation where you provide a service unit file and
then use Ansible “notify” mechanism to call a handler which in turn enables
the service
What’s terribly wrong with it?
● It’s hard to explain (not so hard to implement though), but people tend to be
extremely proud implementing solutions like this
● Why on Earth does Ansible allow this?
● Please note that Ansible handlers run at the end of script execution
Back to the CM process for a moment
● We want to run a set of microservices on top of a monolithic Linux kernel
● If this still makes sense, we can consider services as building blocks
A dictionary for people from late 90s
● A microservice = a process
● A Docker image = a package
● Kubernetes = an operating system for microservices
● Helm = a package managing system (think apt in Debian or yum in RHEL)
for Kubernetes
Let’s try
● A microservice = a process
What’s inside a lab
● A Vagrant-based Ansible-provisioned K8s setup
● 3 Vagrant boxes
● Using Kubespray (https://github.com/kubernetes-incubator/kubespray) to
set up Kubernetes (Kubespray is where Ansible meets K8s)
● Using Helm to provision Kubernetes apps
What’s inside a playbook
Ansible calls Helm
Tired of dictionaries (the roads must roll!)
● Ansible = Helm
● Ansible role = Helm chart
● Python = Golang (this goes far beyond the scope of this session)
● Jinja templates = some custom templating engine
● ___ = tiller
How Helm works
● Helm generated K8s YAML configs
● Helm transfers generated config files to the K8s cluster
● Tiller is an agent which runs in the cluster, effectively a cluster-side Helm
service
● Tiller applies configuration files and labels a release
● Just like a Chef client 7 years ago but without a memory leak :)
Helm charts repository
● It’s centralised
● It’s on GitHub (https://github.com/helm/charts)
● It grows very fast
● If you submit a patch it will be landed in about a month, which I consider
quite fast
Helm charts repository
● https://hub.kubeapps.com (a nice landing page for non-kinesthetic people)
What’s inside a chart
Templates are just declarative configs
What’s wrong with Helm?
● Unfamiliar templating syntax (if you are not a Lisper)
What’s wrong with K8s and Helm?
● They are written in Golang
● Really, seriously, please stop using Golang for everything!
● We are humans not rodents, we already invented nuclear bombing, Haskell
and even soccer, why Golang after all???
Conclusions
● Classical CM systems were never good
● Kubernetes and Helm are not good too, but we are just not fully aware yet
● And, frankly speaking, I don’t care
Contacts
• Alex Chistyakov
• alexclear@gmail.com
• +7-921-643-93-27 (Please don’t call me, I am
a sociophobe)
• @demeliorator (in Telegram and Skype)

More Related Content

What's hot

Riak at Posterous
Riak at PosterousRiak at Posterous
Riak at Posterouscapotej
 
Основы функционального JS
Основы функционального JSОсновы функционального JS
Основы функционального JSАнна Луць
 
Asynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with CoroutinesAsynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with CoroutinesTobias Schürg
 
Data + Visualization Toronto Meetup 4: The Google Maps API
Data + Visualization Toronto Meetup 4: The Google Maps APIData + Visualization Toronto Meetup 4: The Google Maps API
Data + Visualization Toronto Meetup 4: The Google Maps APImattholtom
 
Increasing performance with Elixir Tasks
Increasing performance with Elixir TasksIncreasing performance with Elixir Tasks
Increasing performance with Elixir TasksJeffrey Chan
 
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelinesGitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelinesJoseph Lust
 
Elm - never get a runtime error anymore. Almost.
Elm - never get a runtime error anymore. Almost.Elm - never get a runtime error anymore. Almost.
Elm - never get a runtime error anymore. Almost.Anton Astashov
 
Mongrel Handlers
Mongrel HandlersMongrel Handlers
Mongrel Handlersnextlib
 
Serverless Operations aka. LessOps
Serverless Operations aka. LessOpsServerless Operations aka. LessOps
Serverless Operations aka. LessOpsRowan Udell
 

What's hot (13)

ReactJS Code Impact
ReactJS Code ImpactReactJS Code Impact
ReactJS Code Impact
 
Reason React
Reason ReactReason React
Reason React
 
Riak at Posterous
Riak at PosterousRiak at Posterous
Riak at Posterous
 
Основы функционального JS
Основы функционального JSОсновы функционального JS
Основы функционального JS
 
Capistrano @ VilniusPHP
Capistrano @ VilniusPHPCapistrano @ VilniusPHP
Capistrano @ VilniusPHP
 
Asynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with CoroutinesAsynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with Coroutines
 
Data + Visualization Toronto Meetup 4: The Google Maps API
Data + Visualization Toronto Meetup 4: The Google Maps APIData + Visualization Toronto Meetup 4: The Google Maps API
Data + Visualization Toronto Meetup 4: The Google Maps API
 
Jenkins automation
Jenkins automationJenkins automation
Jenkins automation
 
Increasing performance with Elixir Tasks
Increasing performance with Elixir TasksIncreasing performance with Elixir Tasks
Increasing performance with Elixir Tasks
 
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelinesGitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
 
Elm - never get a runtime error anymore. Almost.
Elm - never get a runtime error anymore. Almost.Elm - never get a runtime error anymore. Almost.
Elm - never get a runtime error anymore. Almost.
 
Mongrel Handlers
Mongrel HandlersMongrel Handlers
Mongrel Handlers
 
Serverless Operations aka. LessOps
Serverless Operations aka. LessOpsServerless Operations aka. LessOps
Serverless Operations aka. LessOps
 

Similar to My slides from SECR'2018

icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02Manohar Kumar
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev opsMukta Aphale
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with PuppetKris Buytaert
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automationRicardo Bánffy
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perlDean Hamstead
 
Idi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean OpslessIdi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean OpslessLinuxaria.com
 
DevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sgDevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sgNicolas Mas
 
Monitoring with sensu
Monitoring with sensuMonitoring with sensu
Monitoring with sensumiquelruizm
 
Scalable, good, cheap
Scalable, good, cheapScalable, good, cheap
Scalable, good, cheapMarc Cluet
 
Reasoning about data and consistency in systems
Reasoning about data and consistency in systemsReasoning about data and consistency in systems
Reasoning about data and consistency in systemsDaniel Norman
 
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian HeiglOSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian HeiglNETWAYS
 
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyoneOSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyoneNETWAYS
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austinmatthewbrahms
 
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017Chris Gates
 
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...Puppet
 

Similar to My slides from SECR'2018 (20)

icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
 
The elements of kubernetes
The elements of kubernetesThe elements of kubernetes
The elements of kubernetes
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automation
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
 
Idi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean OpslessIdi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean Opsless
 
DevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sgDevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sg
 
Monitoring with sensu
Monitoring with sensuMonitoring with sensu
Monitoring with sensu
 
Scalable, good, cheap
Scalable, good, cheapScalable, good, cheap
Scalable, good, cheap
 
Reasoning about data and consistency in systems
Reasoning about data and consistency in systemsReasoning about data and consistency in systems
Reasoning about data and consistency in systems
 
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian HeiglOSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
 
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyoneOSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austin
 
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
 
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
 
Cloud Needs Devops
Cloud Needs DevopsCloud Needs Devops
Cloud Needs Devops
 

More from Alex Chistyakov

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019Alex Chistyakov
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 Alex Chistyakov
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtAlex Chistyakov
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019Alex Chistyakov
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and KubernetesAlex Chistyakov
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017Alex Chistyakov
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMAlex Chistyakov
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017Alex Chistyakov
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10Alex Chistyakov
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017Alex Chistyakov
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017Alex Chistyakov
 

More from Alex Chistyakov (20)

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArt
 
My slides from CC'2019
My slides from CC'2019My slides from CC'2019
My slides from CC'2019
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and Kubernetes
 
Ansible and other stuff
Ansible and other stuffAnsible and other stuff
Ansible and other stuff
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGM
 
My talk at SECR 2017
My talk at SECR 2017My talk at SECR 2017
My talk at SECR 2017
 
On scaling teams
On scaling teamsOn scaling teams
On scaling teams
 
MariaDB workshop
MariaDB workshopMariaDB workshop
MariaDB workshop
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
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
 
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
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
#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
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
#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
 

My slides from SECR'2018

  • 1. On declarative configuration management using Kubernetes and Helm Alexander Chistyakov ITMO University Software Engineering Conference Russia 2018 October 12-13 Moscow
  • 2. First things first, what is DevOps? ● I will make a short break for you so you can ship a release ● And if your process is solid enough, you can ship while I talk ● Or even better, a release can ship itself when it’s ready without even bothering you ● Do you need a couple of minutes just to check if something is shipping right now?
  • 3. BTW, who are you? ● Are you a human being? ● Maybe a DevOps engineer? ● Maybe a cyborg? ● Maybe even a Jenkins node? ● If so, how many jobs you can run in parallel?
  • 4. What does a CM process look like? ● We define a desired state declaratively
  • 5. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently
  • 6. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins
  • 7. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins ● Midnight suddenly comes
  • 8. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins ● Midnight suddenly comes ● Infrastructure gets to the desired state!
  • 9. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins ● Midnight suddenly comes ● Infrastructure gets to the desired state! ● Sounds not too difficult, should be quite easy to implement
  • 10. A bit of history ● Are you familiar with Puppet CM system? ● Raise your hands if you like it! (But how on Earth is it possible?)
  • 11. A bit of history ● Are you familiar with Chef CM system? ● Raise your hands if you like it! (Please don’t cry, SECR is a safe place and I’m your friend)
  • 12. A bit of history ● Are you familiar with Ansible CM system? ● Raise your hands if you like it!
  • 13. If you know Ansible, pls help me a bit ● I need to configure a cluster of something ● No, not a cluster yet, just a monitoring tool for a cluster
  • 14. Okay let’s try ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 15. What’s inside ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 16. What’s wrong with it? ● Nothing, this module was just awesome ● Except that it was poorly written, not documented at all, hard to use, not supported and finally abandoned ● Still 7 stars on GitHub!
  • 17. Let’s try again ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 18. What’s inside ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 20. What’s terribly wrong with it? ● Can you tell for sure what is a status of the Carbon systemd service? ● And if you can, imagine a situation where you provide a service unit file and then use Ansible “notify” mechanism to call a handler which in turn enables the service
  • 21. What’s terribly wrong with it? ● It’s hard to explain (not so hard to implement though), but people tend to be extremely proud implementing solutions like this ● Why on Earth does Ansible allow this? ● Please note that Ansible handlers run at the end of script execution
  • 22. Back to the CM process for a moment ● We want to run a set of microservices on top of a monolithic Linux kernel ● If this still makes sense, we can consider services as building blocks
  • 23. A dictionary for people from late 90s ● A microservice = a process ● A Docker image = a package ● Kubernetes = an operating system for microservices ● Helm = a package managing system (think apt in Debian or yum in RHEL) for Kubernetes
  • 24. Let’s try ● A microservice = a process
  • 25. What’s inside a lab ● A Vagrant-based Ansible-provisioned K8s setup ● 3 Vagrant boxes ● Using Kubespray (https://github.com/kubernetes-incubator/kubespray) to set up Kubernetes (Kubespray is where Ansible meets K8s) ● Using Helm to provision Kubernetes apps
  • 26. What’s inside a playbook
  • 28. Tired of dictionaries (the roads must roll!) ● Ansible = Helm ● Ansible role = Helm chart ● Python = Golang (this goes far beyond the scope of this session) ● Jinja templates = some custom templating engine ● ___ = tiller
  • 29. How Helm works ● Helm generated K8s YAML configs ● Helm transfers generated config files to the K8s cluster ● Tiller is an agent which runs in the cluster, effectively a cluster-side Helm service ● Tiller applies configuration files and labels a release ● Just like a Chef client 7 years ago but without a memory leak :)
  • 30. Helm charts repository ● It’s centralised ● It’s on GitHub (https://github.com/helm/charts) ● It grows very fast ● If you submit a patch it will be landed in about a month, which I consider quite fast
  • 31. Helm charts repository ● https://hub.kubeapps.com (a nice landing page for non-kinesthetic people)
  • 33. Templates are just declarative configs
  • 34. What’s wrong with Helm? ● Unfamiliar templating syntax (if you are not a Lisper)
  • 35. What’s wrong with K8s and Helm? ● They are written in Golang ● Really, seriously, please stop using Golang for everything! ● We are humans not rodents, we already invented nuclear bombing, Haskell and even soccer, why Golang after all???
  • 36. Conclusions ● Classical CM systems were never good ● Kubernetes and Helm are not good too, but we are just not fully aware yet ● And, frankly speaking, I don’t care
  • 37. Contacts • Alex Chistyakov • alexclear@gmail.com • +7-921-643-93-27 (Please don’t call me, I am a sociophobe) • @demeliorator (in Telegram and Skype)