SlideShare una empresa de Scribd logo
1 de 23
Idempotence and Immutability
Configuration Management Theory
Gael Colas
Cloud Automation Architect
Operations
Engineering
Automation
PaaS/IaaS Development
Dev Ops
PSCONF.EU
My Ads@gaelcolas
Definitions
 Immutable
An object whose state cannot be modified after it is created. Wikipedia
 Idempotence
Can be applied multiple times without changing the result beyond the initial
application. Wikipedia
 You want Idempotence, AND convergence to a finite state.
Our Goal today
Quick look at configuration Management approaches
An exploration down the rabbit hole
Paradigm shift
Glimpse of the (close) future
The Approach
Bad: The pets
Better: The cattle
Best: The Chickens
BAD: the Pets
Why? Because downtime is painful, and Recovery is hard!
 Provide a catalogue of service
 Everything is mission critical
 No unexpected down time allowed
 Planned downtime, OoOH,
if you beg long enough
What mindset?
 Build once – don’t touch, ever
 Small patch is a quick win, right?
 Management said ‘done by Yesterday’
 Don’t trust the doc, it’s out of date
 Ask Bob, it’s his box, he’s done black magic
 Changes are too risky, don’t do it
In the Trenches?
The Deep dive with the 5 Whys
1. Because downtime is painful, and Recovery is hard!
2. Recovery takes a long time, business is impacted, Ops are busy firefighting
3. We thought controlled change would have no impact, but this is more complex
4. Probably because of domino effect, the state of the machine was not as we expected
5. Maybe the person doing the changes did not know its exact configuration
Why do we have this mindset?
“The first step in solving a problem is to recognize that it does exist.” Zig Ziglar
Down the Rabbit Hole
The Problem
Mike Scott Joe
What could possibly go wrong?
CHANGE 1 CHANGE 2 CHANGE 3
An abstraction model for Configuration
Mathematical Thinking and problem solving
CHANGE 1 CHANGE 2 CHANGE 3
A B C D
AB BC CD
BA CB DC
Rollback Rollback Rollback
An abstraction model for Configuration
Mathematical Thinking and problem solving
A B
C
D
AB
BC CD
BA
CB
DC
F
FD
DF
E
EB
BE
An abstraction model for Configuration
Mathematical Thinking and problem solving
A
F
E
An abstraction model for Configuration
Mathematical Thinking and problem solving
A
E
F A  F = ABBCCDDF
A  E = ABBE
0
50
100
150
200
250
300
350
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
An abstraction model for Configuration
Mathematical Thinking and problem solving
For x the number of configuration State,
y the number of transitions.
In the abstracted view y = x -1
In reality, when you expect the sysadmin
To support each transition, including rollback,
of each state:
The number of transitions is y = (x*(x-1))
0
2
4
6
8
10
12
14
16
18
0 5 10 15 20
Aim for immutability
Mathematical Thinking and problem solving
A
F
E
Transitional state
A custom template or image is not a starting point
X
Better: The Cattle
 Provide a catalogue of service
 High MTBF and low MTTR, it WILL die anyway…
quick recovery, not avoid failure
 Minimum unexpected down time
Not because of human error
 Down time of a server ≠ down time of service
What mindset?
 Policy Driven Infrastructure - IaC
 Versioning traces changes to policy
 Catch problem early
 Test thoroughly, and all its dependents
 Does it add the expected value?
 Does it work without causing an outage?
 How do I keep it consistent over time?
In the trenches?
YES! The Release Pipeline Model!
Why does this work?
 You know what you are expecting: The policy
 You know what as changed, by whom, and hopefully why: The versioning
 You know they work: The tests
 You know they’re delivered: The operational validation
If it does not work after release:
- Rollback the policy if necessary
- Catch (in test/Validation) and it will never happen again
Best: The Chickens
 Short life expectancy
 Small foot print per unit
 Cheaper to replace than fix or change
 Undifferentiated from similar species
The horrible but true analogy
Why *aiming* for immutability?
 Big footprints slows transitions
 Say you have a 100GB image to roll out to 100 servers, it takes time to generate, distribute and
roll out
 You have dependencies
 You have collocated roles on a server: one service can’t have down time
 Simple transitions cheaper because of footprints
 Adding Cores
 Adding RAM
 Offline patching of an image
KEEP TRANSITIONS TO A MINIMUM, AND EXPLICIT
Chickens: Containers & Nano Server
 Small footprints
 Can change, test and distribute fast
 Shorten the iteration/feedback loop
 Decoupled tasks
 microservices architecture
 Higher number of short-lived, small footprints systems
 Immutable
 Container: The Transparent sealed box, for dedicated service
 Nano: Headless server, cheaper to replace than fix
Summary
 Use the Release Pipeline Model
 Don’t migrate, but Reverse-engineer your servers
 Use a Policy Driven Infrastructure – aka Infrastructure As code
 Test your convergence and validate the delivery
 Manage your servers like cattle
 You define the roles you need, the CM ‘makes it so’
 They’re almost identical, and go through the same automated mould
 Their name does not matter
 Aim for chickens
 Think immutability, microservices, Nano server, containers, and Event Sourcing
Questions?
Thank you. Feel free to grab me for a chat!
PSCONF.EU
@gaelcolas
Enough Time for a quick DEMO?
 Your Next step:
 How To reverse Engineer your Server Config?
 Remember that Chef, Puppet (tools) support DSC (platform)
 ChefDK + Test-Kitchen + Kitchen-DSC (+ kitchen-hyperv)
 You don’t need to know or use Chef
 Getting Started
 Workflow
New
KitchenVM
Connect Configure TEST

Más contenido relacionado

La actualidad más candente

Microservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareMicroservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareChristophe Marchal
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryEberhard Wolff
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Puppet
 
3 Tips to Deliver Fast Performance Across Mobile Web
3 Tips to Deliver Fast Performance Across Mobile Web3 Tips to Deliver Fast Performance Across Mobile Web
3 Tips to Deliver Fast Performance Across Mobile WebDynatrace
 
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.comAdvanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.comDevOpsDays Tel Aviv
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysAndreas Grabner
 
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...Modern Operations at Scale within Viasat – How to Structure Teams and Build A...
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...Atlassian
 
AWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next LevelAWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next LevelDynatrace
 
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesLessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesVMware Tanzu
 
Continuously Integrating Distributed Code at Netflix
Continuously Integrating Distributed Code at NetflixContinuously Integrating Distributed Code at Netflix
Continuously Integrating Distributed Code at NetflixAtlassian
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your momAndreas Grabner
 
Intro to Puppet Enterprise
Intro to Puppet EnterpriseIntro to Puppet Enterprise
Intro to Puppet EnterprisePuppet
 
Accelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to LaunchAccelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to LaunchAtlassian
 
Troubleshooting ASP.NET and IIS Scalability Hotspots
Troubleshooting ASP.NET and IIS Scalability HotspotsTroubleshooting ASP.NET and IIS Scalability Hotspots
Troubleshooting ASP.NET and IIS Scalability HotspotsDynatrace
 
Introduction to Puppet Enterprise 2016.2
Introduction to Puppet Enterprise 2016.2Introduction to Puppet Enterprise 2016.2
Introduction to Puppet Enterprise 2016.2Puppet
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practicespanayaofficial
 
A Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOpsA Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOpsAndreas Grabner
 

La actualidad más candente (20)

Microservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareMicroservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or Nightmare
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
 
3 Tips to Deliver Fast Performance Across Mobile Web
3 Tips to Deliver Fast Performance Across Mobile Web3 Tips to Deliver Fast Performance Across Mobile Web
3 Tips to Deliver Fast Performance Across Mobile Web
 
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.comAdvanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
 
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...Modern Operations at Scale within Viasat – How to Structure Teams and Build A...
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...
 
AWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next LevelAWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next Level
 
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesLessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
 
Continuously Integrating Distributed Code at Netflix
Continuously Integrating Distributed Code at NetflixContinuously Integrating Distributed Code at Netflix
Continuously Integrating Distributed Code at Netflix
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your mom
 
Cloud Needs Devops
Cloud Needs DevopsCloud Needs Devops
Cloud Needs Devops
 
Cd syd
Cd sydCd syd
Cd syd
 
Intro to Puppet Enterprise
Intro to Puppet EnterpriseIntro to Puppet Enterprise
Intro to Puppet Enterprise
 
Accelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to LaunchAccelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to Launch
 
Troubleshooting ASP.NET and IIS Scalability Hotspots
Troubleshooting ASP.NET and IIS Scalability HotspotsTroubleshooting ASP.NET and IIS Scalability Hotspots
Troubleshooting ASP.NET and IIS Scalability Hotspots
 
Introduction to Puppet Enterprise 2016.2
Introduction to Puppet Enterprise 2016.2Introduction to Puppet Enterprise 2016.2
Introduction to Puppet Enterprise 2016.2
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practices
 
A Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOpsA Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOps
 
What DevOps Isn't
What DevOps Isn'tWhat DevOps Isn't
What DevOps Isn't
 

Destacado

WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf
 
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...WinOps Conf
 
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...WinOps Conf
 
Ed Elliott - Practical DSC in Azure
Ed Elliott - Practical DSC in AzureEd Elliott - Practical DSC in Azure
Ed Elliott - Practical DSC in AzureWinOps Conf
 
Connon MacRae - Evolution of Ticketmaster's journey to DevOps
Connon MacRae - Evolution of Ticketmaster's journey to DevOpsConnon MacRae - Evolution of Ticketmaster's journey to DevOps
Connon MacRae - Evolution of Ticketmaster's journey to DevOpsWinOps Conf
 
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure ProvisioningRik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure ProvisioningWinOps Conf
 
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...WinOps Conf
 
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows ServerWinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows ServerWinOps Conf
 
New Relic - Digital Intelligence - Meetup #12
New Relic - Digital Intelligence - Meetup #12New Relic - Digital Intelligence - Meetup #12
New Relic - Digital Intelligence - Meetup #12WinOps Conf
 
Neil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveNeil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveWinOps Conf
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf
 
Flynn Bundy - 60 micro-services in 6 months
Flynn Bundy - 60 micro-services in 6 months Flynn Bundy - 60 micro-services in 6 months
Flynn Bundy - 60 micro-services in 6 months WinOps Conf
 
WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...
WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...
WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...WinOps Conf
 
Sam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering SystemSam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering SystemWinOps Conf
 
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...WinOps Conf
 
Alex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
Alex Magnay - Azure Infrastructure as Code with Hashicorp TerraformAlex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
Alex Magnay - Azure Infrastructure as Code with Hashicorp TerraformWinOps Conf
 

Destacado (16)

WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
 
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
 
Ed Elliott - Practical DSC in Azure
Ed Elliott - Practical DSC in AzureEd Elliott - Practical DSC in Azure
Ed Elliott - Practical DSC in Azure
 
Connon MacRae - Evolution of Ticketmaster's journey to DevOps
Connon MacRae - Evolution of Ticketmaster's journey to DevOpsConnon MacRae - Evolution of Ticketmaster's journey to DevOps
Connon MacRae - Evolution of Ticketmaster's journey to DevOps
 
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure ProvisioningRik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
 
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
 
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows ServerWinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
 
New Relic - Digital Intelligence - Meetup #12
New Relic - Digital Intelligence - Meetup #12New Relic - Digital Intelligence - Meetup #12
New Relic - Digital Intelligence - Meetup #12
 
Neil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveNeil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep Dive
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
Flynn Bundy - 60 micro-services in 6 months
Flynn Bundy - 60 micro-services in 6 months Flynn Bundy - 60 micro-services in 6 months
Flynn Bundy - 60 micro-services in 6 months
 
WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...
WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...
WinOps Conf 2016 - Richard Siddaway - DevOps With Nano Server and Windows Con...
 
Sam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering SystemSam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering System
 
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
 
Alex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
Alex Magnay - Azure Infrastructure as Code with Hashicorp TerraformAlex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
Alex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
 

Similar a Idempotence and Immutability in Configuration Management

Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible PipelineRsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible PipelineSanjana Chowdhury
 
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAEdge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAAkamai Technologies
 
Herding cats in the Cloud
Herding cats in the CloudHerding cats in the Cloud
Herding cats in the CloudDewey Sasser
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation WorkshopJules Pierre-Louis
 
Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Keeping Your DevOps Transformation From Crushing Your Ops Capacity Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Keeping Your DevOps Transformation From Crushing Your Ops Capacity Rundeck
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekrantav
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth PresentationEric Ries
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth PresentationTimothy Fitz
 
Enough Blame for System Performance Issues
Enough Blame for System Performance IssuesEnough Blame for System Performance Issues
Enough Blame for System Performance IssuesMahesh Vallampati
 
Bootiful Microservices in a Legacy Environment: Lessons Learned
Bootiful Microservices in a Legacy Environment: Lessons LearnedBootiful Microservices in a Legacy Environment: Lessons Learned
Bootiful Microservices in a Legacy Environment: Lessons LearnedVMware Tanzu
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auevanbottcher
 
Expecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningExpecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningAtlassian
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015Yuval Yeret
 
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Andreas Grabner
 
Testing within an Agile Environment - Beyza Sakir and Chris Gollop
Testing within an Agile Environment - Beyza Sakir and Chris GollopTesting within an Agile Environment - Beyza Sakir and Chris Gollop
Testing within an Agile Environment - Beyza Sakir and Chris GollopJAXLondon2014
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)Mike Subelsky
 
Patella railsconf 2012
Patella railsconf 2012Patella railsconf 2012
Patella railsconf 2012Jeff Dwyer
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Pythondidip
 
Questions Log: Dynamic Cubes – Set to Retire Transformer?
Questions Log: Dynamic Cubes – Set to Retire Transformer?Questions Log: Dynamic Cubes – Set to Retire Transformer?
Questions Log: Dynamic Cubes – Set to Retire Transformer?Senturus
 

Similar a Idempotence and Immutability in Configuration Management (20)

Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible PipelineRsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
 
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAEdge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
 
Herding cats in the Cloud
Herding cats in the CloudHerding cats in the Cloud
Herding cats in the Cloud
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation Workshop
 
Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Keeping Your DevOps Transformation From Crushing Your Ops Capacity Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Keeping Your DevOps Transformation From Crushing Your Ops Capacity
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
 
Enough Blame for System Performance Issues
Enough Blame for System Performance IssuesEnough Blame for System Performance Issues
Enough Blame for System Performance Issues
 
Bootiful Microservices in a Legacy Environment: Lessons Learned
Bootiful Microservices in a Legacy Environment: Lessons LearnedBootiful Microservices in a Legacy Environment: Lessons Learned
Bootiful Microservices in a Legacy Environment: Lessons Learned
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.au
 
Expecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningExpecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance Tuning
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015
 
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
 
Testing within an Agile Environment - Beyza Sakir and Chris Gollop
Testing within an Agile Environment - Beyza Sakir and Chris GollopTesting within an Agile Environment - Beyza Sakir and Chris Gollop
Testing within an Agile Environment - Beyza Sakir and Chris Gollop
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)
 
Patella railsconf 2012
Patella railsconf 2012Patella railsconf 2012
Patella railsconf 2012
 
Os Solomon
Os SolomonOs Solomon
Os Solomon
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
 
Questions Log: Dynamic Cubes – Set to Retire Transformer?
Questions Log: Dynamic Cubes – Set to Retire Transformer?Questions Log: Dynamic Cubes – Set to Retire Transformer?
Questions Log: Dynamic Cubes – Set to Retire Transformer?
 

Último

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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 Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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 Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Idempotence and Immutability in Configuration Management

  • 2. Gael Colas Cloud Automation Architect Operations Engineering Automation PaaS/IaaS Development Dev Ops PSCONF.EU My Ads@gaelcolas
  • 3. Definitions  Immutable An object whose state cannot be modified after it is created. Wikipedia  Idempotence Can be applied multiple times without changing the result beyond the initial application. Wikipedia  You want Idempotence, AND convergence to a finite state.
  • 4. Our Goal today Quick look at configuration Management approaches An exploration down the rabbit hole Paradigm shift Glimpse of the (close) future
  • 5. The Approach Bad: The pets Better: The cattle Best: The Chickens
  • 6. BAD: the Pets Why? Because downtime is painful, and Recovery is hard!  Provide a catalogue of service  Everything is mission critical  No unexpected down time allowed  Planned downtime, OoOH, if you beg long enough What mindset?  Build once – don’t touch, ever  Small patch is a quick win, right?  Management said ‘done by Yesterday’  Don’t trust the doc, it’s out of date  Ask Bob, it’s his box, he’s done black magic  Changes are too risky, don’t do it In the Trenches?
  • 7. The Deep dive with the 5 Whys 1. Because downtime is painful, and Recovery is hard! 2. Recovery takes a long time, business is impacted, Ops are busy firefighting 3. We thought controlled change would have no impact, but this is more complex 4. Probably because of domino effect, the state of the machine was not as we expected 5. Maybe the person doing the changes did not know its exact configuration Why do we have this mindset? “The first step in solving a problem is to recognize that it does exist.” Zig Ziglar
  • 8. Down the Rabbit Hole The Problem Mike Scott Joe What could possibly go wrong? CHANGE 1 CHANGE 2 CHANGE 3
  • 9. An abstraction model for Configuration Mathematical Thinking and problem solving CHANGE 1 CHANGE 2 CHANGE 3 A B C D AB BC CD BA CB DC Rollback Rollback Rollback
  • 10. An abstraction model for Configuration Mathematical Thinking and problem solving A B C D AB BC CD BA CB DC F FD DF E EB BE
  • 11. An abstraction model for Configuration Mathematical Thinking and problem solving A F E
  • 12. An abstraction model for Configuration Mathematical Thinking and problem solving A E F A  F = ABBCCDDF A  E = ABBE
  • 13. 0 50 100 150 200 250 300 350 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 An abstraction model for Configuration Mathematical Thinking and problem solving For x the number of configuration State, y the number of transitions. In the abstracted view y = x -1 In reality, when you expect the sysadmin To support each transition, including rollback, of each state: The number of transitions is y = (x*(x-1)) 0 2 4 6 8 10 12 14 16 18 0 5 10 15 20
  • 14. Aim for immutability Mathematical Thinking and problem solving A F E
  • 15. Transitional state A custom template or image is not a starting point X
  • 16. Better: The Cattle  Provide a catalogue of service  High MTBF and low MTTR, it WILL die anyway… quick recovery, not avoid failure  Minimum unexpected down time Not because of human error  Down time of a server ≠ down time of service What mindset?  Policy Driven Infrastructure - IaC  Versioning traces changes to policy  Catch problem early  Test thoroughly, and all its dependents  Does it add the expected value?  Does it work without causing an outage?  How do I keep it consistent over time? In the trenches? YES! The Release Pipeline Model!
  • 17. Why does this work?  You know what you are expecting: The policy  You know what as changed, by whom, and hopefully why: The versioning  You know they work: The tests  You know they’re delivered: The operational validation If it does not work after release: - Rollback the policy if necessary - Catch (in test/Validation) and it will never happen again
  • 18. Best: The Chickens  Short life expectancy  Small foot print per unit  Cheaper to replace than fix or change  Undifferentiated from similar species The horrible but true analogy
  • 19. Why *aiming* for immutability?  Big footprints slows transitions  Say you have a 100GB image to roll out to 100 servers, it takes time to generate, distribute and roll out  You have dependencies  You have collocated roles on a server: one service can’t have down time  Simple transitions cheaper because of footprints  Adding Cores  Adding RAM  Offline patching of an image KEEP TRANSITIONS TO A MINIMUM, AND EXPLICIT
  • 20. Chickens: Containers & Nano Server  Small footprints  Can change, test and distribute fast  Shorten the iteration/feedback loop  Decoupled tasks  microservices architecture  Higher number of short-lived, small footprints systems  Immutable  Container: The Transparent sealed box, for dedicated service  Nano: Headless server, cheaper to replace than fix
  • 21. Summary  Use the Release Pipeline Model  Don’t migrate, but Reverse-engineer your servers  Use a Policy Driven Infrastructure – aka Infrastructure As code  Test your convergence and validate the delivery  Manage your servers like cattle  You define the roles you need, the CM ‘makes it so’  They’re almost identical, and go through the same automated mould  Their name does not matter  Aim for chickens  Think immutability, microservices, Nano server, containers, and Event Sourcing
  • 22. Questions? Thank you. Feel free to grab me for a chat! PSCONF.EU @gaelcolas
  • 23. Enough Time for a quick DEMO?  Your Next step:  How To reverse Engineer your Server Config?  Remember that Chef, Puppet (tools) support DSC (platform)  ChefDK + Test-Kitchen + Kitchen-DSC (+ kitchen-hyperv)  You don’t need to know or use Chef  Getting Started  Workflow New KitchenVM Connect Configure TEST

Notas del editor

  1. Good afternoon and Welcome to a presentation about Idempotence and Immutability. That may sounds new and shiny, but it’s only concepts of Configuration Management Theory.
  2. My name is Gael. I’m a “Cloud Automation Architect” consultant. I come from an Ops background where I started in 1st line support for IT. I evolved towards engineering, before focusing mostly on automation, to end up where I am now, developing PaaS and IaaS solutions for a Cloud Provider. In short that stickman is me, having fun and inadvertently ending up on the Dev side. I’m a DevOps enthusiast, I attend the WinOps meetups which I recommend. Because sharing is caring, I try to write anything technical in my new blog, and DevOps related stuff on DevOpsCollective.org, which is maintained by the not for profit organization DevOps Collective, also running PowerShell.org and the PowerShell and DevOps Summit in the US. This effort is led by Don Jones, and other celebrities. I’m also advertising for the European PowerShell Conference which was last month in Hanover, we had a blast. We had the chance to have Jeffrey and Bruce Payette along with about 40 speakers and 200 delegates. It’s a PowerShell deep dive driven by the community. Should you have more question, ask Ryan Rates, CDM MVP (Cloud and Datacentre Management), who helped Tobias to organize the conference. Ok, promotion done, lets dive in  I work for Interoute, but opinions shared here are my own.
  3. A Paradigm shift is a fundamental change in the basic concepts and experimental practices of a scientific discipline. [Wikipedia]
  4. So before we look start diving in, I’d like to do a quick poll to see where you are in your Configuration Management journey. I’d like to make a distinction between two very rough and simplistic category of IT: Web Shop IT: technology used to reach customers and generate value. Enterprise IT: the technology supports the business functions, which in turn generate value. I want to encompass both, but the context they evolve is slightly different in my opinion. Maybe it shouldn’t, but it is. Assuming anyone else is in the other group, who feels they’re operating more in the Enterprise IT context? Now Keep your hands up if less than half of your systems are configured manually (running a script per machine interactively is considered manual here). Thank you, hands down. Those in Web Shop kind of IT, hands up if less than 50% of your servers are configured manually. Thank you. Now together, hands up if your average server OS installation has a life expectancy more than 2 years. Keep it up if more than 1 year. And 6 months. Who patches their server every months?
  5. Do you know who’s that kitten?: Pussy in boots. If you can do the same about a server, then it’s probably your pet. Just by its picture, or name, its charachteristics, story, where it comes from. A pet, when talking about server, it’s: Individually crafted, time invested in each of them, Owned and cuddled by someone (willingly or not)
  6. For a given node in a given configuration state A, Mike, Scott and Joe are Ops Engineers configuring the node. Mike goes on the running the system, and makes a configuration change ‘1’. State = B Scott assumes Node is in configuration communicated by Mike, and makes ‘2’, another change. State = C Joe makes a tiny change ‘3’, such as adding RAM, and then restart the machine in state D. What could possibly go wrong…? Think Registry change, Installing update, Delete System file… Lets roll back: What to roll back? How to roll back? Who Knows? One guy, Mike, knows “how it should be”, it’s his server. He takes care of it. A.K.A. Who’s pet is that?
  7. This is where teams usually respond with solutions such as: We need a Configuration Management procedure, a CAB (Change Advisory Board), better documentation… or we hear No it’s about culture, collaborate more! Lets leave this aside and dig further. What’s happening after the change, is that the system is in a different configuration state. Each state of the configuration has a name “A”, “B”, “C”, “D”. Each change is a vector between two states: AB is a vector, could be installing a package, or enabling a feature. Each change, needs a different vector (an action) to roll back to a previous state: Enable-WindowsFeature, Remove-WindowsFeature. And still I’m optimistic, I don’t talk about those roll back that leaves things behind…
  8. And for a single system kept alive, over time it may have different purposes, and end up with different configuration state. What’s happening, but no-one dare saying, is that we expect from the SysAdmin to know in a point in time: What’s the current state (remember, that SysAdmin probably did not set the config) How to move from that State to any other, without breaking stuff (has this transition ever been tested?) Do it quick, how hard can it be? So what clever people do? They create an abstraction layer, to be able to handle the complexity. If you only care about state E and F, say a WebServer and a File Server. This view, can be simplified…
  9. … Like this, or even better …
  10. … Like this. remember this is still only an abstraction model to get to F and E, so it’s easier to handle the complexity: we generally call F and E, roles. To get to role F or E from your base A, you still need to replay the full configuration ABBCCDDF. So, in a best case scenario, people put that path: ABBCCDDF into documentation: How to install Role F. People install those roles… sometimes many times a week… manually...! Oh, what’s the problem with human again? They do mistakes…
  11. But never mind the mistakes for now. Lets keep digging… One last time! Do you want all those potential transitions to go through a change advisory board? Are they recorded to start with?
  12. So getting back to that graph. Now that you know the cost, in terms of number of transition to support to get from A to E and F, you want to simplify the system - not just abstract it - and only support transitions in an explicit way. You drive your configuration with what to expect, that’s the first thing to find out: you want the state E to be… list specifics here. That means any transition to a system state must be supported from a Start to an End. The only way to do that, is to aim for Immutability. And I say aim for a good reason, we’ll get there soon. The other quality you’re doing with your system driven by a policy (the end state), is Idempotence. In complex systems, things happen along the way. Machine may reboot, you have multiple system interacting together, you forgot one part…. You want to be able to replay the configuration over, no matter how often, and converge to the same end state.
  13. I just want to make a note here, as it’s a common scenario, where people try to simplify their workflow, and sometimes end up build technical debt. X here is a transitional state, to get to the two end state. So, to make getting to those end state quick and easy, we usually create a Snapshot, template, image whatever you want to call it. This makes sense, and I have nothing against that, but just a word of warning: It’s clear in that model, that X is a transitional state to get to either end. Also, X could be your end state. If you have lonely a few images to manage and they don’t change very often, why not. If they’re windows image, and the only thing you’re doing is adding updates to them, then you can use DISM for offline servicing But because they are only a state, as in a result of actions, then you should make sure you’re able to replay the actions automagically on a click of a button, or better on a git push. Any definition change that affects a state before x inclusive of x, re-triggers the whole build (probably 3 times). Any definition change that only affects something after x exclusive, triggers the last legs of the build (the branch it depends on) It might be obvious and common sense, but I’ve seen people going to X, manually, then keeping that template, and from that template, going to other states templating again. When it comes to changing X slightly well, let’s just hack it, and re-template. New OS version comes in, how long will it take rebuild to X based on a new version…? Do you even remember how to get to X? What if a change to X just fails to install… how do you try to isolate the problem? What if you have multiple levels of X? Don’t cut corners, build your pipeline, end to end, then optimize with Optional checkpoint based on what has changed.
  14. The cattle: You identify a unique individual by its ID. You craft the mould, not the individuals.
  15. “I have not failed, I’ve just found 10,000 ways that don’t work” Thomas A. Edison