Upload
jennifer-davis
View
209
Download
3
Embed Size (px)
Citation preview
Demystifying DevOpsJennifer Davis @sig je
Silicon Valley Code Camp 2016
Email: [email protected] Twitter: @sig je 1
Mark Lavi$ cat ~/.signature
DevOps and Automation Architect, Nutanix || [email protected]:+1-650-400-2100 || Twitter @calm_mark || GitHub @mlavi
$ cat ~/.profile || curl http://mlavi.github.io/about/
Previously:
4 DevOps Lead at Pertino (Cloud VPN provider)
4 Operations at Kaazing (HTML5 WebSocket pioneer)
4 Webmaster at Netscape.com, cnnfn.com, Silicon Graphics
4 Technology Evangelist for LDAP and JavaScript
Infrastructure as Code blog = http://mlavi.github.io
Email: [email protected] Twitter: @sigje 2
Jennifer Davis
4 Co-Author, Effective DevOps
4 Software Engineer, Chef
4 Global Organizer, DevOpsDays
Email: [email protected] Twitter: @sigje 3
Communication4 Twitter: @sig je #effectivedevops
4 Email: [email protected]
Email: [email protected] Twitter: @sigje 4
Agenda4 A Definition and Cultural Rendering of DevOps
4 Foundational Concepts
4 The DevOps Tools Journey
Email: [email protected] Twitter: @sigje 5
Audience: What is DevOps?
Email: [email protected] Twitter: @sig je 6
DevOps has many implications (values, tools, and practices) and it is^ dynamically bound to the capabilities of the people who practice it,^ therefore it will vary by organization.Illustration: DevOps Automation Diagram^ Rumination: I Dream of DevOps, but What is DevOps?
What is DevOps?
Mark's definition:
DevOps is the process of removing all frictionbetween the developer and customer value.
Email: [email protected] Twitter: @sigje 7
It is a way of thinking and a way of working that enables individuals and organizations to develop and maintain sustainable work practices.^ It is a cultural framework for sharing stories and developing empathy, enabling people and teams to practice their crafts in effective and lasting ways.
What is DevOps?
Jennifer and Katherine's definition:
Devops is a cultural movement that changes how individuals think about their work, values the diversity of work done, supports intentional processes that accelerate the rate by which businesses realize value, and measures the effect of social and technical change.
Email: [email protected] Twitter: @sigje 8
Why is DevOps So Hard?
Beware of DevOps Hype and Abuse!
Ask yourself: Does this [thing] meet our definition of DevOps?
Email: [email protected] Twitter: @sigje 9
MisconceptionDevOps is only Developers and System
Administrators
Email: [email protected] Twitter: @sig je 10
MisconceptionDevOps is a Team
Email: [email protected] Twitter: @sig je 11
MisconceptionDevOps is a Job Title
Email: [email protected] Twitter: @sig je 12
MisconceptionYou need a DevOps Certification
Email: [email protected] Twitter: @sig je 13
MisconceptionDevOps is only Developers and System
Administrators
Email: [email protected] Twitter: @sig je 14
A Brief History of DevOps
Email: [email protected] Twitter: @sig je 15
1940s-1960s4 ENIAC - Developer as Operator
4 1960s Advent of Software Engineering - Margaret Hamilton
4 Late 60s - Advent of Propreitary Software and Standardization
Email: [email protected] Twitter: @sigje 16
1970s-1990s4 Late 70s - The Age of the Network
4 The Beginnings of a Global Community
4 90s - The Age of Applications and the Web
Email: [email protected] Twitter: @sigje 17
2000s4 2000 - Software Development Methodologies
4 Extreme Programming
4 Agile Manifesto
4 2000s - Open Source Software, Proprietary Services
4 2008 - Agile Infrastructure at Agile Conference
4 Patrick Debois and Andrew Clay Shafer
4 Marcel Wegermann starts Agile System Administration mailing list
Email: [email protected] Twitter: @sigje 18
20094 May: "10+ Deploys Per Day: Dev & Ops Cooperation at Flickr" Video Slides by John Allspaw and Paul Hammond at Velocity Conference
4 Twitter hashtag #devops from Andrew Clay Shafer inspires Patrick Debois
4 October: Patrick Debois starts DevOpsDays Belgium
Email: [email protected] Twitter: @sigje 19
2016200x more frequent deploys24x faster recovery from failure3x lower change failure rate2555x shorter lead times22% less time on unplanned work and rework
— 2016 State of DevOps Report
Email: [email protected] Twitter: @sigje 20
20164 42 devopsdays in 2016
4 Topic specific conferences like Monitorama and Automacon
4 Track at many conferences!
References:
Effective DevOps by Jennifer Davis and Katherine Daniels * devopsdays Events Calendar
Email: [email protected] Twitter: @sigje 21
Effective DevOps
Email: [email protected] Twitter: @sig je 22
CollaborationIndividuals working together with shared interactions and input building towards a common goal.
Email: [email protected] Twitter: @sigje 23
Collaboration4 Multiple types of collaboration
4 Monitoring for single points of failure
4 Monitoring burnout
Email: [email protected] Twitter: @sig je 24
* Lots of Communication* Contribute equally to team's discussions* Theory of Mind* Increased diversityWhy Some Teams are Smarter than OthersAnita Woolley and Thomas Malone
Smarter Teams
build better value
Email: [email protected] Twitter: @sig je 25
AffinityBuilding inter-team relationships, empathy and trust in support of shared organizational and business goals.
Email: [email protected] Twitter: @sigje 26
Affinity4 Organizational signal
4 Shortens time to get work done
4 Reduces communication barriers
4 Build trust based on regard.
Email: [email protected] Twitter: @sigje 27
ToolsAccelerators of culture that if used effectively can enhance and support a culture of collaboration and affinity.
Email: [email protected] Twitter: @sigje 28
Single Point of AuthorityExamples:
4 Individual - Editor, Desk, Work Environment
4 Group - Workflow, Local Development Environment
4 Organization - Bug tracking, work visualization
Email: [email protected] Twitter: @sigje 29
Tools are critical to DevOps in how they are chosen, implemented, and used by humans.
Email: [email protected] Twitter: @sigje 30
ScalingApplying the considerations of collaboration, and tooling throughout various inflection points of an organizations lifecycle.
Email: [email protected] Twitter: @sigje 31
Effective DevOps4 Collaboration
4 Affinity
4 Tools
4 Scaling
Email: [email protected] Twitter: @sigje 32
Foundational Concepts
Email: [email protected] Twitter: @sig je 33
Methodologies4 Software
4 Waterfall
4 Agile
4 Scrum
4 Operations
4 ITIL
4 COBIT
4 Systems
4 Lean
Email: [email protected] Twitter: @sigje 34
Version Control4 A record of changes to files or sets of files stored
within the system.
Email: [email protected] Twitter: @sigje 35
Test Driven Development4 the process of a developer writing a failing test for new code functionality, then the code itself, and finally ensuring that the test passes when the code is complete.
Email: [email protected] Twitter: @sigje 36
Application Deployment4 the process of planning, maintaining, and executing on the delivery of a software release.
Email: [email protected] Twitter: @sigje 37
Continuous Integration4 the process of integrating new code written by
developers with a mainline or “master” branch frequently throughout the day.
Email: [email protected] Twitter: @sigje 38
Continuous Delivery4 a set of general software engineering principles that
allow for frequent releases of new software through the use of automated testing and continuous integration.
Email: [email protected] Twitter: @sigje 39
Continuous Deployment4 the process of deploying changes to production by
defining tests and validations to minimize risk.
Email: [email protected] Twitter: @sigje 40
Continuous delivery is the general set of principles that can be applied to any software development project, including
the internet of things (IoT) and embedded software, while continuous
deployment is specific to web software. 1
Jez Humble (paraphrased)
Email: [email protected] Twitter: @sigje 41
Minimum Viable Product4 a prototype of a proposed product with the
minimum amount of effort required to determine if the idea is a good on
Email: [email protected] Twitter: @sigje 42
The DevOps Tools Journey
Email: [email protected] Twitter: @sig je 43
Misconception:DevOps is only about the Tools
Email: [email protected] Twitter: @sig je 44
Misconception:DevOps is about Automation
In their efforts to compensate for the unreliability of human performance, the designers of automated control systems have unwittingly created opportunities for new error types that can be even more serious than those they were seeking to avoid.
— James Reason, Managing the Risks of Organizational Accidents
Email: [email protected] Twitter: @sigje 45
Tools are reflection of CultureWe become what we behold.We shape our tools and then our tools shape us.
— Father John Culkin
Email: [email protected] Twitter: @sigje 46
The DevOps Tools JourneyCurrent Waypoints
4 Agile Infrastructure in the Cloud
4 Infrastructure as Code
4 Pets, Cattle, and Bacteria
4 Test, Build, Deploy Pattern
4 Infrastructure Orchestration and Models Email: [email protected] Twitter: @sigje 47
Agile Infrastructure in the Cloud
4 All services, platforms, & tools are evolving
4 RESTful APIs are everywhere
4 Opportunity to codify and automate everything
4 ...on private, public or hybrid cloud architectures
4 Domain expertise democratized, repeatable, and auditable
4 Ephemeral everything = agility
Email: [email protected] Twitter: @sigje 48
Infrastructure as Code
Infrastructure as Code = software engineering practices applied to infrastructure.
4 Version everything: even the database
4 Configuration Management
4 Ephemeral stacks and environments
Email: [email protected] Twitter: @sigje 49
Infrastructure as Code (continued)
4 Immutable Infrastructure on the rise (cattle)
4 Dynamic versus static configuration, feature flags
4 Bespoke, hand-crafted, snowflake servers
4 Application expertise democratized, repeatable, and auditable
Email: [email protected] Twitter: @sigje 50
The Future of Infrastructure as Code
4 Combining software engineering with operations should lead to my dream...
4 Operations as Code via behavior and test driven operations.
Email: [email protected] Twitter: @sigje 51
Pets, Cattle, and Bacteria
Email: [email protected] Twitter: @sig je 52
Lifecycle of systems4 Pet - uptime of years, named, backup maintenence
4 Cattle - numbered, can fail and reprovision anytime
4 Bacteria - age is different from macroorganisms
Email: [email protected] Twitter: @sigje 53
Reference: Discussion on attribution of Pets v. Cattle
Pets, Cattle, and BacteriaImmutable Infrastructure4 Cloud agility enables ephemeral fleets
4 Build time infrastructure artifacts = build system + configuration management
4 Ideal for non-persistant tiers:
4 Simplify deployment: ship logs, metrics, etc. off the "box"
4 Roll 'em in and out of the load balancer, measure twice!
Email: [email protected] Twitter: @sigje 54
Pets, Cattle, and BacteriaMicroservices4 When monolithic, long-lived infrastructure decomposes, so goes the application...
4 Refactor and decompose the monolith into public API modules (REST),which enables independent, continuous:
4 delivery = build and deploy
4 testing and monitoring
4 (per component, team, feature, etc.)
4 API version management and feature lightness topics
Email: [email protected] Twitter: @sigje 55
Bacteria is from Tori Wieldt, New Relic Developer Advocate^ From Pets to Cattle to Bacteria Presentation^ Tori Weildt^ https://www.youtube.com/watch?v=neZhJXUKSak
Pets, Cattle, and BacteriaContainers4 Agile, lightweight, smaller, faster VMs:
4 ideal approach for continuous delivery of immutable infrastructure artifacts, especially microservices
4 minimal difference between laptop and production
4 Bacteria1 = lifecycle on the order of seconds: build, run, test, destroy
4 Early days: Docker as a tool versus Docker tool set as a platform
4 PERL motto = There is more than one way to do it.
4 Production challenges remain: orchestration, health, networking, persistence, dynamic configuration
Email: [email protected] Twitter: @sigje 56
Test, Build, Deploy Pattern
Email: [email protected] Twitter: @sig je 57
Test, Build, Deploy PatternDevelopment and production:
4 Differences should be minimized
4 Troubleshooting should be the same.
Email: [email protected] Twitter: @sigje 58
Test, Build, Deploy Pattern4 Test on your laptop
4 Build on your laptop
4 Deploy on your laptop
4 Make code configurable with tools
4 Repeat for integration, metrics, logs, etc.
4 Commit to repository -> continuous integration & delivery
Reference: BTD Pattern Blog Entry
Email: [email protected] Twitter: @sigje 59
Test, Build, Deploy PatternSandbox Automation
4 Test Kitchen
Email: [email protected] Twitter: @sigje 60
Infrastructure Orchestration and Models
Email: [email protected] Twitter: @sig je 61
Infrastructure Orchestration4 Orchestration of the entire distributed system/stack/environment
4 Application management lifecycle: all dependencies and operations
4 Continuous Deployment + Upgrades:
4 Blue-Green (Red-Black): parallel population, atomic cutover
4 Rolling vs. canary: incremental cutover
4 Test and measure your operations
4 Close the loop to Continuous Delivery
Email: [email protected] Twitter: @sigje 62
Infrastructure Models4 Local versus Global Redundancy
4 Load balance everything
4 Clustered everything
4 Automate runbooks = operations as code
4 ChatOps = democratized operations are agile ops
Email: [email protected] Twitter: @sigje 63
Next Generation DevOps4 DevOps Tools and Patterns beyond the engineering domain
4 Application of DevOps to all parts of the business
4 Business agility
4 Compliance and Security
4 Legal
4 HR
4 Marketing
Email: [email protected] Twitter: @sigje 64
Your Next Steps
4 Find your local DevOps community and join us!
4 Mark's slides on Infrastructure as Code blog =http://mlavi.github.io/post/devops_demystified/
4 These slides on SlideShare
Email: [email protected] Twitter: @sigje 65
Agenda4 A Definition and Cultural Rendering of DevOps
4 Foundational Concepts
4 The DevOps Tools Journey
Email: [email protected] Twitter: @sigje 66