MICROSERVICE ARCHITECTURE FOR BUILDING HIGH-AVAILABILITY DISTRIBUTED AUTOMATED COMPUTING SYSTEM IN A CLOUD INFRASTRUCTURE
Keywords:high availability, cloud technologies, distributed infrastructure, automated calculations, saving resources and funds, iterative algorithms, Mathematica, Kafka, Telegram
The article is devoted to the research and development of a highly available distributed automated computing system by iterative algorithms based on the microservice architecture in a cloud infrastructure. The subject of the research is the practical foundations of building high-availability automated computing systems based on microservice architecture in a cloud-based distributed infrastructure. The purpose of the article is to develop and to substantiate practical recommendations for the formation of the infrastructure of a high-availability automated computing system based on the microservice architecture, the choice of its constituent elements and their components. The task of the work: to identify the necessary structural elements of a microservice automated computing system and to analyze the constituent components and functional load for each of them, set specific tasks for building each of them and justify the choice of tools for their creation. In the course of the research, methods of system analysis were used to decompose a complex system into elements and each element into functional components, and tools: information technologies Apache Kafka, Kafkacat, Wolfram Mathematica, nginx, Lumen, Telegram, Dropbox, and MySQL. As a result of the study, it was found that the system infrastructure should consist of: fault-tolerant interservice transport, a high-availability computing microservice, and communication microservices with end customers, which save or process the results. For each of them, recommendations are provided regarding the formation and selection of implementation tools. According to the recommendations, one variant of implementation of such system has been developed, the principles of its operation are shown and the results are presented. It has been proven that when using a Kafka queue it is efficient to publish batches of results rather than one at a time, which results to significant overhead on queue servers and data latency for its clients. Recommendations are given on the implementation of the CI/CD system to build a continuous cycle of adding and improving microservices. Conclusions. Practical foundations have been developed for the implementation of high availability distributed automated computing systems based on microservice architecture in a cloud infrastructure. The flexibility in processing the results of such a system is shown due to the possibility of adding microservices and using third-party analytical applications that support connection to the Kafka queue. The economic benefit of using the described system is shown. Future ways of its improvement are given.
Lichtenthäler, R., Prechtl, M., Schwille, C. et al (2020), "Requirements for a model-driven cloud-native migration of monolithic web-based applications", SICS Softw.-Inensiv. Cyber-Phys. Syst., Vol. 35, P. 89–100. DOI: https://doi.org/10.1007/s00450-019-00414-9
Fernández-García, A. J., Iribarne, L., Corral, A. et al. (2019), "A microservice-based architecture for enhancing the user experience in cross-device distributed mashup UIs with multiple forms of interaction", Univ Access Inf Soc, Vol. 18, P. 747–770. DOI: https://doi.org/10.1007/s10209-017-0606-0
Bucchiarone, A., Dragoni, N., Dustdar, S., Larsen, S. T., Mazzara, M. (2018), "From Monolithic to Microservices: An Experience Report from the Banking Domain,", IEEE Software, Vol. 35, No. 3, P. 50–55, DOI: 10.1109/MS.2018.2141026.
Alaasam, A. B., Radchenko, G., Tchernykh, A. et al. (2020), "Analytic Study of Containerizing Stateful Stream Processing as Microservice to Support Digital Twins in Fog Computing", Program Comput Soft, Vol. 46, P. 511–525. DOI: https://doi.org/10.1134/S0361768820080083
Kim, Y. K., Kim, Y., Jeong, C. S. (2018), "RIDE: real-time massive image processing platform on distributed environment", EURASIP Journal on Image and Video Processing, Vol. 2018, No. 39. DOI: https://doi.org/10.1186/s13640-018-0279-5
Santana, C., Andrade, L., Delicato, F.C. et al. (2020), "Increasing the availability of IoT applications with reactive microservice", SOCA. DOI: https://doi.org/10.1007/s11761-020-00308-8
Razzaq, A. A (2020), "Systematic Review on Software Architectures for IoT Systems and Future Direction to the Adoption of Microservices Architecture", SN COMPUT. SCI, Vol. 1, Article 350. DOI: https://doi.org/10.1007/s42979-020-00359-w
Zolotariov, D. (2020), "The distributed system of automated computing based on cloud infrastructure", Innovative Technologies and Scientific Solutions for Industries, No. 4 (14), P. 47–55. DOI: https://doi.org/10.30837/ITSSI.2020.14.047
Zolotariov D., Nerukh A. (2011), "Extension of the approximation functions method for 2d nonlinear Volterra integral equations", Applied Radio Electronics, Vol. 10, No. 1, P. 39–44.
Nerukh, A. G., Zolotariov, D. A., Nerukh, D. A. (2012), "Properties of decelerating non-diffractive electromagnetic Airy pulses", Applied Radio Electronics, Vol. 11, No. 1, P. 77–81.
Nerukh, A., Zolotariov, D., Benson T. (2015), "The approximating functions method for nonlinear Volterra integral equations", Optical and Quantum Electronics, Vol. 47, P. 2565–2575. DOI: https://doi.org/10.1007/s11082-015-0141-2
Nerukh, A., Zolotariov, D., Kuryzheva, O., Benson T. (2016), "Dynamics of decelerating pulses at a dielectric layer", Optical and Quantum Electronics, Vol. 48, No. 89. DOI: https://doi.org/10.1007/s11082-016-0386-4
Apache Kafka (2021), "Apache Kafka", available at: https://kafka.apache.org/documentation/ (last accessed 10 January 2021).
GitHub (2021), "Ultimate Comparison", available at: https://ultimate-comparisons.github.io/ultimate-message-broker-comparison/ (last accessed 10 January 2021)
Wolfram (2021), "Wolfram Mathematica: Modern technical calculations", available at: https://www.wolfram.com/mathematica/ (last accessed 10 January 2021).
You, X., Chen, D. R. (2018), "A new sequence convergent to Euler–Mascheroni constant", Journal of Inequalities and Applications, Vol. 2018, Article 75. DOI: https://doi.org/10.1186/s13660-018-1670-6
Ghorbani, M. A., Singh, V. P., Sivakumar, B. et al. (2017), "Probability distribution functions for unit hydrographs with optimization using genetic algorithm", Applied Water Science, Vol. 7, P. 663–676. DOI: https://doi.org/10.1007/s13201-015-0278-y
Rehman, S., Idrees, M., Shah, R. A. et al. (2019), "Suction/injection effects on an unsteady MHD Casson thin film flow with slip and uniform thickness over a stretching sheet along variable flow properties", Boundary Value Problems, Vol. 2019, No. 26. DOI: https://doi.org/10.1186/s13661-019-1133-0
Zolotariov, D. (2021), "The mechanism for creation of event-driven applications based on Wolfram Mathematica and Apache Kafka", Innovative Technologies and Scientific Solutions for Industries, No. 1 (15), P. 53–58. DOI: https://doi.org/10.30837/ITSSI.2021.15.053
Zolotariov, D. (2021), "The platform for creation of event-driven applications based on Wolfram Mathematica and Apache Kafka", Innovative Technologies and Scientific Solutions for Industries, No. 2 (16), P. 12–18. DOI: https://doi.org/10.30837/ITSSI.2021.16.012
GitHub (2021), "edenhill/kafkacat: Generic command line non-JVM Apache Kafka producer and consumer", available at: https://github.com/edenhill/kafkacat (last accessed 10 January 2021).
GitHub (2021), "mathworks-ref-arch/matlab-apache-kafka: MATLAB Interface for Apache Kafka", available at: https://github.com/mathworks-ref-arch/matlab-apache-kafka (last accessed 10 January 2021).
Apache Software Foundation (2021), "Clients - Apache Kafka", available at: https://cwiki.apache.org/confluence/display/KAFKA/Clients (last accessed 5 January 2021).
GitHub (2021), "dspeterson/dory: Producer daemon for Apache Kafka", available at: https://github.com/dspeterson/dory (last accessed 10 January 2021).
Confluent Documentation (2021), "Confluent REST APIs", available at: https://docs.confluent.io/platform/current/kafka-rest/index.html (last accessed 10 January 2021).
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Our journal abides by the Creative Commons copyright rights and permissions for open access journals.
Authors who publish with this journal agree to the following terms:
Authors hold the copyright without restrictions and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0) that allows others to share the work with an acknowledgment of the work's authorship and initial publication in this journal.
Authors are able to enter into separate, additional contractual arrangements for the non-commercial and non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgment of its initial publication in this journal.
Authors are permitted and encouraged to post their published work online (e.g., in institutional repositories or on their website) as it can lead to productive exchanges, as well as earlier and greater citation of published work.