Operations Anti-Patterns, DevOps Solutions

Book description

Operations Anti-Patterns, DevOps Solutions shows how to implement DevOps techniques in the kind of imperfect environments most developers work in. Part technology tutorial, part reference manual, and part psychology handbook, this practical guide shows you realistic ways to bring DevOps to your team when you don't have the flexibility to make sweeping changes in organizational structure.

About the Technology
To some extent, all organizations—even yours—suffer from poor development practices, garbled communications, and outdated legacy systems. The good news is DevOps can help you improve your processes. First, however, you'll need to recognize the core issues holding you back. This book empowers you to deliver DevOps with limited resources while navigating the office politics and entrenched mindsets that are all too common in actual workplaces.

About the Book
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.

What's Inside
  • Turn failure into opportunity
  • Drive change through culture
  • Break down knowledge silos
  • Settle middle management turf wars


About the Reader
For team leaders and managers.

About the Author
Jeffery D. Smith has been in the technology industry for over 15 years. He has managed DevOps transformations at the ad-tech firm Centro and the online ordering platform Grubhub.

Quotes
Very practical approach to patterns and practices for DevOps!
- Foster Haines, J2 Interactive

A pragmatic guide to adopting DevOps practices progressively in every organization.
- Zhuo Hong Wei, Indeed

A comprehensive guide to getting started with DevOps and integrating this culture in your company in the right manner.
- Roman Levchenko, Microsoft Azure MVP

A truly inspiring book with real-world use cases and solutions. Really helpful for managers and technical leaders who want to drive change in their company.
- Michele Adduci, OpenLimit SignCubes GmbH

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

Product information

  • Title: Operations Anti-Patterns, DevOps Solutions
  • Author(s): Jeffrey D Smith
  • Release date: November 2020
  • Publisher(s): Manning Publications
  • ISBN: 9781617296987