infrastructure as code: why it matters

47
Infrastructure as Code Why it matters

Upload: puppet-labs

Post on 21-Aug-2015

215 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Infrastructure as Code: Why it Matters

Infrastructure as Code

Why it matters

Page 2: Infrastructure as Code: Why it Matters

Carl CaumPuppet LabsTechnical Marketing (I don’t know what that means either)

@ccaum

Page 3: Infrastructure as Code: Why it Matters

DevOps

Page 4: Infrastructure as Code: Why it Matters

DevOps is a response to the adversarial culture found in traditional IT organizations

Page 5: Infrastructure as Code: Why it Matters

“Why won’t Ops just make this change? It’s small”

“Don’t the developers know anything about logging?”

“Why does it take so long for Ops to deploy this code?”

“Why can’t the developers build packages?”

“The devs don’t care that this code doesn’t scale.”

“Ops won’t let us use the latest Ruby for some reason.”

Page 6: Infrastructure as Code: Why it Matters

Dev Ops

The cause

Page 7: Infrastructure as Code: Why it Matters

Dev Ops

The solution

DevOps

Page 8: Infrastructure as Code: Why it Matters

Product Delivery Process

ProblemStatement

ProblemPrioritization

Design /Development Deployment Monitoring

DevDevOps

Ops

Product Management

Page 9: Infrastructure as Code: Why it Matters

The Three Ways -- Gene Kim

Page 10: Infrastructure as Code: Why it Matters

Systems Thinking

Understand the performance of the entire system, not each individual silo

Page 11: Infrastructure as Code: Why it Matters

Amplify Feedback Loops

Build quick, short, feedback into the process

Page 12: Infrastructure as Code: Why it Matters

Culture of Experimentation and Learning

Enforce a culture of continuous experimentation, risk taking, and learning.

Page 13: Infrastructure as Code: Why it Matters

Top 5 Predictors of IT PerformancePuppet Labs DevOps Survey

Page 14: Infrastructure as Code: Why it Matters

● When teams hold themselves accountable for the quality of its code through peer review, performance increases. Change Approval Boards (CABs) decrease performance.

● CABs have negligible impact on system stability while significant negative impact on throughput.

Peer reviewed change process

Page 15: Infrastructure as Code: Why it Matters

● Single source of truth

● Causality is easily determined

● Benefits extend to both system and application configuration

Version Control

Page 16: Infrastructure as Code: Why it Matters

● Diagnose problems faster

● Test the application, not just the infrastructure

● Post deploy tests

Proactive Monitoring

Page 17: Infrastructure as Code: Why it Matters

● Bureaucracy kills (productivity)

● Trust increases throughputHigh Trust Culture

Page 18: Infrastructure as Code: Why it Matters

● Act with expertise, not authority

● Interactions are about both teams achieving the shared business goals

Win-Win culture

Page 19: Infrastructure as Code: Why it Matters

Empathy rarely extends beyond our

line of sight

Page 20: Infrastructure as Code: Why it Matters

[ops] Empathy

● Help devs set up the development environment

● Help devs set up the CI system

● Understand the required infrastructure throughout the feature’s development

Page 21: Infrastructure as Code: Why it Matters

● Understand the constant fires Ops deals with

● Help develop the deployment process for the feature

● Be on call

● Monitor the application post deployment

[dev] Empathy

Page 22: Infrastructure as Code: Why it Matters

The Business

Page 23: Infrastructure as Code: Why it Matters

● Speed

● Innovation

● Availability

● Stability

Business Goals

Page 24: Infrastructure as Code: Why it Matters

● Time-to-market matters

● Cycle time matters

● Dependable cadence matters

[Business] Speed

Page 25: Infrastructure as Code: Why it Matters

● Collaboration

● Experimentation

● Rapid validation

● Market clarity

[Business] Innovation

Page 26: Infrastructure as Code: Why it Matters

● 70% of all downtime is caused by configuration drift and unauthorized configuration change*

● Downtime costs $2.5 billion for Fortune 1000*

*Wiley Global Research

[Business] Availability

Page 27: Infrastructure as Code: Why it Matters

● Infrastructure Trust

● Mean-time to recovery[Business] Stability

Page 28: Infrastructure as Code: Why it Matters

Infrastructure as Code

Page 29: Infrastructure as Code: Why it Matters

DevOps is to Infrastructure as Code

as Agile is to Scrum

Page 30: Infrastructure as Code: Why it Matters

Infrastructure as Code is a requirement for DevOps,

but is not sufficient

Page 31: Infrastructure as Code: Why it Matters

Pragmatism

Page 32: Infrastructure as Code: Why it Matters

● Production-like Dev Env● Peer Review and Pairing● Continuous Delivery● Policy Driven Development● Auditing

Pragmatic Goals

Page 33: Infrastructure as Code: Why it Matters

● Code is portable

● Code is reusable

● Code is version controlled

(Vagrant is awesome)

Production-like Dev Env

Page 34: Infrastructure as Code: Why it Matters

● Code can be contributed by anyone

● Code changes can be reviewed by anyone

● Code can be worked on as a team

(give me git or give me death)

Peer Review and Pairing

Page 35: Infrastructure as Code: Why it Matters

● Code is repeatable

● Code is shareable

● Code is promotable

● Code is testable

Continuous Delivery

Page 36: Infrastructure as Code: Why it Matters

● Policies are for humans, not computers

● Constraints can be tested and enforced with code

● Tests can be run in any environment since code is portable

Policy Driven Development

Page 37: Infrastructure as Code: Why it Matters

● Code execution can provide detailed, accurate reports on actions taken

● Code promotion and execution provide authorization records

● Code run reports provide defensible audit trails

Auditing

Page 38: Infrastructure as Code: Why it Matters

Tips

Page 39: Infrastructure as Code: Why it Matters

● Automate the most repetitive tasks in Ops

● Use Law of Accelerating Returns to increase admins’ free time

● Once a FTE’s worth of time is gained, have sysadmins spend more and more time working alongside developers

Start

Page 40: Infrastructure as Code: Why it Matters

● Approachability

● Opinionated

● Declarative

● Idempotency

● Reporting

The Language

Page 41: Infrastructure as Code: Why it Matters

Conclusion

Page 42: Infrastructure as Code: Why it Matters

but requires pragmatismDevOps is about culture

Page 43: Infrastructure as Code: Why it Matters

in relation to the product delivery process

Collaboration is key

Page 44: Infrastructure as Code: Why it Matters

but is insufficientInfrastructure as Code is necessary

Page 45: Infrastructure as Code: Why it Matters

(period)The language matters

Page 46: Infrastructure as Code: Why it Matters

Check out the Puppet Labs DevOps survey

https://puppetlabs.com/2014-devops-report

Data Is Awesome

Page 47: Infrastructure as Code: Why it Matters

fin