Automated software development and release
Developing and releasing software is a complex process, especially for large digital projects where applications and infrastructures are becoming increasingly intricate. To develop, test, and release software quickly and consistently, and to manage that process effectively, developers have automated these workflows.
CI: continuous integration
Continuous Integration (CI) means that a developer merges their own code several times a day with the code from other developers from the very beginning. The code is then automatically subjected to a series of tests. This helps detect bugs at an early stage, speeds up the collaborative development process, and minimizes costs.
The quality and cost of integrations are determined by the degree of automation in the process. Manually checking whether the code meets requirements, is free of bugs, or doesn’t conflict with existing functionalities can be expensive, time-consuming, and error-prone. That’s why we use an automated system in CI to conduct thorough tests. When a developer submits their code into the shared system, it is automatically checked. The goal of CI is to make integration a simple, repeatable process that becomes part of the daily workflow for developers.
CD: continuous delivery and deployment
Continuous delivery (CD) automates the preparation of developed code. Continuous deployment goes one step further by automatically deploying the new code. Sounds complex? Let us explain.
Continuous delivery
is the follow-up to continuous integration. In continuous delivery, the developed base code is prepared as a kind of ready-to-use package. This preparation is an automated process, making it less error-prone than doing it manually. As a customer, you can be confident that the functionality prepared for you is reliable and can be released at any time without complicated procedures or last-minute tests. As a result, the go-live process is ultimately a small step.
Continuous deployment
automatically runs the prepared code package through the OTAP pipeline. OTAP stands for Development-Test-Acceptance-Production. Each package goes through these four stages. The first two happen in the background, so as a customer, you don't notice them. Once a new functionality is in the Acceptance stage, you as the customer can test whether everything works as intended. If so, it moves to Production, which is the live environment. In continuous deployment, the code package automatically passes through these four steps. Bug fixes and new features quickly reach the user, and you also receive feedback on them promptly. However, not everyone opts for continuous deployment. If, for example, you prefer to control the timing of the go-live, manual deployment might be a better option.