Information Technology Reference
In-Depth Information
software developers and system administrators even if they worked for the same company.
They worked in “silos,” with each group unaware of the concerns of the other, and neither
sideseeingthe“bigpicture.”Inanorganizationalchart,theirhierarchiesmightmeetonlyat
theCEOlevel.Thesoftwaredeveloperscontinuedtodevelopsoftwareinisolation,without
a motivating sense of its future use, and the sysadmins continued to struggle to meet high
availability requirements with buggy software.
Insuchasituation,operationsisgenerallyimprovedthroughadhocsolutions,bywork-
ing around problems and creating optimizations that are limited in scope. Excellence in
operationalefficiency,performance,anduptimeishinderedbythisapproach.Alas,thewa-
terfall approach is from a time when we didn't know any better. 1
1 . Or did we? Royce's 1970 paper, which is credited with “inventing” the model, actually identifies it so Royce
can criticize it and suggest improvements. He wrote it is “risky and invites failure” because “design iterations are
never confined to the successive step.” What Royce suggests as an alternative is similar to what we now call
Agile. Sadly, multiple generations of software developers have had to suffer through waterfall projects thanks to
people who, we can only assume, didn't read the entire paper ( Pfeiffer 2012 ) .
8.1.2 The DevOps Approach
Companies with a business model based on the web found that traditional software devel-
opment practices did not work well for meeting very high availability requirements. Oper-
ational concerns are key for high availability, so these companies needed a new approach
with tightly coupled development and operations. A new set of practices evolved as a res-
ult, and the term DevOps ” was coined to describe them. (See Appendix B for a historical
perspective.)
Web-based companies typically introduce new features much more frequently than
those that sell packaged software. Since it is so easy for end users to switch from one
web search engine to another, for example, these companies need to keep improving their
products tomaintain their customer base. Also, web companies release more often because
they can—they don't have to manufacture physical media and distribute it to a customer.
With the traditional packaged software approach, each new release is viewed as having a
destabilizing influence—it is a source of new, unknown bugs.
In a DevOps environment, developers and sysadmins share the responsibility for meet-
ing uptime requirements, so much so that both share oncall duties. Developers have a ves-
tedinterestinmakingsurethattheirsoftwarecanmeetthehighavailabilityrequirementsof
thesite.Developerscollaborateincreatingoperationalstrategies,andoperationsstaffwork
closely with developers to provide implementation and development input. Development
and operations are both handled by a single team, with developers and sysadmins particip-
ating in all stages and being jointly responsible for the final result. The development cycle
should be a seamless set of procedures and processes that result in a finished product—the
Search WWH ::




Custom Search