In the second part of the blog series we show the usability of containers in the continuous delivery pipeline within a cloud environment.
Author: Christian Sanabria
Use of containers for a continuous delivery pipeline within a cloud environment: Mainly for application development, but of course also for images themselves.
The infrastructure in classical software development looks something like this:
This setup has some disadvantages:
In the world of containers and container orchestration, the infrastructure looks something like this:
With this setup, the disadvantages of the «classic» pipeline can be elegantly eliminated:
The use of containers and container orchestration, together with a cloud environment, creates a new continuous delivery pipeline. This is ideal for efficient software development and fast time-to-market. Builds, testing and deployment is independent of other applications for each project across all staging environments, which massively increases stability and reproducibility. The coordination of test data is simplified, since only one global state needs to be maintained, which is instantiated as required and discarded after the tests and is therefore available in a consistent state at all times. The maintenance of a continuous integration environment as well as several instances of test tools is replaced by the maintenance of images and is therefore no longer necessary.
The construction of such a container-based continuous delivery pipeline is associated with more or less high initial costs. Above all, the development of the images and the provision of the cloud environment should not be neglected. With images we have to think about how configurations or test data can be loaded at container startup. Especially with standard products, additional work in image design is to be expected. Likewise, under certain circumstances, adjustments to processes and interfaces, both electronic and human, may become necessary.
However, the initial effort does not have to be made in a big bang, but each module of the continuous delivery pipeline can be migrated individually and as required. This allows for sensible planning and implementation without major risks. The goal of a DevOps organization is approached with big steps, because the dedicated containers transfer much more responsibility to the developers: They maintain and deploy the images for their tools themselves. Accordingly, the operation is relieved and can concentrate on its core tasks instead of dealing with development and continuous integration environments.
With the continuous delivery pipeline for images and the provision of this pipeline by means of containers, the only thing missing is the deployment of in-house developments in containers across different stages. This is done using builder images (source-to-image, S2I). In Part 3 «Deploying Containers in a Continuous Delivery Pipeline» we will discuss the strength of containers in terms of continuous delivery.