My notes from the DevOps Handbook

by Gene Kim, Jez Humble, Patrick Debois, John Willis

Enable Fast and Reliable Automated Testing

Without automated testing, the more code we write, the more time and money is required to test our code - in most cases, this is a totally unscalable business model for any technology organization.

Continuously build, test and integrate our code and environments

Build quality into the product already at the earliest stages by developing automated tests as part of developers' daily work.

In DevOps, continuous integration mandates running on production like environments and passing acceptance and integration tests.

This approach assures us that we are always in a deployable state.

Critical reasons for automated build and test processes:

Deployment pipeline is the platform through which testers request and certify builds during acceptance and usability testing and will run automated security and performance validations.

Creating containers in a deployment pipeline enables developers to build and run more tests on their workstations instead of on testing servers getting faster feedback. Docker can be used as a packaging mechanism to provide consistency across all environments.

Our deployment pipeline is foundational for our deployment processes as our VCS.

Our continuous integration practices require these capabilities: