АВТОМАТИЗАЦІЯ РОЗГОРТАННЯ СЕРВЕРЛЕС-ЗАСТОСУНКІВ ІЗ ВИКОРИСТАННЯМ IAC: КЕЙС СИСТЕМИ «AGRO MONITOR»
Анотація
У статті висвітлено результати дослідження та практичної реалізації автоматизації розгортання безсерверних (serverless) застосунків на основі концепції «інфраструктура як код» (Infrastructure as Code, IaC). Основна увага приділяється аналізу сучасних інструментів і технологій, що забезпечують автоматизоване управління інфраструктурою у хмарному середовищі, а також впровадженню serverless-застосунків із використанням IaC у реальному проєкті. У першій частині статті розглянуто теоретичні основи безсерверної архітектури, яка дозволяє компаніям знижувати витрати на обслуговування інфраструктури, забезпечувати автоматичне масштабування та оплачувати лише фактично використані ресурси. Проаналізовано переваги та виклики застосування serverless-підходу, включно з проблемами взаємодії між компонентами, контролем версій, складнощами інтеграції та питаннями безпеки. Значну увагу приділено платформам функцій як сервісу (FaaS), зокрема AWS Lambda, Azure Functions, Google Cloud Functions та OpenFaaS. Детально досліджено роль інфраструктури як коду у контексті автоматизації розгортання безсерверних рішень. Розглянуто два основних підходи до опису інфраструктури – декларативний (на прикладі Terraform та AWS CloudFormation) та імперативний IaC (Pulumi) і засоби керування конфігураціями (Ansible), охарактеризовано їхні особливості, переваги та обмеження. Визначено ключові переваги використання IaC для забезпечення стандартизації, відтворюваності, інтеграції з CI/CD-процесами, контролю версій та підвищення безпеки. Практична частина статті присвячена автоматизації розгортання системи «Agro Monitor», що реалізована на основі безсерверної архітектури у хмарному середовищі Microsoft Azure. Застосовано інструмент Pulumi, який дозволяє описувати інфраструктуру мовами програмування та забезпечує гнучкість при створенні складних інфраструктурних сценаріїв. Описано архітектуру системи, основні компоненти, механізми взаємодії через API, а також процеси автоматичного масштабування, обробки даних та генерації звітів. Показано, що запропонований підхід забезпечує швидке розгортання нових середовищ, зниження витрат на підтримку, підвищення стабільності та розширюваність рішення. Отримані результати показують ефективність поєднання безсерверної архітектури та інфраструктури як коду для створення сучасних інформаційних систем, що відзначаються високою гнучкістю, стабільністю та економічною доцільністю. Розроблене рішення може бути корисним для підприємств різних галузей, які прагнуть оптимізувати інфраструктуру та підвищити швидкість впровадження інноваційних ІТ-продуктів.
Посилання
2. Shahrad M., Fonseca R., Zhang I., et al. Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider. Proceedings of the 2020 USENIX Annual Technical Conference (USENIX ATC ’20). 2020. С. 205–218.
3. Schirmer T., Japke N., Greten S., Pfandzelter T., Bermbach D. The Night Shift: Understanding Performance Variability of Cloud Serverless Platforms. The 1st Workshop on SErverless Systems, Applications and MEthodologies (SESAME ’23), Rome, Italy, 8 May 2023. Стаття 7. DOI: 10.1145/3592533.3592808.
4. Scheuner J., Bertilsson M., Grönqvist O., et al. TriggerBench: A Performance Benchmark for Serverless Function Triggers. 2022 IEEE International Conference on Cloud Engineering (IC2E), Monterey, CA, USA, 28 Sept. 2022. DOI: 10.1109/IC2E55432.2022.00018.
5. Wen J., Chen Z., Jin X., Liu X. Rise of the Planet of Serverless Computing: A Systematic Review. ACM Transactions on Software Engineering and Methodology. 2023. Т. 32. № 5. Стаття 131. DOI: 10.1145/3579643.
6. Rahman A., Mahdavi-Hezaveh R., Williams L. A Systematic Mapping Study of Infrastructure as Code Research. Information and Software Technology. 2019. Т. 108. С. 65–77. DOI: 10.1016/j.infsof.2018.12.004.
7. Begoug M., Chouchen M., Ouni A. TerraMetrics: An Open Source Tool for Infrastructure-as-Code (IaC) Quality Metrics in Terraform. Proceedings of the 2024 IEEE/ACM 32nd International Conference on Program Comprehension (ICPC) – Tool Demonstrations. 2024. DOI: 10.1145/3643916.3644439.
8. Sokolowski D., Spielmann D., Salvaneschi G. Automated Infrastructure as Code Program Testing. IEEE Transactions on Software Engineering. 2024. Т. 50. № 6. С. 1585–1599. DOI: 10.1109/TSE.2024.3393070.
9. Rahman A., Parnin C., Williams L. The Seven Sins: Security Smells in Infrastructure as Code Scripts. Proceedings of the 41st International Conference on Software Engineering (ICSE ’19). 2019. С. 164–175. DOI: 10.1109/ICSE.2019.00033.
10. Hassan M. M., Salvador J., Santu S. K. K., Rahman A. State Reconciliation Defects in Infrastructure as Code. Proceedings of the ACM on Software Engineering. 2024. Т. 1 (FSE). Стаття 83. DOI: 10.1145/3660790.
11. Shrestha R., Ali A. A. N. Configuration Management in Kubernetes Environments: A GitOps Approach. 2024 IEEE/ACM 17th International Conference on Utility and Cloud Computing (UCC 2024), Sharjah, UAE, 16–19 Dec. 2024. С. 497–502. DOI: 10.1109/UCC63386.2024.00077.
12. Janes A., Li X., Lenarduzzi V. Open Tracing Tools: Overview and Critical Comparison. Journal of Systems and Software. 2023. Т. 204. Стаття 111793. DOI: 10.1016/j.jss.2023.111793.

Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
ISSN 



