There's one technology that shortens release cycles and makes no distinction between staging and production environments. Container technology supports you in optimizing your processes and offers the highest possible degree of independence in software development.
In this blog post we will show you how and why companies work with containers, and what advantages they derive from them. In the context of this contribution, we asked our customer PwC Switzerland to provide you with solid arguments that speak for the use of containers.
The Experience Center of PwC Switzerland, the leading auditing and consulting firm, offers innovation, design and implementation as an agency service. They have chosen to use our Managed Container Platform to improve their processes.
Traditional development has a number of potential challenges, but there are usually three major roadblocks that drive people towards containers:
PwC Switzerland's Experience Center had a complex working environment due to different technical environments and the collaboration of different software development teams within the company. This presented the Experience Center of PwC Switzerland with the challenge of exchanging relevant context between the individual projects.
The Experience Center of PwC Switzerland wanted to break down the silos between teams, minimize the risk from manual deployment processes, customize runtime environments and work on a platform where scalability is inherent.
Get more information about container technology in our new whitepaper:
Before you consider using containers for daily use, the following steps are necessary for the implementation. They serve as examples, which can be adapted to your needs.
1. Container Technology: Everything starts with the selection of a container technology, such as Docker. With this technology you can start experimenting with creating and using images and containers locally.
2. Container Platform: Selecting which platform you will run your containers on and how to build them. Since there are often dependencies between platform and build processes, it is important to check these components carefully. There are numerous options for how to proceed with the chosen path and platform. Below we have specified some of the most common approaches for you:3. Technical Environment of the Platform: Consider the technical environment around the container platform. Switching to container technology means that a new infrastructure mus be built around you in order to reap the greatest benefits. For this reason, you need to choose the tools to log and analyze container output, define the transition to Infrastructure as a Code, find a way to remove barriers from your deployment process, and raise awareness of new skills and technologies in your development teams.
4. Business Environment of the Platform: The environment around the platform from a business point of view must also be taken into account. The following sample questions can help you with the analysis: What challenges arise from the use of shared nodes, which are necessary for compliance with corporate compliance? What is the relationship between the cost of running dedicated hardware in clusters and the savings that can be made through reduced deployment times? Does your current environment support the DevOps philosophy of fast and frequent release publishing? Does your current corporate culture support the DevOps philosophy?
5. Automated Replication: Put in place the needed tools to build and use these images in all environments. In this way functional processes are automatically replicated again and again and best practices of the first environment are implicitly used everywhere.
The Experience Center of PwC Switzerland started the implementation process with Docker as the core container technology and first started by creating working runtime application images locally. The Experience Center of PwC Switzerland then investigated possible Paas solutions, it was decided that a pure Kubernetes cluster would have exceeded the amount of knowledge required for operation in a company without a dedicated systems team and therefore the Experience Center of PwC Switzerland opted for OpenShift because of its low barrier to entry for users, fast development pace and for its underlying reliance on open source Kubernetes platform, thus minimizing vendor lock in.
Subsequently, they examined best practices for using OpenShift and decided on the s2i approach for image generation as this would allow reuse of base images across projects, thus reducing the maintenance and upkeep of the runtime environment whilst making updates and improvements easy to deliver in an automated way.
The challenges faced by the Experience Center of PwC Switzerland during implementation ranged from compliance issues, to the use of database upgrade paths during deployment and to questions in the area of application logging. The Experience Center of PwC Switzerland addressed the biggest challenges you face as a container user, as we have seen in discussions with other customers. Another important topic, in addition to the above, is the conversion of applications into a containerised format for both the Experience Center of PwC Switzerland and other users.
We have already listed some of the advantages of containers in the first section. But are containers really that good? The Experience Center of PwC Switzerland was able to answer with a clear yes and proves this with the following facts:
The Experience Center of PwC Switzerland was surprised by the increase of the general project quality, and how early in the development cycle it was possible to catch bugs, this was mainly due to the "real" parity of the containerised environments. The Experience Center of PwC Switzerland was also able to see an increase in the quality and convenience of the code release process, which previously took a lot of time and created a lot of risk.
In additiona, Adrian Christen, Head of Realization at the Experience Center of PwC Switzerland highlights the collaboration with a Managed Service Provider for the implementation and operation. This gave the Experience Center of PwC Switzerland a lot of support in handling containers and applies in particular to application execution and performance enhancement, logging configuration support, good practices in using dockers, and persistent data storage.
If you are convinced of the advantages of containers and would like to find out more about this topic, you will find a lot of interesting information on our website or in our blog.