The solution to automate the deployment of the project environment will reduce the time to build the system by tens or even hundreds of times.
Modern online system is not only business logic, information on disks and a beautiful interface. It is also interaction with a large number of internal and external services.
Some services make it easier to work with social networks, others provide electronic payments, and others allow you to get the necessary data for payment. Simultaneously with the advantages that these services provide, the process of developing and testing the system itself becomes more complicated. In the process of debugging, it is often not possible to work with “combat” systems, and emulators either do not exist, or they require additional installation and configuration. The problem of deploying the environment can be solved with detailed instructions describing dozens of steps.
Another way is to automate the deployment process and run on a button. The solution is to reduce the time to prepare the tools, and you concentrate on the tasks that these tools solve.
Below we share the experience of automation.
Our solution built on Docker containers:
As a result of the implementation of the solution in IFC ‘SMSFinance’ for the project infrastructure consisting of CRM system, call center, billing subsystem, as well as 27 external services, the deployment time was reduced from 2 days to 20 minutes.
Digital BSS operator system is a platform for effective digital transformation. There was a need to improve this solution to a boxed product.
In order to provide a boxed version of the platform to a wider range of customers, it is necessary that it meets the requirements of automatic installation, updating, scaling and monitoring. At the same time, it did not need control by product specialists.
Previously, the platform used the Ansible system for its deployment. To add the required capabilities to the platform, we implemented containerization using Docker technology. As a result, the environments of each module became isolated from each other, which simplified the development and test automation processes. Next, we implemented container management through Kubernetes. Kubernetes is a production-ready container orchestration system that is responsible for scaling, fault tolerance, and deployment. Thus, after the introduction of Kubernetes, the following features appeared in the product:
Helm package manager was used to support the CI/CD infrastructure of the project. This made it possible to install and update modules with a managed configuration in an existing cluster. To monitor the state of the product we added the Prometheus monitoring system.
Thus, we built a platform-box solution. It is ready for automatic deployment and upgrade to any client infrastructure. It scales and has a closed self-sustaining ecosystem.
The project used technology: