STUDY OF MULTI-STAGE SOFTWARE DEPLOYMENT STRATEGYWITH THE EXCLUSION OF SIDE EFFECTS
DOI:
https://doi.org/10.31891/2307-5732-2024-333-2-19Keywords:
high availability, continuous integration, continuous delivery, continuous deployment, git flow, MongoDB, database indexes, subscription business modelAbstract
The article addresses a problem and its solution that arose during onboarding of new subscribers to the existing data import and distribution service. The analysis of all available solutions demonstrates that none fully meet the requirements. The process of searching for the values of the required indicators and the process of creating reports necessarily uses indexes. Messages of different types are placed in their respective MongoDB collections. Over the long period of operation of the repository, up to 64 indexes per collection have accumulated. According to the policies of connecting to the storage (Connect timeout) and waiting for a response (Socket timeout), the need to set such long-time expectations for consumers is unacceptable and usually, by default, is equal to 30 seconds.
A multi-step strategy for delivering the solution that allows the service to meet availability requirements was proposed. The novelty of the article is in the description and investigation of a new method of delivering solutions to the software deployment environment—production. The implementation of the described strategy opens a new approach for solving similar classes of problems related to the type of interaction with users, when custom settings are a mandatory part of the service and are guaranteed to carry the threat of service unavailability. This approach opens up new opportunities for achieving high availability of systems, reducing risks and increasing user satisfaction. Based on the analysis of the proposed approaches, the latest strategy of multi-step delivery of the service to users was developed, the result of which was the acceptable response waiting time of up to 5 seconds. The implementation of this strategy contributed to the achievement of the availability of software products - 99.999%, ensuring the reliability and stability of services for end users.