Microservice Deployment
https://doi.org/10.15514/ISPRAS-2023-35(1)-4
Abstract
Modern software development requires agile methods to deploy and scale increasingly demanded distributed systems. Practitioners have adopted the microservices architecture to cope with the challenges posed by modern software demands. However, the adoption and deployment of this architecture also creates technical and organizational challenges, potentially slowing down the development and operation teams, which require more time and effort to implement a quality deployment process that allows them to constantly release new features to production. The adoption of a DevOps culture, along with its practices and tools, alleviates some of these new challenges. In this paper we propose a guide for the deployment of systems with a microservices architecture, considering the practices of a DevOps culture, providing practitioners with a base path to start implementing the necessary platform for this architecture. We conducted this work following the Design Science Research Methodology for Information Systems (DSRM). In this way, we identified the problem, and also defined the solution objectives through the execution of a Systematic Literature Mapping and a Gray Literature Review, having as a result the proposed guide. This work can be summarized as follows: (I) Identification of practices and technologies that support the deployment of microservices. (II) Identification of recommendations, challenges, and best practices for the deployment process. (III) Modeling of the microservices deployment process using SPEM. (IV) Integration of the knowledge in a guide to deploy microservices by adopting DevOps practices.
About the Authors
Victor M. NIÑO-MARTÍNEZMexico
Software Engineer Student
Jorge Octavio OCHARÁN-HERNÁNDEZ
Mexico
Doctor in Computing Sciences, Professor at the School of Statistics and Informatics
Xavier LIMÓN
Mexico
Doctor of Artificial Intelligence, Associate Professor of the Statistics and Informatics Faculty
Juan Carlos PÉREZ-ARRIAGA
Mexico
Master in Computer Science, Software Developer
References
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.
Review
For citations:
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