There are many stages of capability needed to achieve Continuous Deployment. Learn how your organization can achieve the maturity to most successfully deploy software.
Today, most organizations find it challenging to innovate quickly enough to satisfy all of their consumers. DevOps is a set of principles that tries to solve this problem with the ultimate goal of achieving full automation of your software delivery pipelines. This is also called Continuous Deployment.
The picture below shows a high-level maturity model for Continuous Deployment. As shown below, there are multiple stages of capability required to achieve Continuous Deployment. It starts with Continuous Integration.
Most organizations today are at L1 or L2 of this maturity model. However, they are constantly looking to improve to higher levels of maturity.
Successful companies such as Facebook, Netflix, and Amazon have achieved L3 and L4 maturity and, as a result, deliver more value through software at a faster pace than traditional software organizations. However, organizations that have achieved this maturity level have often invested a significant amount of time and resources in order to create their Continuous Deployment pipelines. This often occurs with highly customized designs that piece together specific, fragmented tools via thousands of lines of custom code. Once created, these customized pipelines have achieved the desired automation and speed. However, they are often inflexible and difficult to change.
The best approach is to achieve the needed maturity without significant investment or unwanted rigidity. To do this, you need a platform that does the work for you, from source control to CD. This benefits your organization by placing the focus more on the product than on needing to do repetitive and time-consuming developer work such as writing a lot of code on mundane tasks. If you want to have your own platform that does Continuous Integration and Continuous Delivery, it may not be possible or it may be time-consuming. That's not good for your product because it involves a lot of costs. As mentioned earlier, to spin up servers and other supporting resources, you need to use a platform that helps you mature from L1 to L4 (as shown in the above figure) at your own pace without needing to build homegrown pipelines.
Currently, many tools don't really do Continuous Delivery and mostly focus on Continuous Integration. Luckily, many platforms are starting to do the work from Continuous Integration all the way to Continuous Delivery. Shippable is one such organization that's making it possible.