Evan Harmon - Memex

DevOps

DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle.
The Gist

Concepts & Principles

DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture), and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology— especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.

3 Different Definitions of DevOps

  • The concepts and philosophy, the goals, the unification of ops and dev, attaining faster delivery of higher quality code
  • The role of DevOps - DevOps Engineer
  • The tools and processes of DevOps - pipelines, monitoring, etc.

People Over Process Over Tools

  • Don't decide the tool and work backwards to what process and people are needed.

Breakdown Traditional Silos and Competing Incentives between dev and ops

  • dev (deliver features fast) and ops (stability - manage risk by fewer changes to prod)
  • Kind of emerged as the unification of two otherwise competing demands - slow and stable IT operations vs quick and adaptive development.
  • Don't just throw it over the wall - we are all responsible for the whole process - we share the goals of both speed of delivery of features plus stable production uptime.
  • Avoid the black box nature of silos and non-collaborating teams that tends toward finger pointing and mistrust

Embedded, Cross-functional Teams

  • E.g., embedding ops people on a dev team
  • Greater collaboration among teams
  • Systems Thinking, Feedback Loops, & Continuous Experimentation

Andon Cords

Visible Ops

  • non-fragile artifacts, repeatable builds, etc.

More of a culture than a particular role/position, methodology or tool.

Blameless Postmortem

Consensus-based DevOps

[How to achieve DevOps consensus: The what and how of DevOps · Raygun Blog](https://raygun.com/blog/what-is-devops/

Best Practices

Keep builds and deploys fast

Each developer is responsible for their check-in through deployment to prod

Public Static Pages and build statuses

  • Like those build passing green light things on open source package pages
  • Public status pages and public build success/verification/tests
  • Have a slack channel that sends the deployment status at each stage.
  • be public and honest about outages, and be open and clear with what went wrong with your customers

Artifacts should be immutable.

  • e.g., remove write access to the package in artifactory
  • People need to have no doubts that the artifact is identical
  • Deployments should go to a copy of production (staging)
  • Deployments should be idempotent.
  • Stop deploy if previous step fails.

Test fixtures are artifacts so they should be in version control and a repo

Broken builds/own your build

  • Don't check in broken builds, own your build when it breaks

Automate deployments and builds

  • Shouldn't depend on any person or machine to do a build or deployment

Don't ignore broken tests

Always easy, quick way for a dev to rollback any given deployment to handle issues on prod that often arise from a deployment

Simple, trunk-based branching strategy (master/main) and minimize branching

  • Trunk-based Development v
  • Git

Only build artifacts once.

Agile style small, iterative changes

Deployments should always self-validate. At least do a smoke test.

Golden Image or foil ball

  • The idea that the initial base/template image should be as minimal as possible and let your configuration management do as much configuring as possible and while using infrastructure as code.

Automate tests

DevOps ToolChain/Stages/Pipeline

Areas

Inbox

Sources

Web

  • continuousdeliver.com/blog
  • arresteddevops - podcast
  • theagileadmin.com
  • devops.com
  • kitchensoap
  • devopsweekly.com
  • devopscafe.org - podcast

State of DevOps Report

Conferences

  • Velocity
  • DevOps Enterprise Summit
  • DevOps Days

Courses

Books

  • Visible Ops
  • The DevOps Handbook
  • Release It!
  • Continuous Delivery
  • Effective DevOps
  • The Practice of Cloud System Administration
  • The Phoenix Project
  • Web Operations by John Alspaw
  • Lean Software Development: An Agile Toolkit
  • Leading the Transformation
    • For directors, CEOs, etc.

DevOps Roadmap

Videos

Funny

Interview Prep


DevOps
Interactive graph
On this page
DevOps
Concepts & Principles
3 Different Definitions of DevOps
People Over Process Over Tools
Breakdown Traditional Silos and Competing Incentives between dev and ops
Embedded, Cross-functional Teams
The Three Ways from Gene Kim
CALMS DevOps Framework
Chaos Engineering & Antifragility
Andon Cords
Kaizen From Lean which is from Agile Software Development
Visible Ops
More of a culture than a particular role/position, methodology or tool.
Blameless Postmortem
Knowledge Sharing
Consensus-based DevOps
Best Practices
Keep builds and deploys fast
Each developer is responsible for their check-in through deployment to prod
Public Static Pages and build statuses
Artifacts should be immutable.
Shift Left
Test fixtures are artifacts so they should be in version control and a repo
Broken builds/own your build
Automate deployments and builds
Don't ignore broken tests
Always easy, quick way for a dev to rollback any given deployment to handle issues on prod that often arise from a deployment
Simple, trunk-based branching strategy (master/main) and minimize branching
Only build artifacts once.
Agile style small, iterative changes
Deployments should always self-validate. At least do a smoke test.
Golden Image or foil ball
Automate tests
DevOps ToolChain/Stages/Pipeline
Stages of DevOps
DevOps Tools
Areas
+CI CD
Project & Product Management, Ownership, Leadership, & Agile
Virtualization
Containers
Infrastructure as Code
Configuration Management
Orchestration
Microservices
Automation
Build Automation
GitOps
DevSecOps
Security
Passwords & Secrets Management
Security Testing
Shift Left
Software Measurement
Observability
Monitoring
Site Reliability Engineering
Cloud
Software Architecture
Data and information visualization
Data Dashboards
Inbox
Sources
Web
State of DevOps Report
Conferences
Courses
Books
DevOps Roadmap
Videos
Funny
Interview Prep