The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations
Rate it:
Open Preview
Kindle Notes & Highlights
12%
Flag icon
Excella noticed during a team retrospective that their cycle times were beginning to rise. They had what Joshua Cohen described as a case of the “almost dones.” He noted, “During standup, our developers would give an update on the feature they were working on the previous day. They would say, ‘Hey, I made a lot of progress. I’m almost done.’ And the next morning they would say, ‘Hey, I ran into some issues but I worked through them. I just have a few more tests to run. I’m almost done.’”12
13%
Flag icon
Keep Pushing Quality Closer to the Source
13%
Flag icon
The effectiveness of approval processes decreases as we push decision-making further away from where the work is performed.
13%
Flag icon
Lean defines two types of customers that we must design for: the external customer (who most likely pays for the service we are delivering) and the internal customer (who receives and processes the work immediately after us).
13%
Flag icon
Creating fast feedback is critical to achieving quality, reliability, and safety in the technology value stream.
14%
Flag icon
Generative organizations are characterized by actively seeking and sharing information to better enable the organization to achieve its mission. Responsibilities are shared throughout the value stream, and failure results in reflection and genuine inquiry.
15%
Flag icon
the leader’s role is to create the conditions so their team can discover greatness in their daily work.
15%
Flag icon
complementary working relationship and mutual respect that must occur between leaders and frontline workers. According to Womack, this relationship is necessary because neither can solve problems alone—
15%
Flag icon
True North goals,
15%
Flag icon
These target conditions frame the scientific experiment: we explicitly state the problem we are seeking to solve, our hypothesis of how our proposed countermeasure will solve it, our methods for testing that hypothesis, our interpretation of the results, and our use of learnings to inform the next iteration.
15%
Flag icon
Shewhart-Deming PDCA (Plan, Do, Check, Act) continuous improvement cycle.
15%
Flag icon
Eno is credited as saying: “Scenius stands for the intelligence and the intuition of a whole cultural scene. It is the communal form of the concept of the genius.”24
15%
Flag icon
A vital aspect of the culture was that there should be no fear of failures. As Kelly explained, “The odds of creating a new and popular technology were always stacked against the innovator; only where the environment allowed failure could truly groundbreaking ideas be pursued.”
15%
Flag icon
Flow, Feedback, and Continual Learning and Experimentation.
16%
Flag icon
Greenfield development is when we build on undeveloped land. Brownfield development is when we build on land that was previously used for industrial purposes, potentially contaminated with hazardous waste or pollution. In urban development, many
16%
Flag icon
what predicted performance was whether the application was architected (or could be re-architected) for testability and deployability.13
20%
Flag icon
Keith
Interesting but unreadable
21%
Flag icon
Increase the Visibility of Work To know if we are making progress toward our goal, it’s essential that everyone in the organization knows the current state of work.
21%
Flag icon
These observations led to what is now known as Conway’s Law, which states that “organizations which design systems . . . are constrained to produce designs which are copies of the communication structures of these organizations. . . . The larger an organization is, the less flexibility it has and the more pronounced the phenomenon.”2
21%
Flag icon
Done poorly, Conway’s Law will prevent teams from working safely and independently; instead, they will be tightly coupled, all waiting on each other for work to be done,
22%
Flag icon
They created a small team that wrote a PHP object-relational mapping (ORM) layer,* enabling
22%
Flag icon
In the field of decision sciences, there are three primary types of organizational structures that inform how we design our DevOps value streams with Conway’s Law in mind: functional, matrix, and market.
22%
Flag icon
Broadly speaking, to achieve DevOps outcomes, we need to reduce the effects of functional orientation (“optimizing for cost”) and enable market orientation (“optimizing for speed”) so we can have many small teams working safely and independently, quickly delivering value to the customer.
23%
Flag icon
Having architecture that is loosely coupled means that services can update in production independently, without having to update other services.
23%
Flag icon
Conway’s Law helps us design our team boundaries in the context of desired communication patterns but it also encourages us to keep our team sizes small, reducing the amount of inter-team communication and encouraging us to keep the scope of each team’s domain small and bounded.
Keith
Nice in concept, but it requires a larger group of people. Architecting for a team of 10 that has 4 major services would require 40 people, when only 12 total are available. The role of architect seems to be overlooked in this discussion. This might make sense because they should have a higher view as enterprise architect. Still the role of system architect would be desired for each team.
24%
Flag icon
The team’s lead, working with the executive team, decides on the key business metric that the team is responsible for, known as the fitness function, which becomes the overall evaluation criteria for the team’s experiments.
Keith
Supposing the executive team includes architect, product manager, business analyst, and solution management? It would be nice to know what they consider the executive team for these 2-pizza groups.
26%
Flag icon
quick meeting where everyone on the team gets together and presents to each other three things: what was done yesterday, what is going to be done today, and what is preventing you from getting your work done.¶
26%
Flag icon
However, we must remind everyone that improvement of daily work is more important than daily work itself, and that all teams must have dedicated capacity for this (e.g., reserving 20% of all capacity for improvement work, scheduling one day per week or one week per month, etc.). Without doing this, the productivity of the team will almost certainly grind to a halt under the weight of its own technical and process debt.
27%
Flag icon
always use production-like environments at every stage of the value stream. Furthermore, these environments must be created in an automated manner, ideally on demand from scripts and configuration information stored in version control and entirely self-serviced, without any manual work required from Operations.
27%
Flag icon
re-create the entire production environment based on what’s in version control.
29%
Flag icon
Now that our environments can be created on demand and everything is checked into version control, our goal is to ensure that these environments are being used in the daily work of Development. We need to verify that our application runs as expected in a production-like environment long before the end of the project or before our first production deployment.
29%
Flag icon
done, widely defined as when we have “working and potentially shippable code.”
29%
Flag icon
In other words, we will only accept development work as done when it can be successfully built, deployed, and confirmed that it runs as expected in a production-like environment, instead of merely when a developer believes it to be done. Ideally, it runs under a production-like load with a production-like dataset, long before the end of a sprint.
41%
Flag icon
Data supports the importance of architecture and its role in driving elite performance, with the DORA and Puppet 2017 State of DevOps Report finding that architecture was the largest contributor to continuous delivery. The analysis found that teams who scored highest on architectural capabilities could complete their work independently of other teams, and change their systems without dependencies.26
41%
Flag icon
And Martin Fowler’s blog explaining his Strangler Fig Application Pattern is still an essential read. (martinfowler.com/bliki/StranglerFigApplication.html).
42%
Flag icon
•DEBUG level: Information at this level is about anything that happens in the program, most often used during debugging. Often, debug logs are disabled in production but temporarily enabled during troubleshooting. •INFO level: Information at this level consists of actions that are user-driven or system specific (e.g., “beginning credit card transaction”). •WARN level: Information at this level tells us of conditions that could potentially become an error (e.g., a database call taking longer than some predefined time). These will likely initiate an alert and troubleshooting, while other logging ...more
43%
Flag icon
StatsD can generate timers and counters with one line of code (in Ruby, Perl, Python, Java, and other languages) and is often used in conjunction with Graphite or Grafana, which render metric events into graphs and dashboards.