The advent of online businesses has created new opportunities and fierce competition. Companies want to get their products and services to market as fast as they can, and releases that occur in periods of months or years are no longer competitive. As a result, the pattern of how to release software is changing from large, infrequent releases of new software to small releases that occur very frequently, as shown in Figure 1. The ultimate goal is the continuous delivery of software updates.
This paper explains the world of continuous delivery and its underlying philosophy, devops. Continuous delivery is an automated pipeline constructed with various technologies that allows you to ensure that your code is always ready to be released. It does not mean that you have to release every change you implement: That is a business decision. It does mean that when you choose to release, your code is ready, fully functional, and fully tested.
In conjunction with the technology is the emerging devops methodology, which is an outgrowth of the agile movement. This movement stresses collaboration among groups that have often found themselves at odds, in particular development teams and operations teams. This increased level of collaboration blurs the boundaries between infrastructure and code. Looking at application code and infrastructure holistically rather than as separate disciplines and treating them the same in terms of automated delivery provides compelling benefits in terms of time to market and overall stability.