Company: DB Systel
Johannes Dienst is a passionate softwarecrafter at DB Systel GmbH. His work focuses on content management, DevOps and software quality.
Managed Cloud to GitOps: Deploying Several Client Clusters
What is the best practice to roll out a product in a multi-client group environment? Hopefully, purchase a multi-client capable product that meets the requirement of process separation for clients. Unfortunately, we did not have such a product available in our team and were faced with the challenge of having to set up a separate system for each client.
In this talk, we will describe the three development stages of our deployment process with respect to the server infrastructure in AWS including separation of AWS accounts into test and production environments. The first phase describes the setup of a managed cloud with fixed servers. Although these can be set up automatically, the automatic scalability is insufficient.
The next iteration highlights the “infrastructure as code” approach via cloud formation, which worked very well for a dedicated system. Problems we had were the proper Git flow and the lack of support for true separation of systems per AWS account.
In our current and hopefully final iteration, we switched to a consistent GitOps approach. We describe how we have been using this approach for months to bring stable infrastructure deployments into production via Gitlab, what challenges had to be solved in terms of Configuration as Code and proper Git flow. We also talk about how this process facilitates compliance with various corporate requirements, such as ISO 20000 for release and change management.