Information Technology Reference
In-Depth Information
Consistent Software Development Life Cycle (SDLC): Bringing both the applic-
ation itself and the deployment/operations code together into the same SDLC is
key to keeping the two in sync. The “throw it over the wall to deployment” model
is anathema in DevOps, where development and operations are tightly coupled.
The deployment tools are developed and tested in lockstep with the applications
themselves, following a shared release cycle.
Managed Configuration and Automation: The configuration files of all applica-
tions that are required for the service are kept in source code control and are sub-
ject to the same change management as the rest of the code. The same is true for
all automation scripts.
Infrastructure as Code: With a software-defined datacenter (i.e., virtual ma-
chines), you can keep a description of the entire infrastructure as code that can be
maintained under revision control. Infrastructure as code is further described in
Section 10.6 .
Automated Provisioning and Deployment: Every step of the deployment process
is automated and/or scripted so that one can trigger a build that will go all the way
through self-test to a deployment, or can trigger a deployment via a separate build
command.
Artifact-Scripted Database Changes: Rather than manual manipulation of data-
base schema, changes to databases are also treated as code. They are scripted,
tested, versioned, and released into staging environments.
Automated Build and Release: The output of a build cycle is a valid set of ap-
plication and deployment objects that can be deployed to a staged environment.
Builds have makefiles or other configuration files that treat the build as a series of
dependencies and contracts to fulfill, and can be triggered by check-ins or by spe-
cific command. Assembling stages of a build by hand is counter to repeatability
and ease of operation.
Release Vehicle Packaging: As noted earlier, the build cycle creates packaging for
the application to facilitate its deployment. The end product of a build does not re-
quire by-hand packaging to prepare it for deployment, nor is software deployed to
live systems via checkout from a repository or compiled on each host before use.
Abstracted Administration: Abstracted administration describes system adminis-
tration tasks at a high level and lets automation decide the right steps to perform
for a given operating system. Thus we might have a configuration file to provision
a new user that says “create user” rather than the steps required for Linux (“append
this line to /etc/passwd, this line to /etc/shadow, and this line to /etc/group”) or
Windows (“create the user in ActiveDirectory”). By doing the initial setup work
Search WWH ::




Custom Search