Software development is a complex undertaking composed of multiple processes and tools, and involves people from different departments. They all need to come together and work in a cohesive manner. With so many variables, the risks are high while delivering to the end customers. One small omission or misconfiguration, and the application might come crashing down. This chapter is about adopting and implementing practices that reduce this risk considerably and ensure that high-quality software can be delivered to the customer again and again.
Before getting into the details of DevOps, let's list the problems faced by software companies that DevOps addresses:
- Organizations are rigid and don't welcome change
- Rigid and time-consuming processes
- Isolated teams working in silos
- Monolithic design and big bang deployments
- Manual execution
- Lack of innovation
In this...