0%

Book Description

Operations Anti-Patterns, DevOps Solutions offers clear steps for transforming development and communication. Using jargon-free language, this book describes incremental techniques that pay off immediately. Streamline your workflow, manage unplanned time, and build operational metrics. Whatever your issues, this book holds the keys to organizational success.

Table of Contents

  1. Operations Anti-patterns, DevOps Solutions
  2. Copyright
  3. dedication
  4. contents
  5. front matter
    1. preface
    2. acknowledgments
    3. about this book
      1. Who should read this book
      2. How this book is organized: A roadmap
      3. About the code
      4. liveBook discussion forum
    4. about the author
    5. about the cover illustration
  6. 1 The DevOps ingredients
    1. 1.1 What is DevOps?
      1. 1.1.1 A little DevOps history
      2. 1.1.2 What DevOps is not
    2. 1.2 CAMS, the pillars of DevOps
    3. 1.3 Another DevOps book?
    4. Summary
  7. 2 The paternalist syndrome
    1. 2.1 Creating barriers instead of safeguards
    2. 2.2 Introducing the gatekeepers
    3. 2.3 Examining the gatekeepers
    4. 2.4 Curing paternalism through automation
    5. 2.5 Capturing the purpose of the approval
    6. 2.6 Structuring code for automation
      1. 2.6.1 Approval process
      2. 2.6.2 Automating approvals
      3. 2.6.3 Logging process
      4. 2.6.4 Notification process
      5. 2.6.5 Error handling
    7. 2.7 Ensuring continuous improvement
    8. Summary
  8. 3 Operational blindness
    1. 3.1 War stories
    2. 3.2 Changing the scope of development and operations
    3. 3.3 Understanding the product
    4. 3.4 Creating operational visibility
      1. 3.4.1 Creating custom metrics
      2. 3.4.2 Deciding what to measure
      3. 3.4.3 Defining healthy metrics
      4. 3.4.4 Failure mode and effects analysis
    5. 3.5 Making logging useful
      1. 3.5.1 Log aggregation
      2. 3.5.2 What should I be logging?
      3. 3.5.3 The hurdles of log aggregation
    6. Summary
  9. 4 Data instead of information
    1. 4.1 Start with the user, not the data
    2. 4.2 Widgets, the dashboard building blocks
      1. 4.2.1 The line graph
      2. 4.2.2 The bar graph
      3. 4.2.3 The gauge
    3. 4.3 Giving context to your widgets
      1. 4.3.1 Giving context through color
      2. 4.3.2 Giving context through threshold lines
      3. 4.3.3 Giving context through time comparisons
    4. 4.4 Organizing your dashboard
      1. 4.4.1 Working with dashboard rows
      2. 4.4.2 Leading the reader
    5. 4.5 Naming your dashboards
    6. Summary
  10. 5 Quality as a condiment
    1. 5.1 The testing pyramid
    2. 5.2 Testing structure
      1. 5.2.1 Unit tests
      2. 5.2.2 Integration tests
      3. 5.2.3 End-to-end tests
    3. 5.3 Confidence in your test suite
      1. 5.3.1 Restoring confidence in your test suite
      2. 5.3.2 Avoiding vanity metrics
    4. 5.4 Continuous deployment vs. continuous delivery
    5. 5.5 Feature flags
    6. 5.6 Executing pipelines
    7. 5.7 Managing the testing infrastructure
    8. 5.8 DevSecOps
    9. Summary
  11. 6 Alert fatigue
    1. 6.1 War story
    2. 6.2 The purpose of on-call rotation
    3. 6.3 Defining on-call rotations
      1. 6.3.1 Time to acknowledge
      2. 6.3.2 Time to begin
      3. 6.3.3 Time to resolve
    4. 6.4 Defining alert criteria
      1. 6.4.1 Thresholds
      2. 6.4.2 Noisy alerts
    5. 6.5 Staffing on-call rotations
    6. 6.6 Compensating for being on call
      1. 6.6.1 Monetary compensation
      2. 6.6.2 Time off
      3. 6.6.3 Increased work-from-home flexibility
    7. 6.7 Tracking on-call happiness
      1. 6.7.1 Who is being alerted?
      2. 6.7.2 What level of urgency is the alert?
      3. 6.7.3 How is the alert being delivered?
      4. 6.7.4 When is the team member being alerted?
    8. 6.8 Providing other on-call tasks
      1. 6.8.1 On-call support projects
      2. 6.8.2 Performance reporting
    9. Summary
  12. 7 The empty toolbox
    1. 7.1 Why internal tools and automation matter
      1. 7.1.1 Improvements made by automation
      2. 7.1.2 Business impact to automation
    2. 7.2 Why organizations don’t automate more
      1. 7.2.1 Setting automation as a cultural priority
      2. 7.2.2 Staffing for automation and tooling
    3. 7.3 Fixing your cultural automation problems
      1. 7.3.1 No manual tasks allowed
      2. 7.3.2 Supporting “no” as an answer
      3. 7.3.3 The cost of manual work
    4. 7.4 Prioritizing automation
    5. 7.5 Defining your automation goals
      1. 7.5.1 Automation as a requirement in all your tools
      2. 7.5.2 Prioritizing automation in your work
      3. 7.5.3 Reflecting automation as a priority with your staff
      4. 7.5.4 Providing time for training and learning
    6. 7.6 Filling the skill-set gap
      1. 7.6.1 But if I build it, I own it
      2. 7.6.2 Building the new skill set
    7. 7.7 Approaching automation
      1. 7.7.1 Safety in tasks
      2. 7.7.2 Designing for safety
      3. 7.7.3 Complexity in tasks
      4. 7.7.4 How to rank tasks
      5. 7.7.5 Automating simple tasks
      6. 7.7.6 Automating complicated tasks
      7. 7.7.7 Automating complex tasks
    8. Summary
  13. 8 Off-hour deployments
    1. 8.1 War story
    2. 8.2 The layers of a deployment
    3. 8.3 Making deployments routine affairs
      1. 8.3.1 Accurate preproduction environments
      2. 8.3.2 Staging will never be exactly like production
    4. 8.4 Frequency reduces fear
    5. 8.5 Reducing fear by reducing risk
    6. 8.6 Handling failure in the layers of the deployment process
      1. 8.6.1 Feature flags
      2. 8.6.2 When to toggle off your feature flag
      3. 8.6.3 Fleet rollbacks
      4. 8.6.4 Deployment artifact rollbacks
      5. 8.6.5 Database-level rollbacks
    7. 8.7 Creating deployment artifacts
      1. 8.7.1 Leveraging package management
      2. 8.7.2 Configuration files in packages
    8. 8.8 Automating your deployment pipeline
      1. 8.8.1 Safely installing the new application
    9. Summary
  14. 9 Wasting a perfectly good incident
    1. 9.1 The components of a good postmortem
      1. 9.1.1 Creating mental models
      2. 9.1.2 Following the 24-hour rule
      3. 9.1.3 Setting the rules of the postmortem
    2. 9.2 The incident
    3. 9.3 Running the postmortem
      1. 9.3.1 Choosing whom to invite to the postmortem
      2. 9.3.2 Running through the timeline
      3. 9.3.3 Defining action items and following up
      4. 9.3.4 Documenting your postmortem
      5. 9.3.5 Sharing the postmortem
    4. Summary
  15. 10 Information hoarding: Only Brent knows
    1. 10.1 Understanding how information hoarding happens
    2. 10.2 Recognizing unintentional hoarders
      1. 10.2.1 Documentation isn’t valued
      2. 10.2.2 Abstraction vs. obfuscation
      3. 10.2.3 Access restrictions
      4. 10.2.4 Evaluating gatekeeper behavior
    3. 10.3 Structuring your communication effectively
      1. 10.3.1 Defining your topic
      2. 10.3.2 Defining your audience
      3. 10.3.3 Outlining your key points
      4. 10.3.4 Presenting a call to action
    4. 10.4 Making your knowledge discoverable
      1. 10.4.1 Structuring your knowledge stores
      2. 10.4.2 Creating learning rituals
    5. 10.5 Using chat tools effectively
      1. 10.5.1 Establishing company etiquette
      2. 10.5.2 Moving beyond just chat
    6. Summary
  16. 11 Culture by decree
    1. 11.1 What is culture?
      1. 11.1.1 Cultural values
      2. 11.1.2 Cultural rituals
      3. 11.1.3 Underlying assumptions
    2. 11.2 How does culture influence behavior?
    3. 11.3 How do you change a culture?
      1. 11.3.1 Sharing a culture
      2. 11.3.2 An individual can change a culture
      3. 11.3.3 Examining your company’s values
      4. 11.3.4 Creating rituals
      5. 11.3.5 Using rituals and language to change cultural norms
    4. 11.4 Talent that matches your culture
      1. 11.4.1 Old roles, new mindset
      2. 11.4.2 The obsession with senior engineers
      3. 11.4.3 Interviewing candidates
      4. 11.4.4 Evaluating candidates
      5. 11.4.5 How many candidates to interview?
    5. Summary
  17. 12 Too many yardsticks
    1. 12.1 Tiers of goals
      1. 12.1.1 Organizational goals
      2. 12.1.2 Departmental goals
      3. 12.1.3 Team goals
      4. 12.1.4 Getting the goals
    2. 12.2 Consciousness around what you work on
      1. 12.2.1 Priority, urgency, and importance
      2. 12.2.2 The Eisenhower decision matrix
      3. 12.2.3 How to say no to a commitment
    3. 12.3 Structuring your team’s work
      1. 12.3.1 Time-slice your work
      2. 12.3.2 Populating the iteration
    4. 12.4 Unplanned work
      1. 12.4.1 Controlling unplanned work
      2. 12.4.2 Dealing with unplanned work
    5. Summary
    6. Wrapping it all up
  18. index
3.23.101.60