Развертывание микросервисов
https://doi.org/10.15514/ISPRAS-2023-35(1)-4
Аннотация
Современная разработка программного обеспечения требует гибких методов для развертывания и масштабирования все более востребованных распределенных систем. Практики применяют архитектуру микросервисов, чтобы справиться с проблемами, связанными с современными требованиями к программному обеспечению. Однако использование этой архитектуры также создает технические и организационные проблемы, потенциально замедляя работу групп разработки и эксплуатации, которым требуется больше времени и усилий для реализации качественного процесса развертывания, позволяющего им постоянно выпускать новые функции в рабочую среду. Принятие культуры DevOps вместе с ее методами и инструментами смягчает некоторые из этих новых проблем. В этой статье мы предлагаем руководство по развертыванию систем с микросервисной архитектурой с позиции культуры DevOps, предоставляющей практикам путь к началц внедрения необходимой платформы для этой архитектуры. Мы провели эту работу в соответствии с Методологией исследований в области проектирования информационных систем. Таким образом, мы определили проблему, а также определили цели решения путем выполнения систематического обзора литературы, включая серую литературу. Эту работу можно резюмировать следующим образом: (I) определение методов и технологий, поддерживающих развертывание микросервисов; (II) определение рекомендаций, проблем и лучших практик для процесса развертывания; (III) моделирование процесса развертывания микросервисов с помощью; (IV) интеграция знаний в руководство по развертыванию микросервисов с применением практики DevOps.
Об авторах
Виктор М. НИНЬО-МАРТИНЕСМексика
Студент-программист
Хорхе Октавио ОЧАРАН-ЭРНАНДЕС
Мексика
Кандидат компьютерных наук, профессор факультета статистики и информатики
Ксавье ЛИМОН
Мексика
Кандидат наук в области искусственного интеллекта, доцент факультета статистики и информатики
Хуан Карлос ПЕРЕС-АРРИАГА
Мексика
Магистр компьютерных наук, разработчик программного обеспечения
Список литературы
1. Mauro T. Adopting Microservices at Netflix: Lessons for Architectural Design. NGINX Blog, 2015. Available at: https://www.nginx.com/blog/microservices-at-netflix-architectural-best-practices/, accessed May 10, 2021.
2. Reinhold E. Rewriting Uber Engineering: The Opportunities Microservices Provide. Uber Engineering Blog. Available at: https://eng.uber.com/building-tincup-microservice-implementation/, accessed May 10, 2021.
3. Ihde S., Parikh K. From a Monolith to Microservices + REST: the Evolution of LinkedIn’s Service Architecture. Mar. 2015. Available at: https://www.infoq.com/presentations/linkedin-microservices-urn/, accessed Mar. 22, 2022)
4. Calcado P. Building Products at SoundCloud —Part I: Dealing with the Monolith. SoundCloud Backstage Blog, Jun. 11, 2014. Available at: https://developers.soundcloud.com/blog/building-products-at-soundcloud-part-1-dealing-with-the-monolith, accessed Mar. 22, 2022.
5. Lewis J., Fowler M. Microservices. Mar. 25, 2014. Available at: https://martinfowler.com/articles/microservices.html, accessed Nov. 16, 2021.
6. Martin R.C. The Single Responsibility Principle. Clean Coder Blog, May 08, 2014. Available at: https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html, accessed Jan. 26, 2022.
7. Newman S. Building Microservices: Designing Fine-Grained Systems. O'Reilly Media, 2015, 280 p.
8. Indrasiri K., Siriwardena P. Microservices for the Enterprise: Designing, Developing, and Deploying. Apress, 2018, 441 p.
9. IEEE Standard for DevOps: Building Reliable and Secure Systems Including Application Build, Package, and Deployment: IEEE Standard 2675-2021.
10. Richardson C. Microservices Patterns: with examples in Java. Manning, 2018, 520 p.
11. Fritzsch J., Bogner J. et al. Microservices Migration in Industry: Intentions, Strategies, and Challenges. In Proc. of the IEEE International Conference on Software Maintenance and Evolution (ICSME), 2019, pp. 481-490.
12. Bruce M., Pereira P.A. Microservices in action. Manning, 2018, 392 p.
13. Shahin M., Ali Babar M., Zhu L. Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices. IEEE Access, vol. 5, 2017, pp. 3909-3943.
14. Peffers K., Tuunanen T. et al. A Design Science Research Methodology for Information Systems Research. Journal of Management Information Systems, vol. 24, issue 3, 2007, pp. 45-77.
15. Niño-Martínez V.M., Ocharán-Hernández J.O. et al. Microservices Deployment: A Systematic Mapping Study. In Proc. of the 9th International Conference in Software Engineering Research and Innovation (CONISOFT), 2021, pp. 24-33.
16. Hyvärinen H., Risius M., Friis G. A Blockchain-Based Approach Towards Overcoming Financial Fraud in Public Sector Services. Business & Information Systems Engineering, vol. 59, issue 6, 2017, pp. 441-456.
17. Tello-Rodríguez M., Ocharán-Hernández J.O. et al. A Design Guide for Usable Web APIs. Programming and Computer Software, vol. 46, issue 8, 2020, pp. 584-593 / Тельо-Родригес М., Очаран-Эрнандес Х.О., Перес-Арриага Х.К., Лимон К., Санчес-Гарсия А.Х. Путеводитель по проектированию удобных Web-API. Труды ИСП РАН, том 33, вып. 1, 2021 г., стр. 173-188. DOI: 10.15514/ISPRAS-2021-33(1)-12.
18. Chen L. Continuous Delivery: Overcoming adoption challenges. Journal of Systems and Software, vol. 128, 2017, pp. 72-86.
19. Kitchenham B., Budgen D., Brereton P. Evidence-Based Software Engineering and Systematic Reviews. Chapman and Hall/CRC, 2015, 399 p.
20. Pearson A., Robertson-Malt S., Rittenmeyer L. Synthesizing Qualitative Evidence. Lippincott Williams & Wilkins, 2011, 80 p.
21. Kargar M.J., Hanifizade A. Automation of regression test in microservice architecture. In Proc. of the International Conference on Web Research (ICWR), 2018, pp. 133-137.
22. Singh V., Peddoju S.K. Container-based microservice architecture for cloud applications. In Proc. of the International Conference on Computing, Communication and Automation (ICCCA), 2017, pp. 847-852.
23. Richter D., Konrad M. et al. Highly-Available Applications on Unreliable Infrastructure: Microservice Architectures in Practice. In Proc. of the IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), 2017, pp. 130-137.
24. Soenen T., Van Rossem S. et al. Insights from SONATA: Implementing and integrating a microservice-based NFV service platform with a DevOps methodology. In Proc. of the IEEE/IFIP Network Operations and Management Symposium, 2018, pp. 1-6.
25. Fan C.Y., Ma S.P. Migrating Monolithic Mobile Application to Microservice Architecture: An Experiment Report. In Proc. of the IEEE International Conference on AI & Mobile Services (AIMS), 2017, pp. 109-112.
26. Tamburri D.A., Miglierina M., Di Nitto E. Cloud applications monitoring: An industrial study. Information and Software Technology, vol. 127, 2020, article no. 106376, 28 p.
27. Chen H.M., Kazman R. et al. Architectural Support for DevOps in a Neo-Metropolis BDaaS Platform. In Proc. of the IEEE 34th Symposium on Reliable Distributed Systems Workshop (SRDSW), 2015, pp. 25-30.
28. Steffens A., Lichter H., Döring J.S. Designing a next-generation continuous software delivery system: Concepts and architecture. In Proc. of the 4th International Workshop on Rapid Continuous Software Engineering, 2018, pp. 1-7.
29. Hasselbring W., Steinacker G. Microservice architectures for scalability, agility and reliability in e-commerce. IEEE International Conference on Software Architecture Workshops (ICSAW), 2017, pp. 243-246.
30. Wohlin C. Guidelines for snowballing in systematic literature studies and a replication in software engineering, In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, 2014, article no. 38, 10 p.
31. Garousi G., Garousi V. et al. Evaluating Usage and Quality of Technical Software Documentation: An Empirical Study. In Proc. of the 17th International Conference on Evaluation and Assessment in Software Engineering, 2013, pp. 24-35.
32. Valdivia J.A., Lora-González A. et al. Patterns related to microservice architecture: a multivocal literature review. Programming and Computer Software, vol. 46, issue 8, 2020, pp. 594-608 / Вальдивия Х.А., Лора-Гонсалес А. и др. Паттерны микросервисной архитектуры: многопрофильный обзор литературы. Труды ИСП РАН, том 33, вып. 1, 2021 г., стр. 81-96. DOI: 10.15514/ISPRAS-2021-33(1)-4.
Рецензия
Для цитирования:
НИНЬО-МАРТИНЕС В., ОЧАРАН-ЭРНАНДЕС Х., ЛИМОН К., ПЕРЕС-АРРИАГА Х. Развертывание микросервисов. Труды Института системного программирования РАН. 2023;35(1):57-72. https://doi.org/10.15514/ISPRAS-2023-35(1)-4
For citation:
NIÑO-MARTÍNEZ V., OCHARÁN-HERNÁNDEZ J., LIMÓN X., PÉREZ-ARRIAGA J. Microservice Deployment. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2023;35(1):57-72. https://doi.org/10.15514/ISPRAS-2023-35(1)-4