SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
Immutable Infrastructure
Rethinking Configuration in the Age of Easy Redeployment
RackN, Inc
May, 2019
Note: Graphics mainly from http://pexels.com
<<< Shift Left <<<
https://u.rackn.io/interop2019
2
RackN, Inc. and Digital Rebar Provision
Your Presenter ….
Software for Dell “CloudEdge” Hyperscale Hardware effort
Learned many DevOps lessons in the field
then created first OpenStack installer: “Crowbar”
1) Operations is inconsistent, manual and heterogenous
2) Foundational automation makes many problems go away
3) “Apply, Rinse, Repeat” (aka Immutable Infrastructure)
Founding Member, Chief
Solutions Architect, and
Community Evangelist
Shane Gibson
3
RackN, Inc. and Digital Rebar Provision
Your Presenter ….
Software for Dell “CloudEdge” Hyperscale Hardware effort
Learned many DevOps lessons in the field
then created first OpenStack installer: “Crowbar”
1) Operations is inconsistent, manual and heterogenous
2) Foundational automation makes many problems go away
3) “Apply, Rinse, Repeat” (aka Immutable Infrastructure)
Founding Member, Chief
Solutions Architect, and
Community Evangelist
Shane Gibson
But … really, who cares?
Let's get to the fun stuff …
4
@rackngo #immutable
Storytime! “Self-Bootstrapping Kubernetes”
Kubecon in Nov 2017 we created this demo
Simple “immutable” Idea:
1) In Memory Boot Machines
2) Install Docker
3) Elect Leader
4) Run Kubeadm on Leader
5) Run Kubeadm on Remainder
But….it’s shockingly hard to maintain.
Dependencies breaks the installation
And they are constantly changing.
5
@rackngo #immutable
Storytime! “Self-Bootstrapping Kubernetes”
So, while it’s pretty cool,
it’s not “real” immutability
Presentation & Demo
https://youtu.be/OowxF6GqK4I
sad!
Why is configuration fragile?
Why is configuration fragile?
mutation
V
8
@rackngo #immutable
But… I 💜 Infrastructure as Code?!
Sorry. Mutability adds complexity
Traditional “build-in place” approaches
● Have hidden dependency graphs
● Create variation between environments
● Are harder to “lock down” due to config
AND OMG… updates and patches are even harder
● Idempotent operations are difficult
● Roll backward is next to impossible!
● Creating indeterminate state
9
@rackngo #immutable
Traditional “build-in place” approaches
● Have hidden dependency graphs
● Create variation between environments
● Are harder to “lock down” due to config
AND OMG… updates and patches are even harder
● Idempotent operations are difficult
● Roll backward is impossible
● Creating indeterminate state
But… I 💜 Infrastructure as code?!
Sorry. Mutability adds complexity
Let’s lock it down!
What is Immutable Infrastructure?
What is Immutable Infrastructure?
Pre-deploy configured
V
12
@rackngo #immutable
Traditional Deploy and Configure
System is configured in situ from
a least common denominator
baseline.
This can be “immutable-like”
under the right conditions.
We’ll come back to that...
Delivery Pipeline
Deployment
Code
Build
Integrate
Run
Configure
13
@rackngo #immutable
Shifting Configuration BEFORE Deployment
In our ideal delivery pipeline,
configuration is before
deployment.
Running systems are delivered as
a complete runnable unit for
deployment.
Delivery Pipeline
Deployment
Code
Build
Integrate
Run
Configure
14
@rackngo #immutable
Shifting Configuration BEFORE Deployment
In reality, it’s very hard to create a
distinct artifact for every running
instance; instead, we create
incremental versions.
So we do some initialization of the
reusable versioned instance.
Cloud init is the most commonly
known pattern for this.
Delivery Pipeline
Deployment
Code
Build
Integrate
Run
Configure
Initialize!
V
Cloud Native
Infrastructure
CNIbook.info
Justin Garrison & Kris Nova
“Infrastructure as software”
“Intent-Based Platform”
16
@rackngo #immutable
Which Enables… Delegating Operations
If you can make your artifacts
immutable then you can delegate
management of them to a
platform like Kubernetes.
Kubernetes does not configure
infrastructure. It maintains state
based on a manifest.
StateManager
(e.g.Kubernetes)
Code
Build
Integrate
Run
Configure
Delivery Pipeline
17
@rackngo #immutable
Which Enables… Delegating Operations
If you can make your artifacts
immutable then you can delegate
management of them to a
platform like Kubernetes.
Kubernetes does not configure
infrastructure. It maintains state
based on a manifest.
StateManager
(e.g.Kubernetes)
Code
Build
Integrate
Run
Configure
Delivery Pipeline
Kubernetes? WTF!
Is Immutable > K8s?
Immutable is a DevOps Pattern
<<< Shift Left & Create/Delete
19
@rackngo #immutable
The Problem
Immutability <<< Shifting Left
package
server
image
provision
server
initial
config
20
@rackngo #immutable
The Problem
Immutability <<< Shifting Left
patch 1
package
server
image
provision
server
initial
config
21
@rackngo #immutable
The Problem
Immutability <<< Shifting Left
patch 1 patch 2
package
server
image
provision
server
initial
config
22
@rackngo #immutable
The Problem
Immutability <<< Shifting Left
patch 1 patch 2
the madness doesn't
stop at patch 2!
package
server
image
provision
server
initial
config
23
@rackngo #immutable
The Problem
Immutability <<< Shifting Left
patch 1 patch 2
the madness doesn't
stop at patch 2!
What Madness?
● We have to maintain root access
● Patches assume system state
● Patches create dependency graphs
● Coordination? Should we halt work?
● Drift is inevitable!
package
server
image
provision
server
initial
config
24
@rackngo #immutable
The Problem
Immutability <<< Shifting Left
patch 1 patch 2
SAD !!package
server
image
provision
server
initial
config
25
@rackngo #immutable
Apply cloud and container lessons to our Bare Metal …
Immutability <<< Shifting Left
package
server
image
provision
server
initial
config
destroy!!
26
@rackngo #immutable
Apply cloud and container lessons to our Bare Metal …
Immutability <<< Shifting Left
destroy!!
destroy!!patch 1
package
server
image
provision
server
initial
config
package
server
image
provision
server
initial
config
27
@rackngo #immutable
Apply cloud and container lessons to our Bare Metal …
Immutability <<< Shifting Left
destroy!!
destroy!!patch 1
depatch 2
package
server
image
provision
server
initial
config
package
server
image
provision
server
initial
config
package
server
image
provision
server
initial
config
28
@rackngo #immutable
Apply cloud and container lessons to our Bare Metal …
Immutability <<< Shifting Left
destroy!!
destroy!!patch 1
patch N
depatch 2
package
server
image
provision
server
initial
config
package
server
image
provision
server
initial
config
package
server
image
provision
server
initial
config
package
server
image
provision
server
initial
config
Cloud like behavior …
30
Immutable Provisioning systems
treat infrastructure as a black box
Cloud-like Integration and Staged Workflow
Provisioning
System
Requested
State
Returned
State
REST
API
Event
Hook
31
Cloud-like Integration and Staged Workflow
Immutable Provisioning systems
treat infrastructure as a black box
Provision requests are for a system state
with optional parameters.
The intermediate changes to achieve the
state are not exposed to the requester.
Provisioning
System
Reset Join
Install
Config
Test
Requested
State
Returned
State
REST
API
Event
Hook
32
Cloud-like Integration and Staged Workflow
Immutable Provisioning systems
treat infrastructure as a black box
Provision requests are for a system state
with optional parameters.
The intermediate changes to achieve the
state are not exposed to the requester.
REMEMBER: Operators of the
provisioning system require high
transparency, stages and control.
Provisioning
System
Reset Join
Install
Config
Test
Requested
State
Returned
State
REST
API
Event
Hook
No hidden
operations!
Immutable Patterns
1) Baseline + Configuration
2) Live Boot + Configuration
3) Image Deploy
34
Provision
1: Baseline + Configuration
Benefit: Easiest to achieve with current tools, Safer than Patching
Challenge: Lots of Post-Configuration, Not Really “Immutable”, Slow
Instead of relying on patches, rely on starting from a pristine image
ResetBaseline Configure Run
Additional Reference https://thenewstack.io/immutable-hardware-ops-hygiene-security-efficiency/
35
Provision
1: Baseline + Configuration
Benefit: Easiest to achieve with current tools, Safer than Patching
Challenge: Lots of Post-Configuration, Not Really “Immutable”, Slow
Instead of relying on patches, rely on starting from a pristine image
ResetBaseline Configure Run
Additional Reference https://thenewstack.io/immutable-hardware-ops-hygiene-security-efficiency/
You must control ALL
of your dependency
chain !!!
36
Provision
1: Baseline + Configuration
Benefit: Easiest to achieve with current tools, Safer than Patching
Challenge: Lots of Post-Configuration, Not Really “Immutable”, Slow
Instead of relying on patches, rely on starting from a pristine image
ResetBaseline Configure Run
Additional Reference https://thenewstack.io/immutable-hardware-ops-hygiene-security-efficiency/
...every single (!!)
package from the
base OS on up ...
37
Benefit: Fast reset times, forces good behavior
Challenge: Provisioning becomes critical path, still have dependency graph
Like #1 but clean-up is simply a reboot. Favors smaller footprint O/S.
2: Live Boot + Configuration
Provision RebootBaseline Configure Run
38
How much of OS, Packages, and Application stack is in your Live Boot image
will determine how much work you have to do on dependency tracking and
version lock down.
2: Live Boot + Configuration
Provision RebootBaseline Configure Run
39
3: Image Deploy
Benefit: Shorter time to ready, highly controlled (“shift left”), rollback
Challenge: Harder to create and deploy images
Image is deployed from source instead of Baseline + Configure
Provision
Deploy
Image
Run Provision
Deploy
Image
Run
40
3: Image Deploy
Benefit: Shorter time to ready, highly controlled (“shift left”), rollback
Challenge: Harder to create and deploy images
Image is deployed from single artifact instead of Baseline + Configure
Provision
Deploy
Image
Run Provision
Deploy
Image
Run
Initialize!
V
Initialize!
V
41
So… Let’s talk Image Creation
Ideally in an automation build process.
You DO THE CONFIGURATION on a
live system (so you still need
configuration tools) and then capture
the image into a portable format.
Tools like Hashicorp Packer, Image
Builder, WBIC or raw images are used
to create source files (e.g. Root FS
Tarball, Disk Image, AMI, OVS).
42
So… Let’s talk Image Creation
Ideally in an automation build process.
You DO THE CONFIGURATION on a
live system (so you still need
configuration tools) and then capture
the image into a portable format.
Tools like Hashicorp Packer, Image
Builder, WBIC or raw images are used
to create source files (e.g. Root FS
Tarball, Disk Image, AMI, OVS).
That sounds like a lot
of work & really slow!
Yes, But…
It’s faster, safer & more scalable.
44
Build Pipeline
Immutable Demo
Prep: Image is pre-created from reference system.
Reference
System
45
Build Pipeline
Immutable Demo
Prep: Image is pre-created from reference system.
Reference
System
customize
46
Build Pipeline
Immutable Demo
Prep: Image is pre-created from reference system.
Reference
System
Image
Read
customize
47
Deploy Pipeline
Build Pipeline
Immutable Demo
Prep: Image is pre-created from reference system.
Stage: Boot RAM image and write image to disk(s)
Reference
System
Image
Target System
RAM BOOT
Write
Read
customize
48
Deploy Pipeline
Build Pipeline
Immutable Demo
Prep: Image is pre-created from reference system.
Stage: Boot RAM image and write image to disk(s)
Deploy: Reboot and run
Reference
System
Image
Target System
RAM BOOT
Target System
RUNNING
Write
Run
Read V
Reboot
Initialize!customize
49
Build Pipeline
Deploy Pipeline
Immutable Demo
Hopefully (!!): You're pushing your images through a
rigorous CI/CD pipeline before you Deploy !!
Reference
System
Image
Read
customize
50
Build Pipeline
Deploy Pipeline
Immutable Demo
Hopefully (!!): You're pushing your images through a
rigorous CI/CD pipeline before you Deploy !!
Reference
System
Image
Read
CI/CD Pipeline
TEST !!
51
Build Pipeline
Deploy Pipeline
Immutable Demo
Hopefully (!!): You're pushing your images through a
rigorous CI/CD pipeline before you Deploy !!
Reference
System
Image
Read
CI/CD Pipeline
TEST !!
FAIL
???
52
Build Pipeline
Deploy Pipeline
Immutable Demo
Hopefully (!!): You're pushing your images through a
rigorous CI/CD pipeline before you Deploy !!
Reference
System
Image
Target System
RAM BOOT
Write
Read
CI/CD Pipeline
TEST !!
Pass!
53
Build Pipeline
Deploy Pipeline
Immutable Demo
Hopefully (!!): You're pushing your images through a
rigorous CI/CD pipeline before you Deploy !!
Reference
System
Image
Target System
RAM BOOT
Target System
RUNNING
Write
Run
Read V
Reboot
Initialize!
CI/CD Pipeline
TEST !!
Pass!
Thank you!
Questions?
Interested in IMMUTABLE METAL?
It’s complicated, but we can get you there.
Start at http://portal.rackn.io
• Quickstart takes about 30 minutes
• Use your own hardware, VirtualBox or Packet.net account
– use “RACKN100” on Packet.net for credit

Mais conteúdo relacionado

Mais procurados

Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsAtlassian
 
Continuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesContinuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesMarco Vermeulen
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdecWojciech Dec
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsMandi Walls
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & ActuatorsVMware Tanzu
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with JenkinsEdureka!
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
Microservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New YorkMicroservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New YorkAdrian Cockcroft
 
From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012Henri Gomez
 
Choosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in ProdChoosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in ProdJosh Padnick
 
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiTap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiZeroTurnaround
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI InteropRay Ploski
 
How To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarHow To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarVMware Tanzu
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
 
Database version control DPC version
Database version control DPC versionDatabase version control DPC version
Database version control DPC versionHarrie Verveer
 
Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Andres Almiray
 
Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Andres Almiray
 
Production Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsProduction Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsNarayanan Krishnamurthy
 

Mais procurados (20)

Akka Made Our Day
Akka Made Our DayAkka Made Our Day
Akka Made Our Day
 
Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull Requests
 
Continuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesContinuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBees
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & Actuators
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Microservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New YorkMicroservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New York
 
From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
 
Choosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in ProdChoosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in Prod
 
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiTap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI Interop
 
How To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarHow To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing Superstar
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
Git Power Routines
Git Power RoutinesGit Power Routines
Git Power Routines
 
Database version control DPC version
Database version control DPC versionDatabase version control DPC version
Database version control DPC version
 
Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017
 
Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017
 
Production Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsProduction Grade Kubernetes Applications
Production Grade Kubernetes Applications
 

Semelhante a Immutable Infrastructure & Rethinking Configuration - Interop 2019

SRECon 18 Immutable Infrastructure
SRECon 18 Immutable InfrastructureSRECon 18 Immutable Infrastructure
SRECon 18 Immutable InfrastructureRackN
 
#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmt#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmtrhirschfeld
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowAll Things Open
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal DeploymentJeff Eaton
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in ReactTalentica Software
 
Immutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar ProvisionImmutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar ProvisionRackN
 
Typesafe Reactive Platform: Monitoring 1.0, Commercial features and more
Typesafe Reactive Platform: Monitoring 1.0, Commercial features and moreTypesafe Reactive Platform: Monitoring 1.0, Commercial features and more
Typesafe Reactive Platform: Monitoring 1.0, Commercial features and moreLegacy Typesafe (now Lightbend)
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise ApplicationsDaniel Oh
 
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...Eric Smalling
 
Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...
Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...
Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...Optimizely
 
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Peter Leschev
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsJonathan Hitchcock
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsMike Brittain
 
Tracing Software Build Processes to Uncover License Compliance Inconsistencies
Tracing Software Build Processes to Uncover License Compliance InconsistenciesTracing Software Build Processes to Uncover License Compliance Inconsistencies
Tracing Software Build Processes to Uncover License Compliance InconsistenciesShane McIntosh
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java binOlve Hansen
 
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Cωνσtantίnoς Giannoulis
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitAndreas Heim
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!Sophia Russell
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 

Semelhante a Immutable Infrastructure & Rethinking Configuration - Interop 2019 (20)

SRECon 18 Immutable Infrastructure
SRECon 18 Immutable InfrastructureSRECon 18 Immutable Infrastructure
SRECon 18 Immutable Infrastructure
 
#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmt#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmt
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deployment
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in React
 
Immutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar ProvisionImmutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar Provision
 
Typesafe Reactive Platform: Monitoring 1.0, Commercial features and more
Typesafe Reactive Platform: Monitoring 1.0, Commercial features and moreTypesafe Reactive Platform: Monitoring 1.0, Commercial features and more
Typesafe Reactive Platform: Monitoring 1.0, Commercial features and more
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
 
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
 
Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...
Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...
Test & Learn: Building & Deploying Resilient Products - How Feature Flags & O...
 
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad Decisions
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
Tracing Software Build Processes to Uncover License Compliance Inconsistencies
Tracing Software Build Processes to Uncover License Compliance InconsistenciesTracing Software Build Processes to Uncover License Compliance Inconsistencies
Tracing Software Build Processes to Uncover License Compliance Inconsistencies
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 

Mais de RackN

Digital Rebar Community Welcome Guide
Digital Rebar Community Welcome GuideDigital Rebar Community Welcome Guide
Digital Rebar Community Welcome GuideRackN
 
Immutable Deployment Hands-On Lab Interop ITX
Immutable Deployment Hands-On Lab Interop ITXImmutable Deployment Hands-On Lab Interop ITX
Immutable Deployment Hands-On Lab Interop ITXRackN
 
Composable Infrastructure Talk at Interop ITX 2018
Composable Infrastructure Talk at Interop ITX 2018Composable Infrastructure Talk at Interop ITX 2018
Composable Infrastructure Talk at Interop ITX 2018RackN
 
Immutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking ConfigurationImmutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking ConfigurationRackN
 
Immutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking ConfigurationImmutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking ConfigurationRackN
 
RackN Company Overview
RackN Company OverviewRackN Company Overview
RackN Company OverviewRackN
 
Operational Improvement Issues, Impacts and Solution from RackN
Operational Improvement Issues, Impacts and Solution from RackNOperational Improvement Issues, Impacts and Solution from RackN
Operational Improvement Issues, Impacts and Solution from RackNRackN
 
KubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch ProvisionKubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch ProvisionRackN
 
Data Center’s Last Mile: Zero Touch Metal Automation
Data Center’s Last Mile: Zero Touch Metal AutomationData Center’s Last Mile: Zero Touch Metal Automation
Data Center’s Last Mile: Zero Touch Metal AutomationRackN
 
DevOps vs SRE vs Cloud Native
DevOps vs SRE vs Cloud NativeDevOps vs SRE vs Cloud Native
DevOps vs SRE vs Cloud NativeRackN
 

Mais de RackN (10)

Digital Rebar Community Welcome Guide
Digital Rebar Community Welcome GuideDigital Rebar Community Welcome Guide
Digital Rebar Community Welcome Guide
 
Immutable Deployment Hands-On Lab Interop ITX
Immutable Deployment Hands-On Lab Interop ITXImmutable Deployment Hands-On Lab Interop ITX
Immutable Deployment Hands-On Lab Interop ITX
 
Composable Infrastructure Talk at Interop ITX 2018
Composable Infrastructure Talk at Interop ITX 2018Composable Infrastructure Talk at Interop ITX 2018
Composable Infrastructure Talk at Interop ITX 2018
 
Immutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking ConfigurationImmutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking Configuration
 
Immutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking ConfigurationImmutable infrastructure & Rethinking Configuration
Immutable infrastructure & Rethinking Configuration
 
RackN Company Overview
RackN Company OverviewRackN Company Overview
RackN Company Overview
 
Operational Improvement Issues, Impacts and Solution from RackN
Operational Improvement Issues, Impacts and Solution from RackNOperational Improvement Issues, Impacts and Solution from RackN
Operational Improvement Issues, Impacts and Solution from RackN
 
KubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch ProvisionKubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch Provision
 
Data Center’s Last Mile: Zero Touch Metal Automation
Data Center’s Last Mile: Zero Touch Metal AutomationData Center’s Last Mile: Zero Touch Metal Automation
Data Center’s Last Mile: Zero Touch Metal Automation
 
DevOps vs SRE vs Cloud Native
DevOps vs SRE vs Cloud NativeDevOps vs SRE vs Cloud Native
DevOps vs SRE vs Cloud Native
 

Último

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Último (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Immutable Infrastructure & Rethinking Configuration - Interop 2019

  • 1. Immutable Infrastructure Rethinking Configuration in the Age of Easy Redeployment RackN, Inc May, 2019 Note: Graphics mainly from http://pexels.com <<< Shift Left <<< https://u.rackn.io/interop2019
  • 2. 2 RackN, Inc. and Digital Rebar Provision Your Presenter …. Software for Dell “CloudEdge” Hyperscale Hardware effort Learned many DevOps lessons in the field then created first OpenStack installer: “Crowbar” 1) Operations is inconsistent, manual and heterogenous 2) Foundational automation makes many problems go away 3) “Apply, Rinse, Repeat” (aka Immutable Infrastructure) Founding Member, Chief Solutions Architect, and Community Evangelist Shane Gibson
  • 3. 3 RackN, Inc. and Digital Rebar Provision Your Presenter …. Software for Dell “CloudEdge” Hyperscale Hardware effort Learned many DevOps lessons in the field then created first OpenStack installer: “Crowbar” 1) Operations is inconsistent, manual and heterogenous 2) Foundational automation makes many problems go away 3) “Apply, Rinse, Repeat” (aka Immutable Infrastructure) Founding Member, Chief Solutions Architect, and Community Evangelist Shane Gibson But … really, who cares? Let's get to the fun stuff …
  • 4. 4 @rackngo #immutable Storytime! “Self-Bootstrapping Kubernetes” Kubecon in Nov 2017 we created this demo Simple “immutable” Idea: 1) In Memory Boot Machines 2) Install Docker 3) Elect Leader 4) Run Kubeadm on Leader 5) Run Kubeadm on Remainder But….it’s shockingly hard to maintain. Dependencies breaks the installation And they are constantly changing.
  • 5. 5 @rackngo #immutable Storytime! “Self-Bootstrapping Kubernetes” So, while it’s pretty cool, it’s not “real” immutability Presentation & Demo https://youtu.be/OowxF6GqK4I sad!
  • 7. Why is configuration fragile? mutation V
  • 8. 8 @rackngo #immutable But… I 💜 Infrastructure as Code?! Sorry. Mutability adds complexity Traditional “build-in place” approaches ● Have hidden dependency graphs ● Create variation between environments ● Are harder to “lock down” due to config AND OMG… updates and patches are even harder ● Idempotent operations are difficult ● Roll backward is next to impossible! ● Creating indeterminate state
  • 9. 9 @rackngo #immutable Traditional “build-in place” approaches ● Have hidden dependency graphs ● Create variation between environments ● Are harder to “lock down” due to config AND OMG… updates and patches are even harder ● Idempotent operations are difficult ● Roll backward is impossible ● Creating indeterminate state But… I 💜 Infrastructure as code?! Sorry. Mutability adds complexity Let’s lock it down!
  • 10. What is Immutable Infrastructure?
  • 11. What is Immutable Infrastructure? Pre-deploy configured V
  • 12. 12 @rackngo #immutable Traditional Deploy and Configure System is configured in situ from a least common denominator baseline. This can be “immutable-like” under the right conditions. We’ll come back to that... Delivery Pipeline Deployment Code Build Integrate Run Configure
  • 13. 13 @rackngo #immutable Shifting Configuration BEFORE Deployment In our ideal delivery pipeline, configuration is before deployment. Running systems are delivered as a complete runnable unit for deployment. Delivery Pipeline Deployment Code Build Integrate Run Configure
  • 14. 14 @rackngo #immutable Shifting Configuration BEFORE Deployment In reality, it’s very hard to create a distinct artifact for every running instance; instead, we create incremental versions. So we do some initialization of the reusable versioned instance. Cloud init is the most commonly known pattern for this. Delivery Pipeline Deployment Code Build Integrate Run Configure Initialize! V
  • 15. Cloud Native Infrastructure CNIbook.info Justin Garrison & Kris Nova “Infrastructure as software” “Intent-Based Platform”
  • 16. 16 @rackngo #immutable Which Enables… Delegating Operations If you can make your artifacts immutable then you can delegate management of them to a platform like Kubernetes. Kubernetes does not configure infrastructure. It maintains state based on a manifest. StateManager (e.g.Kubernetes) Code Build Integrate Run Configure Delivery Pipeline
  • 17. 17 @rackngo #immutable Which Enables… Delegating Operations If you can make your artifacts immutable then you can delegate management of them to a platform like Kubernetes. Kubernetes does not configure infrastructure. It maintains state based on a manifest. StateManager (e.g.Kubernetes) Code Build Integrate Run Configure Delivery Pipeline Kubernetes? WTF! Is Immutable > K8s?
  • 18. Immutable is a DevOps Pattern <<< Shift Left & Create/Delete
  • 19. 19 @rackngo #immutable The Problem Immutability <<< Shifting Left package server image provision server initial config
  • 20. 20 @rackngo #immutable The Problem Immutability <<< Shifting Left patch 1 package server image provision server initial config
  • 21. 21 @rackngo #immutable The Problem Immutability <<< Shifting Left patch 1 patch 2 package server image provision server initial config
  • 22. 22 @rackngo #immutable The Problem Immutability <<< Shifting Left patch 1 patch 2 the madness doesn't stop at patch 2! package server image provision server initial config
  • 23. 23 @rackngo #immutable The Problem Immutability <<< Shifting Left patch 1 patch 2 the madness doesn't stop at patch 2! What Madness? ● We have to maintain root access ● Patches assume system state ● Patches create dependency graphs ● Coordination? Should we halt work? ● Drift is inevitable! package server image provision server initial config
  • 24. 24 @rackngo #immutable The Problem Immutability <<< Shifting Left patch 1 patch 2 SAD !!package server image provision server initial config
  • 25. 25 @rackngo #immutable Apply cloud and container lessons to our Bare Metal … Immutability <<< Shifting Left package server image provision server initial config destroy!!
  • 26. 26 @rackngo #immutable Apply cloud and container lessons to our Bare Metal … Immutability <<< Shifting Left destroy!! destroy!!patch 1 package server image provision server initial config package server image provision server initial config
  • 27. 27 @rackngo #immutable Apply cloud and container lessons to our Bare Metal … Immutability <<< Shifting Left destroy!! destroy!!patch 1 depatch 2 package server image provision server initial config package server image provision server initial config package server image provision server initial config
  • 28. 28 @rackngo #immutable Apply cloud and container lessons to our Bare Metal … Immutability <<< Shifting Left destroy!! destroy!!patch 1 patch N depatch 2 package server image provision server initial config package server image provision server initial config package server image provision server initial config package server image provision server initial config
  • 30. 30 Immutable Provisioning systems treat infrastructure as a black box Cloud-like Integration and Staged Workflow Provisioning System Requested State Returned State REST API Event Hook
  • 31. 31 Cloud-like Integration and Staged Workflow Immutable Provisioning systems treat infrastructure as a black box Provision requests are for a system state with optional parameters. The intermediate changes to achieve the state are not exposed to the requester. Provisioning System Reset Join Install Config Test Requested State Returned State REST API Event Hook
  • 32. 32 Cloud-like Integration and Staged Workflow Immutable Provisioning systems treat infrastructure as a black box Provision requests are for a system state with optional parameters. The intermediate changes to achieve the state are not exposed to the requester. REMEMBER: Operators of the provisioning system require high transparency, stages and control. Provisioning System Reset Join Install Config Test Requested State Returned State REST API Event Hook No hidden operations!
  • 33. Immutable Patterns 1) Baseline + Configuration 2) Live Boot + Configuration 3) Image Deploy
  • 34. 34 Provision 1: Baseline + Configuration Benefit: Easiest to achieve with current tools, Safer than Patching Challenge: Lots of Post-Configuration, Not Really “Immutable”, Slow Instead of relying on patches, rely on starting from a pristine image ResetBaseline Configure Run Additional Reference https://thenewstack.io/immutable-hardware-ops-hygiene-security-efficiency/
  • 35. 35 Provision 1: Baseline + Configuration Benefit: Easiest to achieve with current tools, Safer than Patching Challenge: Lots of Post-Configuration, Not Really “Immutable”, Slow Instead of relying on patches, rely on starting from a pristine image ResetBaseline Configure Run Additional Reference https://thenewstack.io/immutable-hardware-ops-hygiene-security-efficiency/ You must control ALL of your dependency chain !!!
  • 36. 36 Provision 1: Baseline + Configuration Benefit: Easiest to achieve with current tools, Safer than Patching Challenge: Lots of Post-Configuration, Not Really “Immutable”, Slow Instead of relying on patches, rely on starting from a pristine image ResetBaseline Configure Run Additional Reference https://thenewstack.io/immutable-hardware-ops-hygiene-security-efficiency/ ...every single (!!) package from the base OS on up ...
  • 37. 37 Benefit: Fast reset times, forces good behavior Challenge: Provisioning becomes critical path, still have dependency graph Like #1 but clean-up is simply a reboot. Favors smaller footprint O/S. 2: Live Boot + Configuration Provision RebootBaseline Configure Run
  • 38. 38 How much of OS, Packages, and Application stack is in your Live Boot image will determine how much work you have to do on dependency tracking and version lock down. 2: Live Boot + Configuration Provision RebootBaseline Configure Run
  • 39. 39 3: Image Deploy Benefit: Shorter time to ready, highly controlled (“shift left”), rollback Challenge: Harder to create and deploy images Image is deployed from source instead of Baseline + Configure Provision Deploy Image Run Provision Deploy Image Run
  • 40. 40 3: Image Deploy Benefit: Shorter time to ready, highly controlled (“shift left”), rollback Challenge: Harder to create and deploy images Image is deployed from single artifact instead of Baseline + Configure Provision Deploy Image Run Provision Deploy Image Run Initialize! V Initialize! V
  • 41. 41 So… Let’s talk Image Creation Ideally in an automation build process. You DO THE CONFIGURATION on a live system (so you still need configuration tools) and then capture the image into a portable format. Tools like Hashicorp Packer, Image Builder, WBIC or raw images are used to create source files (e.g. Root FS Tarball, Disk Image, AMI, OVS).
  • 42. 42 So… Let’s talk Image Creation Ideally in an automation build process. You DO THE CONFIGURATION on a live system (so you still need configuration tools) and then capture the image into a portable format. Tools like Hashicorp Packer, Image Builder, WBIC or raw images are used to create source files (e.g. Root FS Tarball, Disk Image, AMI, OVS). That sounds like a lot of work & really slow!
  • 43. Yes, But… It’s faster, safer & more scalable.
  • 44. 44 Build Pipeline Immutable Demo Prep: Image is pre-created from reference system. Reference System
  • 45. 45 Build Pipeline Immutable Demo Prep: Image is pre-created from reference system. Reference System customize
  • 46. 46 Build Pipeline Immutable Demo Prep: Image is pre-created from reference system. Reference System Image Read customize
  • 47. 47 Deploy Pipeline Build Pipeline Immutable Demo Prep: Image is pre-created from reference system. Stage: Boot RAM image and write image to disk(s) Reference System Image Target System RAM BOOT Write Read customize
  • 48. 48 Deploy Pipeline Build Pipeline Immutable Demo Prep: Image is pre-created from reference system. Stage: Boot RAM image and write image to disk(s) Deploy: Reboot and run Reference System Image Target System RAM BOOT Target System RUNNING Write Run Read V Reboot Initialize!customize
  • 49. 49 Build Pipeline Deploy Pipeline Immutable Demo Hopefully (!!): You're pushing your images through a rigorous CI/CD pipeline before you Deploy !! Reference System Image Read customize
  • 50. 50 Build Pipeline Deploy Pipeline Immutable Demo Hopefully (!!): You're pushing your images through a rigorous CI/CD pipeline before you Deploy !! Reference System Image Read CI/CD Pipeline TEST !!
  • 51. 51 Build Pipeline Deploy Pipeline Immutable Demo Hopefully (!!): You're pushing your images through a rigorous CI/CD pipeline before you Deploy !! Reference System Image Read CI/CD Pipeline TEST !! FAIL ???
  • 52. 52 Build Pipeline Deploy Pipeline Immutable Demo Hopefully (!!): You're pushing your images through a rigorous CI/CD pipeline before you Deploy !! Reference System Image Target System RAM BOOT Write Read CI/CD Pipeline TEST !! Pass!
  • 53. 53 Build Pipeline Deploy Pipeline Immutable Demo Hopefully (!!): You're pushing your images through a rigorous CI/CD pipeline before you Deploy !! Reference System Image Target System RAM BOOT Target System RUNNING Write Run Read V Reboot Initialize! CI/CD Pipeline TEST !! Pass!
  • 54. Thank you! Questions? Interested in IMMUTABLE METAL? It’s complicated, but we can get you there. Start at http://portal.rackn.io • Quickstart takes about 30 minutes • Use your own hardware, VirtualBox or Packet.net account – use “RACKN100” on Packet.net for credit