It’s the beginning of January. The conference room is full and the atmosphere could be better. One of our partners has just reported that 150 OpenShift projects in Europe are waiting for specialists and therefore cannot be carried out. We knew that our plan to set up a productive Red Hat OpenShift container platform by the end of April was ambitious but had no idea how many companies were currently struggling with it. Nevertheless, we took up the challenge! OpenShift in our own IT centre is an important milestone on our journey to the cloud.
What is cloud?
What is cloud?
The most widespread definition of cloud comes from the National Institute of Technology and is a good starting point for anyone involved in the subject. In addition, we have tailored the term for our own purposes. We define CLOUD as a platform for the development and operation of horizontally scalable applications. If a horizontally scalable application requires more performance, a further instance of the application is made available – and that fully automatically within a few seconds. When the load on the application drops, the number of instances is reduced to a minimum.
Safely packed on the journey
In order to achieve this, the applications now run in containers and no longer directly on the server. The software container cordons off the application from other processes on the server in just the same way as freight containers insulate the goods being transported from the outside world. No matter what goods are being transported (whether bamboo shoots or electronic components), all the measures for safe transport are taken inside the container. All additional programs, libraries and interfaces that the application requires for operation are also supplied in the software container.
OpenShift takes over the role of the container port here. It scales the application by starting and stopping containers. It also ensures that containers that belong together – and only these – can communicate with one another, even if they are located on different servers. With these functions, OpenShift corresponds to our definition of a cloud platform. With the creation of the OpenShift container platform, we are thus laying the foundation stone for our private cloud.
This 4-minute video describes very well how the use of freight containers has changed the world. In the IT world, software container are leading to a similar change.
Why the expense?
The containerisation of applications and a powerful cloud platform allow a large number of problems to be solved. As containers provide all the tools and frameworks that an application needs, a software developer can be sure that an application that runs on his computer will also function in the development environment and will run successfully in production.
- Containers allow a modular architecture of the application. If modifications to the application are necessary, the module in question just has to be replaced. This reduces the costs and the risk of modifications. This architecture is also called microservices.
- If the application can be scaled horizontally, it can be updated without interruption using OpenShift. All you have to do is hand over a new version of the container to OpenShift. OpenShift first starts the new container and diverts all queries to this container. The old container is then stopped. This is called a rolling update.
- The possibility of operating several versions of a container in parallel enables us to test new functions in production without any great risk. Only a small proportion of the queries are diverted to the new container at this stage. Methods for this are called canary or blue-green deployment.
- Horizontal scaling enables the application to react better to a large number of queries and therefore runs more reliably and with higher performance.
In a nutshell, the OpenShift container platform allows us to improve our time-to-market. New applications can be developed faster and demands on existing applications can be implemented easier. Our overall strategic goal is to reduce our time-to-market by 90%. And a powerful cloud platform plays an important role in achieving that.
What’s the rush?
The points above show that the advantages are indisputable. For this reason, new projects at Porsche Informatik since the middle of 2017 have been developed to be modular, and a large number of existing applications have been modularised. In order for the modularisation to be implemented successfully, the right operating platform has to be available. Through a cooperation with ITandTel, we were able to make an OpenShift cluster available in 2017. This was operated by ITandTel in their IT centre. That made the start in this new field of activity significantly easier for us. We were able to learn a great deal and to put the first smaller applications into Operation.
We are now planning to put a few large applications into operation by the end of 2018. That is a major step in the implementation of our corporate strategy of reducing our time-to-market through modularisation and cloud technologies. In view of the relevance of OpenShift in this project, we had to bring the container platform in-house.
How did the project go?
It’s the beginning of July. Our private cloud has now been in operation for two months. A month later than originally planned, but in retrospect in an incredibly short space of time.
The without doubt most important reason for this success was the good cooperation across all borders. We were assured of the full support of our partners even during the initial discussions at the beginning of January – of course, within the bounds of their possibilities. Without the know-how of the partners, in particular at ITandTel in the roll-out and operation of OpenShift, we would not have been able to conclude this project so successfully.
Overview of the most important technologies in the project.Even more important, however, was the cooperation within Porsche Informatik. Since the beginning of our cloud activities in mid-2017, a cross-functional team has established itself in the best sense of DevOps. Technicians from development and operation and the management of these divisions worked side-by-side and on equal terms towards the same goal. Without even thinking about it, development and operation even switched roles in certain situations. Software architects took care of operational topics and vice versa.
Full steam ahead!
We were up to full speed by the middle of February. The project was set up and the most important architectural decisions were taken. By the middle of March we were in a position to be able to set up and shut down VMs automatically; that was an important precondition for the installation of OpenShift. In the following five weeks we were able to perfect the automated installation routine for the cluster. Some 100 repetitions were necessary before the whole installation, from VM to OpenShift with all the components, was successfully and automatically completed. The platform was then thoroughly tested by our software architects and released for production at the beginning of May.
But that wasn’t the end of the project. It was now time for the developer teams to migrate their applications from the old environment to the new platform. That was also a good time to pass on the good practices that the cloud team had elaborated during the first year with OpenShift (at ITandTel) to all the teams. We held Docker (our container framework) and OpenShift seminars and reached around one-third of our 300 developers.
The last application was migrated in mid-June. We can now sign off this project in good time before the start of the holidays and enjoy the summer! We did it!
What have we achieved?
The OpenShift cluster spans three sites. The nodes are virtual machines provided by our VMware platform. We use Hitachi Virtual Storage Platform G800 with GlusterFS as cloud native file system as storage. Users identify themselves via MFA with Keycloak. This is linked to LDAP as IDP. Monitoring and metrics of the OpenShift cluster and the containers operated on it are obtained through Prometheus in combination with Grafana.