Chapter 15 Dev Ops
Chapter 15 Dev Ops
Chapter 15 DevOps
Introduction
• Previous chapters describe programming paradigms and technologies used in
building and running software in the cloud.
• This chapter describes a methodology that teams use to build and deploy
software and explains why it is especially appropriate for cloud software.
• Even if the OS does not change, users may suggest new features, extensions,
or other changes to improve the program.
• The DevOps methodology adopts and extends the Agile approach. Instead
of merely concentrating on building software applications that will be sold
to customers who run them, DevOps focuses on software that will be
deployed and managed by a local Operations team.
• The idea of scheduling a time for each major release does not work well in a
cloud environment. For example, halting all instances of a microservice
before a new release can be deployed may be inconvenient or impossible.
Summary
• The traditional software engineering paradigm collects many changes into
each version of software, and then schedules a major release that puts the new
version into production. Traditionally, software production uses three
separate teams for development, testing, and operations. The traditional
approach does not work well in a cloud environment because it is difficult
to schedule a time to stop all instances and switch to a new version.
• To speed the software cycle, the DevOps approach divides software into
small modules that can be tested quickly and combines testing with
development. To ensure that the resulting software can be deployed and
managed, DevOps integrates the operations team with the development and
testing teams. DevOps strives for continuous integration, allowing changes
and improvements to occur quickly and continually.
• Rather than collecting changes into major releases, DevOps strives for
continuous deployment of new versions that each contain a minor change.
Several techniques enable continuous deployment.
o The blue/green approach divides the production into two parts, using
one to test the new version and another to run the old version. Once
the new version has been tested thoroughly, all users move to the new
version until a next version has been created.