This chapter covers
- Recognizing why developers should care about operations
- Understanding obstacles to successful deployments
- Eliminating those obstacles
- Implementing continuous delivery
- Impact of cloud-native architectural patterns on operations
As a developer, you want nothing more than to create software that users will love and that will provide them value. When users want more, or you have an idea for something you’d like to bring to them, you’d like to build it and deliver it with ease. And you want your software to run well in production, to always be available and responsive.
Unfortunately, for most organizations, the process of getting software deployed in production is challenging. Processes designed to reduce risk and improve efficiency have the inadvertent effect of doing exactly the opposite, because they’re slow and cumbersome to use. And after the software is deployed, keeping it up and running is equally difficult. The resulting instability causes production-support personnel to be in a perpetual state of firefighting.
Even given a body of well-written, completed software, it’s still difficult to
- Get that software deployed
- Keep it up and running