When traditional configuration management is to slow for your needs

Kris Buytaert
Kris BuytaertDevops, Linux and Open Source Expert at Inuits
When your configurationWhen your configuration
management is too slow tomanagement is too slow to
reconfigure your infrareconfigure your infra
Kris Buytaert
@krisbuytaert
KrisKris BuytaertBuytaert
● I used to be a Dev,I used to be a Dev,
● Then Became an OpThen Became an Op
● Chief Trolling Officer and Open SourceChief Trolling Officer and Open Source
Consultant @inuits.euConsultant @inuits.eu
● Everything is an effing DNS ProblemEverything is an effing DNS Problem
● Building Clouds since before the bookstoreBuilding Clouds since before the bookstore
● Organising too many confs , #devopsdays,Organising too many confs , #devopsdays,
#loadays, #cfgmgmtcamp ...#loadays, #cfgmgmtcamp ...
● Evangelizing devopsEvangelizing devops
#devops=~C(L)AMS#devops=~C(L)AMS
● CultureCulture
● (Lean)(Lean)
● AutomationAutomation
● Monitoring and MeasurementMonitoring and Measurement
● SharingSharing
Damon Edwards and John WillisDamon Edwards and John Willis
Gene KimGene Kim
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeInfrastructure as Code
● Treat configuration automation as codeTreat configuration automation as code
● Development best practicesDevelopment best practices
•
Model your infrastructureModel your infrastructure
•
Version your cookbooks / manifestsVersion your cookbooks / manifests
•
Test your cookbooks/ manifestsTest your cookbooks/ manifests
•
Dev/ test /uat / prod for your infraDev/ test /uat / prod for your infra
● Model your infrastructureModel your infrastructure
● A working service = automated ( Application Code + Infrastructure Code + Security +A working service = automated ( Application Code + Infrastructure Code + Security +
Monitoring )Monitoring )
● IAC -ne scriptingIAC -ne scripting
3 types of files3 types of files
● Part of a packagePart of a package
•
rpm -qfrpm -qf
● Managed by configuration management toolsManaged by configuration management tools
•
““### This file is managed by ..”### This file is managed by ..”
● ““User” generated dataUser” generated data
•
Actual user dataActual user data
•
Logs ..Logs ..
Idempodent InfrastructureIdempodent Infrastructure
● Configuration management ensures stateConfiguration management ensures state
● Periodically,Periodically,
● Repeatedly,Repeatedly,
● Manual changes are revertedManual changes are reverted
Puppet for CfgMgmtPuppet for CfgMgmt
● Puppet is opensource,Puppet is opensource,
● Puppet makes your infra idempodent,Puppet makes your infra idempodent,
● Puppet scales,Puppet scales,
● Puppet runs every X minutes, orPuppet runs every X minutes, or
● Puppet is triggered on demandPuppet is triggered on demand
● A puppetrun takes between 3s and 10minA puppetrun takes between 3s and 10min
Typical ArchTypical Arch
● Puppet masterPuppet master
● Puppet agentsPuppet agents
● PuppetdbPuppetdb
Stored Configs andStored Configs and
Exported resourcesExported resources
Sometimes,Sometimes,
● That's not fast enough.That's not fast enough.
•
Think adding new nodes to a loadbalancedThink adding new nodes to a loadbalanced
setupsetup
•
Removing nodes from a load balanced setupRemoving nodes from a load balanced setup
•
Exported Resource + Collected resourceExported Resource + Collected resource
roundtrip is to slowroundtrip is to slow
Sometimes,Sometimes,
● That's not enough.That's not enough.
•
Containrz spinning up faster than nodesContainrz spinning up faster than nodes
•
AWS, when you don't want AWS LockInAWS, when you don't want AWS LockIn
CattleCattle
““In a not so distant future”In a not so distant future”
● People will build small minimal functionPeople will build small minimal function
applications that constantly talk to eachotherapplications that constantly talk to eachother
● They will want to know where the otherThey will want to know where the other
applications liveapplications live
● They will want to register their applications andThey will want to register their applications and
broadcast that to their peersbroadcast that to their peers
So you want service registration of your healthySo you want service registration of your healthy
(containerized) applications ?(containerized) applications ?
Consul.ioConsul.io
Consul.ioConsul.io
●
““Service discovery”Service discovery”
●
Failure detectionFailure detection
●
Using Gossip build on top of SerfUsing Gossip build on top of Serf
●
Random node 2 node communicationRandom node 2 node communication
●
A HashiCorp projectA HashiCorp project
Setting upSetting up
List membersList members
Defining a ServiceDefining a Service
Query ServicesQuery Services
YamaYama
● Yet another Mcollective AlternativeYet another Mcollective Alternative
git@github.com:solarkennedy/puppet-consul.gitgit@github.com:solarkennedy/puppet-consul.git
Puppet-consulPuppet-consul
Consul_templateConsul_template
● Dynamically refils your templates based onDynamically refils your templates based on
changes in consulchanges in consul
● Performs actions you definePerforms actions you define
● Go Template formatGo Template format
Puppet-consul_templatePuppet-consul_template
● git@github.com:KrisBuytaert/puppet-git@github.com:KrisBuytaert/puppet-
consul_template.gitconsul_template.git
● Might be merged into the puppet-consulMight be merged into the puppet-consul
modulemodule
PuppetizePuppetize
Live demoLive demo
Live DemoLive Demo
● 3 nodes3 nodes
● 1x Nginx template rewritten by consul1x Nginx template rewritten by consul
● 2x apache2x apache
● Monitoring_plugins based checkMonitoring_plugins based check
● Vagrantproject :Vagrantproject :
Other use casesOther use cases
● Monitoring + AlertingMonitoring + Alerting
● Service registrationService registration
Other approachesOther approaches
● HaProxy ?HaProxy ?
● LinuxHA / Corosync / .... ?LinuxHA / Corosync / .... ?
● ZookeeperZookeeper
● EtcdEtcd
●
Remember idempotenceRemember idempotence
● Consul seemed instableConsul seemed instable
● Puppet using old ruby json libPuppet using old ruby json lib
● Writing of json config was not idempodentWriting of json config was not idempodent
●
● Reconfiguring consul every single timeReconfiguring consul every single time
● Fixed now.Fixed now.
ContactContact
Kris BuytaertKris Buytaert Kris.Buytaert@inuits.beKris.Buytaert@inuits.be
Further ReadingFurther Reading
@krisbuytaert@krisbuytaert
http://www.krisbuytaert.be/blog/http://www.krisbuytaert.be/blog/
http://www.inuits.be/http://www.inuits.be/
InuitsInuits
Duboistraat 50Duboistraat 50
2060 Antwerpen2060 Antwerpen
BelgiumBelgium
891.514.231891.514.231
+32 475 961221+32 475 961221
1 of 32

Recommended

My talk at Linux Piter 2015 by
My talk at Linux Piter 2015My talk at Linux Piter 2015
My talk at Linux Piter 2015Alex Chistyakov
5.9K views44 slides
Harry Potter and the Daemons of Berkeley by
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyAlex Chistyakov
1.3K views25 slides
Config Management Camp 2017 - If it moves, give it a pipeline by
Config Management Camp 2017 - If it moves, give it a pipelineConfig Management Camp 2017 - If it moves, give it a pipeline
Config Management Camp 2017 - If it moves, give it a pipelineMark Rendell
679 views27 slides
Adopting the IBM Continuous Engineering (CE) solution Configuration Managemen... by
Adopting the IBM Continuous Engineering (CE) solution Configuration Managemen...Adopting the IBM Continuous Engineering (CE) solution Configuration Managemen...
Adopting the IBM Continuous Engineering (CE) solution Configuration Managemen...Tim Feeney
1.3K views41 slides
Another 7 tools for your #devops stack by
Another 7 tools for your #devops stackAnother 7 tools for your #devops stack
Another 7 tools for your #devops stackKris Buytaert
1.6K views46 slides
Automating MySQL operations with Puppet by
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with PuppetKris Buytaert
1.8K views51 slides

More Related Content

Similar to When traditional configuration management is to slow for your needs

Pipeline as code for your infrastructure as Code by
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
1.9K views59 slides
Run stuff, Deploy Stuff, Jax London 2017 Edition by
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionKris Buytaert
2.2K views46 slides
Continous Delivery of your Infrastructure by
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your InfrastructureKris Buytaert
857 views50 slides
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert by
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertOSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertNETWAYS
81 views46 slides
Open Source Monitoring in 2019 by
Open Source Monitoring in 2019 Open Source Monitoring in 2019
Open Source Monitoring in 2019 Kris Buytaert
1.5K views56 slides
The Return of the Dull Stack Engineer by
The Return of the Dull Stack EngineerThe Return of the Dull Stack Engineer
The Return of the Dull Stack EngineerKris Buytaert
2.4K views51 slides

Similar to When traditional configuration management is to slow for your needs(20)

Pipeline as code for your infrastructure as Code by Kris Buytaert
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
Kris Buytaert1.9K views
Run stuff, Deploy Stuff, Jax London 2017 Edition by Kris Buytaert
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
Kris Buytaert2.2K views
Continous Delivery of your Infrastructure by Kris Buytaert
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
Kris Buytaert857 views
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert by NETWAYS
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertOSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
NETWAYS81 views
Open Source Monitoring in 2019 by Kris Buytaert
Open Source Monitoring in 2019 Open Source Monitoring in 2019
Open Source Monitoring in 2019
Kris Buytaert1.5K views
The Return of the Dull Stack Engineer by Kris Buytaert
The Return of the Dull Stack EngineerThe Return of the Dull Stack Engineer
The Return of the Dull Stack Engineer
Kris Buytaert2.4K views
Monitoring in an Infrastructure as Code Age by Puppet
Monitoring in an Infrastructure as Code AgeMonitoring in an Infrastructure as Code Age
Monitoring in an Infrastructure as Code Age
Puppet7.2K views
Closing the gap between Distros(devs) and their Users(ops) by Kris Buytaert
Closing the gap between Distros(devs) and their Users(ops)Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)
Kris Buytaert15.9K views
Continuous Delivery of (y)our infrastructure. by Kris Buytaert
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.
Kris Buytaert3K views
Continuous Infrastructure First by Kris Buytaert
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
Kris Buytaert521 views
Open Source Monitoring in 2015 by Kris Buytaert
Open Source Monitoring in 2015Open Source Monitoring in 2015
Open Source Monitoring in 2015
Kris Buytaert2.3K views
Monitoring Drupal In an Infrastructure as Code Age by Kris Buytaert
Monitoring Drupal In an Infrastructure as Code AgeMonitoring Drupal In an Infrastructure as Code Age
Monitoring Drupal In an Infrastructure as Code Age
Kris Buytaert10.6K views
Groovy there's a docker in my application pipeline by Kris Buytaert
Groovy there's a docker in my application pipelineGroovy there's a docker in my application pipeline
Groovy there's a docker in my application pipeline
Kris Buytaert1.3K views
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert by NETWAYS
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
NETWAYS152 views
Monitoring in an Infrastructure as Code Age by Kris Buytaert
Monitoring in an Infrastructure as Code AgeMonitoring in an Infrastructure as Code Age
Monitoring in an Infrastructure as Code Age
Kris Buytaert12K views
Deploying your SaaS stack OnPrem by Kris Buytaert
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
Kris Buytaert681 views

More from Kris Buytaert

Years of (not) learning , from devops to devoops by
Years of (not) learning , from devops to devoopsYears of (not) learning , from devops to devoops
Years of (not) learning , from devops to devoopsKris Buytaert
65 views44 slides
Observability will not fix your Broken Monitoring ,Ignite by
Observability will not fix your Broken Monitoring ,IgniteObservability will not fix your Broken Monitoring ,Ignite
Observability will not fix your Broken Monitoring ,IgniteKris Buytaert
167 views20 slides
Infrastructure as Code Patterns by
Infrastructure as Code PatternsInfrastructure as Code Patterns
Infrastructure as Code PatternsKris Buytaert
117 views53 slides
From devoops to devops 13 years of (not) learning by
From devoops to devops 13 years of (not) learningFrom devoops to devops 13 years of (not) learning
From devoops to devops 13 years of (not) learningKris Buytaert
185 views40 slides
Pipeline all the Dashboards as Code by
Pipeline all the Dashboards as CodePipeline all the Dashboards as Code
Pipeline all the Dashboards as CodeKris Buytaert
644 views20 slides
Help , My Datacenter is on fire by
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fireKris Buytaert
542 views38 slides

More from Kris Buytaert(20)

Years of (not) learning , from devops to devoops by Kris Buytaert
Years of (not) learning , from devops to devoopsYears of (not) learning , from devops to devoops
Years of (not) learning , from devops to devoops
Kris Buytaert65 views
Observability will not fix your Broken Monitoring ,Ignite by Kris Buytaert
Observability will not fix your Broken Monitoring ,IgniteObservability will not fix your Broken Monitoring ,Ignite
Observability will not fix your Broken Monitoring ,Ignite
Kris Buytaert167 views
Infrastructure as Code Patterns by Kris Buytaert
Infrastructure as Code PatternsInfrastructure as Code Patterns
Infrastructure as Code Patterns
Kris Buytaert117 views
From devoops to devops 13 years of (not) learning by Kris Buytaert
From devoops to devops 13 years of (not) learningFrom devoops to devops 13 years of (not) learning
From devoops to devops 13 years of (not) learning
Kris Buytaert185 views
Pipeline all the Dashboards as Code by Kris Buytaert
Pipeline all the Dashboards as CodePipeline all the Dashboards as Code
Pipeline all the Dashboards as Code
Kris Buytaert644 views
Help , My Datacenter is on fire by Kris Buytaert
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fire
Kris Buytaert542 views
Devops is Dead, Long live Devops by Kris Buytaert
Devops is Dead, Long live DevopsDevops is Dead, Long live Devops
Devops is Dead, Long live Devops
Kris Buytaert289 views
10 years of #devopsdays, but what have we really learned ? by Kris Buytaert
10 years of #devopsdays, but what have we really learned ? 10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ?
Kris Buytaert594 views
Continuous Infrastructure First by Kris Buytaert
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
Kris Buytaert568 views
Is there a Future for devops ? by Kris Buytaert
Is there a Future for devops   ? Is there a Future for devops   ?
Is there a Future for devops ?
Kris Buytaert478 views
10 Years of #devopsdays weirdness by Kris Buytaert
10 Years of #devopsdays weirdness10 Years of #devopsdays weirdness
10 Years of #devopsdays weirdness
Kris Buytaert400 views
ADDO 2019: Looking back at over 10 years of Devops by Kris Buytaert
ADDO 2019:    Looking back at over 10 years of DevopsADDO 2019:    Looking back at over 10 years of Devops
ADDO 2019: Looking back at over 10 years of Devops
Kris Buytaert578 views
Continuous Infrastructure First Ignite Edition by Kris Buytaert
Continuous Infrastructure First  Ignite EditionContinuous Infrastructure First  Ignite Edition
Continuous Infrastructure First Ignite Edition
Kris Buytaert476 views
Devops is a Security Requirement by Kris Buytaert
Devops is a Security RequirementDevops is a Security Requirement
Devops is a Security Requirement
Kris Buytaert699 views
Is there a future for devops ? by Kris Buytaert
Is there a future for devops ?Is there a future for devops ?
Is there a future for devops ?
Kris Buytaert3.5K views
Looking back at 5 years of #cfgmgmtcamp by Kris Buytaert
Looking back at 5 years of #cfgmgmtcampLooking back at 5 years of #cfgmgmtcamp
Looking back at 5 years of #cfgmgmtcamp
Kris Buytaert625 views
Moby is killing your devops efforts by Kris Buytaert
Moby is killing your devops effortsMoby is killing your devops efforts
Moby is killing your devops efforts
Kris Buytaert2.7K views

Recently uploaded

Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
21 views35 slides
Unit 1_Lecture 2_Physical Design of IoT.pdf by
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdfStephenTec
11 views36 slides
Tunable Laser (1).pptx by
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
23 views37 slides
1st parposal presentation.pptx by
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptxi238212
9 views3 slides
Case Study Copenhagen Energy and Business Central.pdf by
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdfAitana
12 views3 slides
Lilypad @ Labweek, Istanbul, 2023.pdf by
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdfAlly339821
9 views45 slides

Recently uploaded(20)

Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec11 views
1st parposal presentation.pptx by i238212
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptx
i2382129 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana12 views
Lilypad @ Labweek, Istanbul, 2023.pdf by Ally339821
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdf
Ally3398219 views
Attacking IoT Devices from a Web Perspective - Linux Day by Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri15 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson33 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb12 views
Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada130 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi120 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab15 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker26 views
Spesifikasi Lengkap ASUS Vivobook Go 14 by Dot Semarang
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14
Dot Semarang35 views
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma17 views

When traditional configuration management is to slow for your needs

  • 1. When your configurationWhen your configuration management is too slow tomanagement is too slow to reconfigure your infrareconfigure your infra Kris Buytaert @krisbuytaert
  • 2. KrisKris BuytaertBuytaert ● I used to be a Dev,I used to be a Dev, ● Then Became an OpThen Became an Op ● Chief Trolling Officer and Open SourceChief Trolling Officer and Open Source Consultant @inuits.euConsultant @inuits.eu ● Everything is an effing DNS ProblemEverything is an effing DNS Problem ● Building Clouds since before the bookstoreBuilding Clouds since before the bookstore ● Organising too many confs , #devopsdays,Organising too many confs , #devopsdays, #loadays, #cfgmgmtcamp ...#loadays, #cfgmgmtcamp ... ● Evangelizing devopsEvangelizing devops
  • 3. #devops=~C(L)AMS#devops=~C(L)AMS ● CultureCulture ● (Lean)(Lean) ● AutomationAutomation ● Monitoring and MeasurementMonitoring and Measurement ● SharingSharing Damon Edwards and John WillisDamon Edwards and John Willis Gene KimGene Kim
  • 5. Infrastructure as CodeInfrastructure as Code ● Treat configuration automation as codeTreat configuration automation as code ● Development best practicesDevelopment best practices • Model your infrastructureModel your infrastructure • Version your cookbooks / manifestsVersion your cookbooks / manifests • Test your cookbooks/ manifestsTest your cookbooks/ manifests • Dev/ test /uat / prod for your infraDev/ test /uat / prod for your infra ● Model your infrastructureModel your infrastructure ● A working service = automated ( Application Code + Infrastructure Code + Security +A working service = automated ( Application Code + Infrastructure Code + Security + Monitoring )Monitoring ) ● IAC -ne scriptingIAC -ne scripting
  • 6. 3 types of files3 types of files ● Part of a packagePart of a package • rpm -qfrpm -qf ● Managed by configuration management toolsManaged by configuration management tools • ““### This file is managed by ..”### This file is managed by ..” ● ““User” generated dataUser” generated data • Actual user dataActual user data • Logs ..Logs ..
  • 7. Idempodent InfrastructureIdempodent Infrastructure ● Configuration management ensures stateConfiguration management ensures state ● Periodically,Periodically, ● Repeatedly,Repeatedly, ● Manual changes are revertedManual changes are reverted
  • 8. Puppet for CfgMgmtPuppet for CfgMgmt ● Puppet is opensource,Puppet is opensource, ● Puppet makes your infra idempodent,Puppet makes your infra idempodent, ● Puppet scales,Puppet scales, ● Puppet runs every X minutes, orPuppet runs every X minutes, or ● Puppet is triggered on demandPuppet is triggered on demand ● A puppetrun takes between 3s and 10minA puppetrun takes between 3s and 10min
  • 9. Typical ArchTypical Arch ● Puppet masterPuppet master ● Puppet agentsPuppet agents ● PuppetdbPuppetdb
  • 10. Stored Configs andStored Configs and Exported resourcesExported resources
  • 11. Sometimes,Sometimes, ● That's not fast enough.That's not fast enough. • Think adding new nodes to a loadbalancedThink adding new nodes to a loadbalanced setupsetup • Removing nodes from a load balanced setupRemoving nodes from a load balanced setup • Exported Resource + Collected resourceExported Resource + Collected resource roundtrip is to slowroundtrip is to slow
  • 12. Sometimes,Sometimes, ● That's not enough.That's not enough. • Containrz spinning up faster than nodesContainrz spinning up faster than nodes • AWS, when you don't want AWS LockInAWS, when you don't want AWS LockIn
  • 14. ““In a not so distant future”In a not so distant future” ● People will build small minimal functionPeople will build small minimal function applications that constantly talk to eachotherapplications that constantly talk to eachother ● They will want to know where the otherThey will want to know where the other applications liveapplications live ● They will want to register their applications andThey will want to register their applications and broadcast that to their peersbroadcast that to their peers
  • 15. So you want service registration of your healthySo you want service registration of your healthy (containerized) applications ?(containerized) applications ?
  • 17. Consul.ioConsul.io ● ““Service discovery”Service discovery” ● Failure detectionFailure detection ● Using Gossip build on top of SerfUsing Gossip build on top of Serf ● Random node 2 node communicationRandom node 2 node communication ● A HashiCorp projectA HashiCorp project
  • 22. YamaYama ● Yet another Mcollective AlternativeYet another Mcollective Alternative
  • 24. Consul_templateConsul_template ● Dynamically refils your templates based onDynamically refils your templates based on changes in consulchanges in consul ● Performs actions you definePerforms actions you define ● Go Template formatGo Template format
  • 28. Live DemoLive Demo ● 3 nodes3 nodes ● 1x Nginx template rewritten by consul1x Nginx template rewritten by consul ● 2x apache2x apache ● Monitoring_plugins based checkMonitoring_plugins based check ● Vagrantproject :Vagrantproject :
  • 29. Other use casesOther use cases ● Monitoring + AlertingMonitoring + Alerting ● Service registrationService registration
  • 30. Other approachesOther approaches ● HaProxy ?HaProxy ? ● LinuxHA / Corosync / .... ?LinuxHA / Corosync / .... ? ● ZookeeperZookeeper ● EtcdEtcd ●
  • 31. Remember idempotenceRemember idempotence ● Consul seemed instableConsul seemed instable ● Puppet using old ruby json libPuppet using old ruby json lib ● Writing of json config was not idempodentWriting of json config was not idempodent ● ● Reconfiguring consul every single timeReconfiguring consul every single time ● Fixed now.Fixed now.
  • 32. ContactContact Kris BuytaertKris Buytaert Kris.Buytaert@inuits.beKris.Buytaert@inuits.be Further ReadingFurther Reading @krisbuytaert@krisbuytaert http://www.krisbuytaert.be/blog/http://www.krisbuytaert.be/blog/ http://www.inuits.be/http://www.inuits.be/ InuitsInuits Duboistraat 50Duboistraat 50 2060 Antwerpen2060 Antwerpen BelgiumBelgium 891.514.231891.514.231 +32 475 961221+32 475 961221