In no other area so many steps can be automated as in the build and deployment process. Once set up, a CI / CD pipeline forms the backbone of every software development. But what is your own CI/CD pipeline? Which topics have to be considered?
Continuous Integration (CI) comprises the steps from the source code to the deliverable (and tested) artifact, while Continuous Delivery (CD) describes the delivery of the artifact to the end user.
Nowadays, these two components interlock seamlessly, so that we are only talking about CI / CD pipelines. Basically, this is a classic EVA principle: Executable artifacts are generated and delivered from input data (source code, images, etc.).
Once set up, they form the backbone of software development:
For the implementation of CI / CD pipelines, some "standard solutions" have been established over the years:
Since we are repeatedly asked which system we recommend: We know from years of experience that there is no general answer. While the pipeline is written in one tool with Groovy, other tools use graphical interfaces or YAML. Depending on the project, the environment and the existing know-how, the decision for a suitable tool should be made. In principle, each of the tools is ideally suited for executing the pipelines and offers interfaces for the systems involved, from code management to deployment.
Just contact us if we can support you in choosing a suitable pipeline tool!
A pipeline definition can look slightly different depending on the CI / CD solution. To show you how a pipeline can be structured and what tasks it can perform, let's take the example of a declarative Jenkins pipeline. Such a pipeline consists of at least three parts:
With such a minimal pipeline, many important processes can already be automated. In addition, there are a number of other options to configure your CI / CD processes individually and to adapt them to your needs.
Tools for build management are to be distinguished from CI / CD pipelines. These tools are specialists for the first step in every CI / CD pipeline: The creation of an executable artifact from source code, images, fonts or libraries. In test automation, we use build management tools such as Maven or Gradle to build test automation solutions and provide them on the test system.
The last step of a pipeline is usually the publication of the software or the further deployment in live operation. Colloquially, these terms are often used synonymously, but describe different areas:
How often the deployment in the productive environment takes place depends on the specific project situation. In highly regulatory areas, there are often defined time windows for an update, while in agile projects, continuous updates are definitely possible.
Talk to us so that we can define and implement the perfect pipeline together!