Cloud CMS Showcase Setup
The project goal was to build an out-of-the-box solution that uses the cloud technology to rapidly deliver scalable, easily configurable and manageable infrastructure to showcase a web-based CMS. We also had to improve the CMS structure and performance.
Project requirements
The main customer pains were the following:
- The CMS itself is a monolith product built in Java, with more than 100 modules.
- There are more than 15 processes interacting with each other, creating high workload.
- A setup process was a real pain for the customers and required following a complicated checklist.
Project results
The product is now enterprise-grade and production-ready. The customers currently interested in the CMS are a truck manufacturing giant, several leading media and a popular retailer, just to list a few. The process of the CMS setup and deployment is now fully-automated and the product has also got features like:
- 3 commands to deploy the CMS,
- Deployment time shortened from 4 hours to 15 minutes,
- Auto-scaling of the cluster nodes,
- In-depth logging and analytics,
- Real-time monitoring and smart alerts
Location: Germany
Partnership period: January 2017 – ongoing
Team size: 2 – 8 people
Team location: Kharkiv, Ukraine
Services: Cloud infrastructure design and development, DevOps-as-a-Service, Big Data solutions, Web Development, QA and testing, product and infrastructure monitoring
Expertise delivered: AWS cloud administration, DevOps services, microservices and containerization, DevOps support team, cloud monitoring solutions
Technologies: AWS, Kubernetes, Docker, Ansible, Jenkins
Product Overview
Client goals
One of the features of the CMS is the rigidity of the page layout, which is configured in front end service. It allows the content to be updated in a web interface by anyone who has appropriate permissions, without the necessity to meddle with the source code itself. The client wanted us to provide the following improvements:
- Migrate the showcase from Mesos/Marathon environment to Kubernetes
- Shorten the product deployment time
- Add the missing features
- Configure error-proof update and recovery procedures
- Introduce the Continuous Delivery pipeline to automate the setup and configuration as much as possible.
- Split the monolith app into microservices to provide stability
- Containerize the components for scalability
- Deploy an in-depth monitoring and logging solution
That would make the product enterprise-ready, as it was aimed to be offered to high-level EU enterprises.
Project implementation
IT Svit performed a test deployment of the CMS and analyzed all the dependencies and possible bottlenecks an IT engineer might face. We then performed the following improvements:
- Moving the CMS from a Mesos/Marathon environment to a redundant Kubernetes cluster,
- Containerizing the system components using Docker
- Using Jenkins to enable Continuous Implementation / Continuous Delivery (CI/CD) pipeline
- Automating the product build and deployment using Ansible.
- Automating the process of recovery for all the components in case of an interruption during the system update
- Enabling the auto-scaling for the front-end service and automating its release cycle
- Designing and developing a customized monitoring tool