2. Principles for Avoiding Failure
Avoiding failure is a goal shared by every operations, business, and development team. Although I am more of a manager and software engineer now, my roots are in systems administration. During the dot-com bubble, I managed the systems and network administration for several large dot com
I may be
People on the business side want things desperately, but the want is incomplete because they do not have the skills to execute those wants
Systems administrators like things automated. Ideally, everything would run itself, and all our time would be spent reading our favorite
In my experience, developers have no qualms about pushing code live to satisfy urgent business needs without regard to the fact that it may capsize an entire production environment at the most inopportune time. This happens repeatedly. My assumption is that a developer feels that refusing to meet a demand from the business side is more likely to result in termination than the huge finger-pointing that will ensue
It is not, however, a lost cause. By understanding the dynamics of the business you can
|
Working in Production EnvironmentsThere are so many different levels of production environments that it is difficult to speak to them all. The principles in this chapter can be applied to any important computing environment. Because this book is about Internet architectures, we won't address anything but the infrastructure used to directly service customers over the Internet.
Because most large architectures are run by
In the end it comes down to "don't be stupid." Although this is a simple and an intuitive expectation, what is clearly "stupid" on a small architecture is often subtle on large architectures run by multiple teams. There are three reasons that teams are used to manage projects:
All are obvious reasons, all are important, and all contribute a bit of chaos to the overall system. Through the application of good practices and the use of established tools, the chaos can be kept in check. Without the appropriate approach, working in a fast-moving production architecture is like working on a construction site without OSHA compliance and no hard hatstupid.
Although it may not seem an obvious application at first, in the end it boils down to Murphy's Lawmore
((U+C+I) x (10-S))/20 x A x 1/(1-sin(F/10)) urgency (U): 1 <= U <= 9, complexity (C): 1 <= C <= 9, importance (I): 1 <= I <= 9, skill (S): 1 <= S <= 9, frequency (F): 1 <= F <= 9
This equation illustrates Finagle's Law (a.k.a. Sod's Law) more formally. Although this equation, commissioned by British Gas, may seem a bit contrived despite it
|

The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise

Scalability Rules: 50 Principles for Scaling Web Sites

Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications

The Art of Capacity Planning: Scaling Web Resources