47
Infrastructure as Code Why it matters

Infrastructure as Code: Why it matters

Embed Size (px)

Citation preview

Infrastructure as Code

Why it matters

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

@ccaum

DevOps

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

“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.”

Dev Ops

The cause

Dev Ops

The solution

DevOps

Product Delivery Process

ProblemStatement

ProblemPrioritization

Design /Development Deployment Monitoring

DevDevOps

Ops

Product Management

The Three Ways -- Gene Kim

Systems Thinking

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

Amplify Feedback Loops

Build quick, short, feedback into the process

Culture of Experimentation and Learning

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

Top 5 Predictors of IT PerformancePuppet Labs DevOps Survey

● 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

● Single source of truth

● Causality is easily determined

● Benefits extend to both system and application configuration

Version Control

● Diagnose problems faster

● Test the application, not just the infrastructure

● Post deploy tests

Proactive Monitoring

● Bureaucracy kills (productivity)

● Trust increases throughputHigh Trust Culture

● Act with expertise, not authority

● Interactions are about both teams achieving the shared business goals

Win-Win culture

Empathy rarely extends beyond our

line of sight

[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

● 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

The Business

● Speed

● Innovation

● Availability

● Stability

Business Goals

● Time-to-market matters

● Cycle time matters

● Dependable cadence matters

[Business] Speed

● Collaboration

● Experimentation

● Rapid validation

● Market clarity

[Business] Innovation

● 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

● Infrastructure Trust

● Mean-time to recovery[Business] Stability

Infrastructure as Code

DevOps is to Infrastructure as Code

as Agile is to Scrum

Infrastructure as Code is a requirement for DevOps,

but is not sufficient

Pragmatism

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

Pragmatic Goals

● Code is portable

● Code is reusable

● Code is version controlled

(Vagrant is awesome)

Production-like Dev Env

● 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

● Code is repeatable

● Code is shareable

● Code is promotable

● Code is testable

Continuous Delivery

● 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

● 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

Tips

● 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

● Approachability

● Opinionated

● Declarative

● Idempotency

● Reporting

The Language

Conclusion

but requires pragmatismDevOps is about culture

in relation to the product delivery process

Collaboration is key

but is insufficientInfrastructure as Code is necessary

(period)The language matters

Check out the Puppet Labs DevOps survey

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

Data Is Awesome

fin