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