Our client is a dynamic FinTech startup from the EU. Their mobile bank has issued over 3M virtual cards, processing 100M+ payments for European customers.
The client’s application is a huge monolith, built by an in-house team. The project used some modern approaches like infrastructure as code (IaC). However, the infrastructure was written by different people, at different times. The company didn’t use many of the best DevOps practices like “one infrastructure code tree with differences represented by environment-specific variables”.
About a year ago, the company’s DevOps engineer quit his job. The maintenance was left to the development team. The project became very chaotic without using DevOps practices and tools. The infrastructure was often illogical, unstructured, and had no proper documentation. It was hard to change or add new components without breaking something else in the process. You had no guarantee a feature would work in production after a successful deployment to the testing environment because these environments weren’t similar. In fact, the failure rate for new deployments reached 30%. All of this made the project expensive and risky to maintain.
MindK was first brought onto the project to support infrastructure. The client couldn’t afford to migrate the whole project to microservices and Kubernetes, so our DevOps engineer had to introduce improvements without re-building the project.
- Improving the build process.
We migrated from locally launched Terraform deployments to an automated GitLab Continuous Integration, Delivery & Deployment (CI/CD) pipeline. The solution now shows the changes that will happen to the infrastructure when making a merge request. Right away, every member of the team can see if those changes are safe to start the deployment process. Infrastructure developers can now better coordinate their actions when working on the same component. This results in fewer conflicts and differences in infrastructure states. The simplicity of workflow allows the team to make some changes to infrastructure without involving the DevOps engineer, which decreases operational costs.
- Reworking the IaC.
Following best practices made the infrastructure more readable, logical, and convenient for the development team. At the same time, we documented its critical parts to simplify the maintenance and introduction of new components.
The best practices introduced by our DevOps engineer simplified the release process. Infrastructure is now more logical and accessible. It’s easier to make changes and introduce new features. Developers of infrastructure code no longer have to track all dependencies between components. The code structure is now more understandable and modular. Different environments are described with unified code. All these improvements lead to a higher product uptime, fewer release risks, and lower operational costs.
So if you want to benefit from optimized infrastructure and the delivery process, MindK can help you adopt DevOps best practices. Check our DevOps as a service page for more information.