The hotel group’s marketing core is its own booking system in which the booking route is the central component. It was previously operated in a data center with a fixed number of visualized servers. Reliability and scalability were limited. A move to the AWS cloud was planned as the solution. kreuzwerker was chosen as a partner because when a company switches to the cloud, it’s not only taking a step into the future, but a completely new world. As a reliable and certified partner, kreuzwerker supports migration, but also helps to unleash individual and team potential within this “new world”.
A move to the cloud is planned. This of course poses a great challenge. And the first question certainly is: how to even start?
First, in a joint workshop, the current landscape was analyzed starting with the hardware, network setup, used software, and then deployment and operating processes. Furthermore, special requirements for the architecture were included. In this case, the application had to comply with the Payment Card Industry Data Security Standard (PCI/DSS) because credit card data is processed.
A suitable migration strategy was selected based on the analysis. There are several approaches, e.g. re-hosting, re-platforming or re-factoring. In this case, we decided together with H-Hotels on the re-platforming approach. The basic architecture of the software is not changed, but only some minor cloud optimizations are carried out. We particularly recommend this approach for a new entry into the cloud as it allows a relatively quick switch to the cloud. Applications can then be optimized bit by bit once you have developed more security and knowledge in handling them. It is also possible to minimize risk by making small changes to applications after the actual switch has been completed.
After establishing the strategy, kreuzwerker designed an architecture based on the Well-Architected-Review, which was then coordinated with the H-Hotels team.
Then it was time for implementation. First, of course, the basis had to be created. This includes, for example, the initial setup of accounts and then the creation of users, roles, etc. The integration into the existing network structure also had to be carried out, e.g. by setting up the VPN. Finally, the network structure was created in AWS, which serves as the basis for everything else.
The next step was migrating the actual application. We prefer using managed services for data storage; in this case it was AWS Elastic File System (EFS), AWS ElastiCache and AWS Aurora with MySQL compatibility. All infrastructure components were mapped with AWS CloudFormation as Infrastructure as Code. This makes it possible to take advantage of one of the major benefits of the cloud, namely the automatic setup and teardown of complete environments. In this case, for example, we set up an environment in which a pentest could be performed. After the test was completed, the environment could be removed again “at the push of a button” so that no further costs were incurred. If necessary, a new copy of the environment can also be created again “at the push of a button.”
We analyzed several possibilities in order to migrate the software. The easiest option would have been to simply copy the existing servers. We decided against that because one of the pain points of the existing solution was lack of high availability and scalability. The software was already available as Debian packages. Therefore, we decided to slightly modify the software, deploy it on EC2 instances and meet the given requirements by using AWS AutoScaling and load balancing. Of course, we could have also migrated the applications to Docker. However, this would have required major changes and would also have introduced another new technology.
We also evaluated several options for deploying the software and finally decided on an automated deployment with AWS CodeDeploy and the AWS Systems Manager. The H-Hotels team integrated the necessary steps into the existing build server so that in the end both infrastructure and application changes could be rolled out fully automatically.
During this phase, H-Hotels and kreuzwerker Team worked closely together. Finally, the H-Hotels employees were supposed to be able to guarantee the operation after the end of the project on their own. Besides all the new technologies to be learned, the change to a more DevOps-focused method of working was one of their biggest challenges. Therefore, it was important for kreuzwerker to share its knowledge throughout the project. Code, documentation and work steps were maintained in shared Git Repositories, Wikis and project boards. Regular telephone calls and screen-sharing sessions were used to share knowledge. As the project progressed, the H-Hotels team performed more and more tasks themselves and was supported by kreuzwerker as needed.
A switch to the cloud is of course only complete when the old infrastructure can no longer receive requests and can be switched off. To make the new environment ready for live operation, we have set up automated backups, enabled the collection and analysis of logs and metrics using AWS CloudWatch, and set up the automated application of regular security patches. In a last joint workshop we discussed the procedure for the conversion from old to new. The H-Hotels team was then able to carry out the actual conversion itself.
The architecture is now fail-safe and scalable, multiple environments can be created and torn down “at the push of a button,” and both infrastructure and software are maintained as code in version management systems and can be rolled out automatically.
The entry of H-Hotels into the AWS Cloud with their booking line was associated with some technical challenges, which we were able to solve together. But even the certainly more difficult part - leaving the comfort zone, abandoning work processes learned over years and the willingness to learn new paradigms and ways of working - was mastered by the H-Hotels employees.
After these first steps into the cloud, they are now in a position to take advantage of the first benefits the cloud offers, to continuously make further optimizations and to migrate more applications.