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.
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.
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
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
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.
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