Date post: | 21-Aug-2015 |
Category: |
Software |
Upload: | puppet-labs |
View: | 213 times |
Download: | 1 times |
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