DevOps services for HRM system development and support in production
IT Svit used 10 years of expertise in end-to-end software development to build Hurma System — an innovative all-in-one solution for managing HR processes, recruitment and OKR. What started as a pet project for helping internal HR workflow grew into a successful project gaining 400+ customers in two years since its release in September 2018. IT Svit DevOps team has to enable seamless software development and infrastructure management operations in production.
Project: Hurma System
Location: Kharkiv, UA
Industry: HRM/HRIS development
Partnership period: November 2017 — ongoing
Team size: 30
DevOps Team: 1 DevOps Architect, 2 DevOps Engineers
Team location: Kharkiv, Ukraine
Services: Cloud infrastructure design and optimization, CI/CD implementation, app containerization, API integration, monitoring implementation,
Expertise delivered: App containerization and container management, cloud infrastructure management, monitoring implementation, CI/CD configuration, API integration
Technology stack: PHP/Laravel, Python/Django, MariaDB, Google API, Terraform, Docker, Kubernetes, Helm, Nginx Ingress controller, Ansible, Jenkins Pipeline, Prometheus, Grafana, Sentry.
IT Svit DevOps team worked as an insourcing contractor for the Hurma System development team. We had to build the needed infrastructure for product development from scratch, configure CI/CD pipelines to automate code testing and deployment and implement in-depth monitoring to track the system performance in production.
Working on an internal project allowed our DevOps team to apply its knowledge and expertise and quickly integrate feedback from the software development team. This resulted in frequent reassessment and improvement of the product performance, which helped release the product on time and continuously develop it within schedule. While working on Hurma System we achieved some astonishing results:
- More than 400 Single Tenant environments containing the system instance are running in the cloud. They are seamlessly updated and automatically monitored
- Individual environment configuration time has shortened from 3 hours to 2 minutes
- Time-to-market for new features is 2-3 weeks at the most
Challenges and solutions
While delivering this product, the IT Svit DevOps team had to deal with various challenges and provide efficient solutions for them:
- During the MVP development, the deployment was manual, as the DevOps engineers had to update the Docker image and Kubernetes manifests accordingly in order to test a new batch of code. The process took 3 hours, which sufficed the needs of development but was clearly too long for the needs of the production environment.
- During the beta-testing, the CI/CD process was implemented. To do this, IT Svit system architects prepared a unified Docker Image of the product and updated the Kubernetes manifest templates. Jenkins Pipeline was used to automatically deploy the new product versions, thus shortening the update time to 30-40 minutes.
- After the release, the IT Svit DevOps team had to support 100+ instances at once. To further shorten the update time, it was decided to use Jenkins Pipeline to automate the downloading of the external libraries and modules. As these components and dependencies are rarely updated, it was best to pre-upload them and keep them cached until the moment they are needed during the update. This local cache of libraries and modules helped shorten the update time to 10 minutes.
- Hurma System is actively developed, so it was needed to speed up the update process even more. Many updates involve some changes to the database configuration, so they needed to be applied in the correct order. IT Svit DevOps specialists leveraged the seed migrations mechanism in Jenkins Pipeline, which allowed them to simplify and speed up the update process. Now, any application version can be updated to any other version with ease and any update in production takes as little as 2 minutes.
- When the team started updating 200+ environments, the manual configuration of variables for each instance was no longer feasible. DevOps engineers went with the Infrastructure as Code approach and created an additional Jenkins pipeline that managed Jenkins pipelines for individual customer instances and ingested the required parameters from the VCS. Using Helm to create and manage templates for Kubernetes operations helped automate most infrastructure management processes, so now IT Svit is able to deploy a fresh instance of Hurma System in 5 minutes and update it to a new version in around 1 minute.
Thus said, extensive IT Svit DevOps expertise helped build a powerful and cost-efficient software development process for Hurma System, as well as enabling in-depth monitoring of the Kubernetes cluster in production using Prometheus, Grafana and Sentry.
IT Svit houses professionals in multiple aspects of IT services, from full-stack software development and testing to DevOps services and Big Data analytics. Due to our extensive IT outsourcing expertise, we were able to build a cost-effective software delivery process, ensuring our ability to release new features for Hurma System every 2-3 weeks, while also working on a variety of other projects for our multiple customers. If you want to receive the same level of services — let us know, we would be glad to help!