CI & CD

Flexible and reliable through process automation.

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.

system-integrations icon Integration

Reliable code through continuous automated testing.

 

delivery icon Delivery

Code always ready for deployment, thanks to an automated process.

deployment icon Deployment

Automatic deployment of tested code.

The benefits of continuous integration at a glance:

  • Reduction of integration costs
  • Quick response to potential bugs
  • Reliable and automated system
  • Fast through continuous iterations
  • Quality of integrations
  • Prevention of recurring issues

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.

The benefits of continuous delivery and deployment at a glance

  • Code that is ready is reliable
  • Maximum flexibility
  • Checking and deploying the code is automated
  • You can continuously implement improvements without major impact
  • You continuously receive feedback from end users, allowing for ongoing improvements
  • Optionally, even automatically deploy to the production environment