About the Customer
Monday.com is a project management tool that enables organizations to manage tasks, projects, and teamwork. As of 2020, the company serves 100,000 organizations, including many non-technical ones. In July 2019, the company raised $150 million based on a $1.9 billion valuation.
The customer faced many challenges that impacted the scalability of their platform. To address these challenges, they initiated a plan to dissolve their monolith application to a microservices architecture, and they needed to prepare the infrastructure to be ready for this shift.
Due to the high complexity of the required work, TeraSky split the project into two main phases, described in detail below. The first phase was to separate the PaaS to instance-based deployment. The second phase was to migrate to a K8s-based solution with AWS EKS.
Monday.com’s main challenges were “time to market” and “cost reduction” for digital and cloud transformation.
At that time, Monday.com used the Engine Yard PaaS (Platform as a Service) tool, and, as a result, the following challenges should be taken into consideration:
- Monday.com faced significant business growth. Expanding the production environment was complicated and required manual addition of resources, causing production lag that affected the end users.
- To optimize application performance and reduce production cost, monday.com had to implement the auto-scale option.
- The PaaS platform used by monday.com forced them to work manually without process automation. Therefore, moving to production and cycle releases took too much time, and the management pushed to find a solution to significantly improve it.
- The single testing environment used by monday.com was not sufficient, as one testing environment slowed down moving to production and as a result affected the “time to market”.
- Likewise, using only a single staging environment prevented the company from testing concurrent deployments before release. Efficient production requires more than one testing & one staging environment to avoid collision and to enable a suitable release process.
- Deployment procedures were done manually – which is time-consuming and vulnerable to human errors. Monday.com’s ongoing growth forced management to adopt automated processes.
- Using manual tools creates flexibility limitations when the environment expands, and modifications are often required. In this case, Monday.com needed to use external support of the PaaS solution.
- The option to control company environments didn’t exist. Monday.com had to rely on external support provided by the Pass Provider for any required change needed, such as adding new ports.
Taking into the consideration all above-mentioned challenges, TeraSky Cloud & DevOps experts conducted a deep analysis and concluded that the solution should consist of two phases:
- Phase 1 planned the migration of the entire environment from the previously used EY (Engine Yard) PaaS platform to IaaS (Infrastructure as a Service) solution based on AWS EC2 Instances. That allowed Monday.com to dynamically scale the environment (up or down) according to compute demand.
- Phase 2 was focused on containerizing the application and migrating it into EKS. This phase included breaking down the existing monolith application into independent micro-service components and deploying them inside the EKS cluster while using tools like Helm and Argo rollouts. Automatic scaling of the required resources was possible thanks to monitoring critical metrics and adjusting the capacity accordingly. This allowed monday.com to solidly maintain the predictable performance at the lowest possible cost.
After the completion of the two phases, monday.com’s infrastructure is now fully IaC and they have fully automated the process of deploying identical testing and production environments with autoscaling.
TeraSky assisted to reduce cloud costs, saved developers’ precious time, increased flexibility, simplified DevOps processes, and created a quicker rollback process.
Automation for creating additional testing & Dev environments.
Using IaaS enabled the dev team to focus on maximum velocity for development while relying on automation processes.