МІКРОСЕРВІСНА АРХІТЕКТУРА ПОБУДОВИ РОЗПОДІЛЕНИХ АВТОМАТИЗОВАНИХ ОБЧИСЛЕНЬ ВИСОКОЇ ДОСТУПНОСТІ У ХМАРНІЙ ІНФРАСТРУКТУРІ
DOI:
https://doi.org/10.30837/ITSSI.2021.17.013Ключові слова:
висока доступність, хмарні технології, розподілена інфраструктура, автоматизовані обчислення, економія ресурсів та коштів, ітераційні алгоритми, Mathematica, Kafka, TelegramАнотація
Стаття присвячена дослідженню та розробці розподіленої системи автоматизованих обчислень високої доступності ітераційними алгоритмами на базі мікросервісної архітектури у хмарній інфраструктурі. Предметом дослідження є практичні засади побудови систем автоматизованих розрахунків високої доступності, що засновані на мікросервісній архітектурі у розподіленій інфраструктурі на базі хмарних технологій. Метою статті є розробка та обґрунтування практичних рекомендацій щодо формування інфраструктури системи автоматизованих обчислень високої доступності на базі мікросервісної архітектури, вибору її складових елементів та їх компонентів. Завдання роботи: виявити необхідні структурні елементи мікросервісної системи автоматизованих обчислень та надати для кожного з них аналіз складових компонентів та функціонального навантаження, поставити конкретні задачі для побудови кожного із них та обґрунтувати вибір інструментів для їх вирішення. У ході дослідження використано методи системного аналізу для декомпозиції складної системи на елементи та кожного елемента на функціональні компоненти, та засоби: інформаційні технології Apache Kafka, Kafkacat, Wolfram Mathematica, nginx, Lumen, Telegram, Dropbox, MySQL. У результаті дослідження встановлено, що інфраструктура системи має складатися з: відмовостійкого міжсервісного транспорту, мікросервісу обчислень високої доступності, та мікросервісів зв’язку із кінцевими клієнтами, що зберігають або обробляють результати. Для кожного з них надані рекомендації щодо формування та вибору інструментарію для побудови. За отриманими рекомендаціями розроблений один із варіантів такої системи, показані принципи її роботи та наведені результати. Доведено, що при використанні черги Kafka ефективною є публікація пакетів результатів, а не по одному, що призводить до значних перевитрат ресурсів серверів черги та затримкам даних для її клієнтів. Дані рекомендації щодо впровадження системи CI/CD для побудови безперервного циклу додавання та вдосконалення мікросервісів. Висновки. Розроблені практичні основи для реалізації систем розподілених автоматизованих обчислень високої доступності на базі мікросервісної архітектури у хмарній інфраструктурі. Показана гнучкість у обробці результатів такої системи через можливість доповнення її мікросервісами та використання сторонніх аналітичних додатків, що підтримують завантаження даних із черги Kafka. Показана економічна вигода від використання описаної системи. Наведені майбутні шляхи її вдосконалення.
Посилання
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).
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Ця робота ліцензується відповідно до Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Наше видання використовує положення про авторські права Creative Commons для журналів відкритого доступу.
Автори, які публікуються у цьому журналі, погоджуються з наступними умовами:
Автори залишають за собою право на авторство своєї роботи та передають журналу право першої публікації цієї роботи на умовах ліцензії Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0), котра дозволяє іншим особам вільно розповсюджувати опубліковану роботу з обов'язковим посиланням на авторів оригінальної роботи та першу публікацію роботи у цьому журналі.
Автори мають право укладати самостійні додаткові угоди щодо не комерційного та не ексклюзивного розповсюдження роботи у тому вигляді, в якому вона була опублікована цим журналом (наприклад, розміщувати роботу в електронному сховищі установи або публікувати у складі монографії), за умови збереження посилання на першу публікацію роботи у цьому журналі.
Політика журналу дозволяє і заохочує розміщення авторами в мережі Інтернет (наприклад, у сховищах установ або на особистих веб-сайтах) рукопису опублікованої роботи, оскільки це сприяє виникненню продуктивної наукової дискусії та позитивно позначається на оперативності та динаміці цитування опублікованої роботи.