DOI: https://doi.org/10.32515/2664-262X.2024.10(41).16-29

Інноваційні рішення та переваги мікросервісної архітектури програмних продуктів

О.С. Улічев, О.П. Доренський, В.П. Кулагін

Об авторах

О.С. Улічев, кандидат технічних наук, Центральноукраїнський національний технічний університет, Кропивницький, Україна, e-mail: askin79@gmail.com, ORCID ID: 0000-0003-3736-9613

О.П. Доренський, доцент, кандидат технічних наук, Центральноукраїнський національний технічний університет, Кропивницький, Україна, e-mail: dorensky@ukr.net, ORCID ID: 0000-0002-7625-9022

В.П. Кулагін, аспірант, Приватний вищий навчальний заклад "Європейський університет", м. Київ, Україна, e-mail: victor@kulagin.com.ua,

Анотація

У цьому дослідженні розглядається мікросервісна архітектура, як сучасний підхід до розробки програмного забезпечення, який відповідає зростаючим вимогам бізнесу та технологій. Проведено порівняльний аналіз мікросервісної архітектури з іншими архітектурними стилями, такими як монолітна та сервіс-орієнтована архітектури. Розглянуто приклади впровадження мікросервісів в індустрії на прикладі технологічних гігантів. Висвітлено використання інструментів та технологій, зокрема контейнеризації та оркестрації. Проаналізовано стандарти та найкращі практики, що сприяють ефективному впровадженню мікросервісів. Результати дослідження сприятимуть глибшому розумінню мікросервісної архітектури

Ключові слова

мікросервісна архітектура, масштабованість, DevOps, контейнеризація, оркестрація, розподілені системи

Повний текст:

PDF

Посилання

1. M. Fowler and J. Lewis, "Microservices," martinfowler.com, Mar. 2014. Accessed Oct. 1, 2023. [Online]. Retrieved from https://martinfowler.com/articles/microservices.html

2. S. Newman, Building Microservices: Designing Fine-Grained Systems, 2nd ed. Sebastopol, CA, USA: O'Reilly Media, 2021.

3. M. Beckers, "Understanding the potential of Modulith architecture," Worldline Tech Blog, Jan. 2024. Accessed Oct. 2, 2023. [Online]. Retrieved from https://blog.worldline.tech/2024/01/23/modulith.html

4. N. Dragoni et al., "Microservices: Yesterday, Today, and Tomorrow," in Present and Ulterior Software Engineering, M. Mazzara and B. Meyer, Eds. Cham, Switzerland: Springer, 2017. P. 195–216, doi: 10.1007/978-3-319-67425-4_12.

5. O'Reilly Media, "Microservices Adoption in 2020," O'Reilly Radar, 2020. Accessed Oct. 1, 2023. [Online]. Retrieved from https://www.oreilly.com/radar/microservices-adoption-in-2020/

6. Cloud Native Computing Foundation, "CNCF Survey 2020," CNCF, Nov. 2020. Accessed Oct. 3, 2023. [Online]. Retrieved from https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf

7. International Data Corporation (IDC), "IDC Forecasts a Robust Market for Enterprise Applications as Organizations Pursue Digital Era Strategies," IDC, Sep. 2023. Accessed Oct. 1, 2023. [Online]. Retrieved from https://www.idc.com/getdoc.jsp?containerId=prUS51107323

8. M. Fowler, Patterns of Enterprise Application Architecture. Boston, MA, USA: Addison-Wesley, 2012.

9. I. Nadareishvili, R. Mitra, M. McLarty, and M. Amundsen, Microservice Architecture: Aligning Principles, Practices, and Culture. Sebastopol, CA, USA: O'Reilly Media, 2016.

10. C. Richardson, Microservices Patterns: With Examples in Java. Shelter Island, NY, USA: Manning Publications, 2018.

11. M. E. Conway, "How Do Committees Invent?," Datamation, vol. 14, no. 4. P. 28–31, Apr. 1968.

12. L. Chen, "Continuous Delivery: Huge Benefits, but Challenges Too," IEEE Softw., vol. 32, no. 2. P. 50–54, Mar./Apr. 2015, doi: 10.1109/MS.2015.27.

13. A. E. Eivy, "Be Wary of the Economics of 'Serverless' Cloud Computing," IEEE Cloud Comput., vol. 4, no. 2. P. 6–12, Mar./Apr. 2017, doi: 10.1109/MCC.2017.32.

14. E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. Boston, MA, USA: Addison-Wesley, 2003.

15. J. Humble and J. Molesky, "Why Enterprises Must Adopt DevOps to Enable Continuous Delivery," Cutter IT J., vol. 24, no. 8. P. 6–12, Aug. 2011.

16. D. Merkel, "Docker: Lightweight Linux Containers for Consistent Development and Deployment," Linux Journal, vol. 2014, no. 239, Mar. 2014. Accessed Oct. 5, 2023. [Online]. Retrieved from https://dl.acm.org/doi/10.5555/2600239.2600241

17. B. Burns, B. Grant, D. Oppenheimer, E. Brewer, and J. Wilkes, "Borg, Omega, and Kubernetes," Commun. ACM, vol. 59, no. 5. P. 50–57, May 2016, doi: 10.1145/2890784.

18. T. Erl, Service-Oriented Architecture: Concepts, Technology, and Design. Upper Saddle River, NJ, USA: Prentice Hall, 2005.

19. Airbnb Engineering, "Dynamic Kubernetes Cluster Scaling at Airbnb," Airbnb Engineering & Data Science Blog, May 23, 2022. Accessed Oct. 4, 2023. [Online]. Retrieved from https://medium.com/airbnb-engineering/dynamic-kubernetes-cluster-scaling-at-airbnb-d79ae3afa132

20. W. Morgan, "What Is a Service Mesh?," Buoyant, 2017. Accessed Oct. 1, 2023. [Online]. Available: https://buoyant.io/what-is-a-service-mesh

21. R. Hincapie, "The Ultimate Guide to Becoming an Istio Certified Administrator," Medium, May 19, 2023. Accessed Oct. 2, 2023. [Online]. Retrieved from https://richincapie.medium.com/the-ultimate-guide-to-becoming-an-istio-certified-administrator-160b845e7490

22. C. Gormley and Z. Tong, Elasticsearch: The Definitive Guide. Sebastopol, CA, USA: O'Reilly Media, 2015.

23. A. Cockcroft, "Migrating to Microservices," Nginx, 2015. Accessed Oct. 10, 2023. [Online]. Retrieved from https://www.nginx.com/blog/microservices-at-netflix-architectural-best-practices/

24. M. Broy, I. H. Krüger, A. Pretschner, and C. Salzmann, "Engineering Automotive Software," Proc. IEEE, vol. 95, no. 2. P. 356–373, Feb. 2007, doi: 10.1109/JPROC.2006.888386.

25. S. Tilkov and S. Vinoski, "Node.js: Using JavaScript to Build High-Performance Network Programs," IEEE Internet Comput., vol. 14, no. 6. P. 80–83, Nov./Dec. 2010, doi: 10.1109/MIC.2010.145.

26. B. Burns, J. Beda, and K. Hightower, Kubernetes: Up and Running, 2nd ed. Sebastopol, CA, USA: O'Reilly Media, 2019.

27. C. Ebert and G. Gallardo, "DevOps," IEEE Softw., vol. 33, no. 3. P. 94–100, May/Jun. 2016, doi: 10.1109/MS.2016.68.

28. R. T. Fielding and R. N. Taylor, "Principled Design of the Modern Web Architecture," ACM Trans. Internet Technol., vol. 2, no. 2. P. 115–150, May 2002, doi: 10.1145/514183.514185.

29. D. Hardt, "The OAuth 2.0 Authorization Framework," RFC 6749, Oct. 2012, doi: 10.17487/RFC6749.

Пристатейна бібліографія ГОСТ

1. M. Fowler and J. Lewis, "Microservices," martinfowler.com, Mar. 2014. Accessed Oct. 1, 2023. [Online]. URL: https://martinfowler.com/articles/microservices.html

2. S. Newman, Building Microservices: Designing Fine-Grained Systems, 2nd ed. Sebastopol, CA, USA: O'Reilly Media, 2021.

3. M. Beckers, "Understanding the potential of Modulith architecture," Worldline Tech Blog, Jan. 2024. Accessed Oct. 2, 2023. [Online]. URL: https://blog.worldline.tech/2024/01/23/modulith.html

4. N. Dragoni et al., "Microservices: Yesterday, Today, and Tomorrow," in Present and Ulterior Software Engineering, M. Mazzara and B. Meyer, Eds. Cham, Switzerland: Springer, 2017. P. 195–216, doi: 10.1007/978-3-319-67425-4_12.

5. O'Reilly Media, "Microservices Adoption in 2020," O'Reilly Radar, 2020. Accessed Oct. 1, 2023. [Online]. URL: https://www.oreilly.com/radar/microservices-adoption-in-2020/

6. Cloud Native Computing Foundation, "CNCF Survey 2020," CNCF, Nov. 2020. Accessed Oct. 3, 2023. [Online]. URL: https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf

7. International Data Corporation (IDC), "IDC Forecasts a Robust Market for Enterprise Applications as Organizations Pursue Digital Era Strategies," IDC, Sep. 2023. Accessed Oct. 1, 2023. [Online]. URL: https://www.idc.com/getdoc.jsp?containerId=prUS51107323

8. M. Fowler, Patterns of Enterprise Application Architecture. Boston, MA, USA: Addison-Wesley, 2012.

9. I. Nadareishvili, R. Mitra, M. McLarty, and M. Amundsen, Microservice Architecture: Aligning Principles, Practices, and Culture. Sebastopol, CA, USA: O'Reilly Media, 2016.

10. C. Richardson, Microservices Patterns: With Examples in Java. Shelter Island, NY, USA: Manning Publications, 2018.

11. M. E. Conway, "How Do Committees Invent?," Datamation, vol. 14, no. 4. P. 28–31, Apr. 1968.

12. L. Chen, "Continuous Delivery: Huge Benefits, but Challenges Too," IEEE Softw., vol. 32, no. 2. P. 50–54, Mar./Apr. 2015, doi: 10.1109/MS.2015.27.

13. A. E. Eivy, "Be Wary of the Economics of 'Serverless' Cloud Computing," IEEE Cloud Comput., vol. 4, no. 2. P. 6–12, Mar./Apr. 2017, doi: 10.1109/MCC.2017.32.

14. E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. Boston, MA, USA: Addison-Wesley, 2003.

15. J. Humble and J. Molesky, "Why Enterprises Must Adopt DevOps to Enable Continuous Delivery," Cutter IT J., vol. 24, no. 8. P. 6–12, Aug. 2011.

16. D. Merkel, "Docker: Lightweight Linux Containers for Consistent Development and Deployment," Linux Journal, vol. 2014, no. 239, Mar. 2014. Accessed Oct. 5, 2023. [Online]. Available: https://dl.acm.org/doi/10.5555/2600239.2600241

17. B. Burns, B. Grant, D. Oppenheimer, E. Brewer, and J. Wilkes, "Borg, Omega, and Kubernetes," Commun. ACM, vol. 59, no. 5. P. 50–57, May 2016, doi: 10.1145/2890784.

18. T. Erl, Service-Oriented Architecture: Concepts, Technology, and Design. Upper Saddle River, NJ, USA: Prentice Hall, 2005.

19. Airbnb Engineering, "Dynamic Kubernetes Cluster Scaling at Airbnb," Airbnb Engineering & Data Science Blog, May 23, 2022. Accessed Oct. 4, 2023. [Online]. Available: https://medium.com/airbnb-engineering/dynamic-kubernetes-cluster-scaling-at-airbnb-d79ae3afa132

20. W. Morgan, "What Is a Service Mesh?," Buoyant, 2017. Accessed Oct. 1, 2023. [Online]. Available: https://buoyant.io/what-is-a-service-mesh

21. R. Hincapie, "The Ultimate Guide to Becoming an Istio Certified Administrator," Medium, May 19, 2023. Accessed Oct. 2, 2023. [Online]. URL: https://richincapie.medium.com/the-ultimate-guide-to-becoming-an-istio-certified-administrator-160b845e7490

22. C. Gormley and Z. Tong, Elasticsearch: The Definitive Guide. Sebastopol, CA, USA: O'Reilly Media, 2015.

23. A. Cockcroft, "Migrating to Microservices," Nginx, 2015. Accessed Oct. 10, 2023. [Online]. URL: https://www.nginx.com/blog/microservices-at-netflix-architectural-best-practices/

24. M. Broy, I. H. Krüger, A. Pretschner, and C. Salzmann, "Engineering Automotive Software," Proc. IEEE, vol. 95, no. 2. P. 356–373, Feb. 2007, doi: 10.1109/JPROC.2006.888386.

25. S. Tilkov and S. Vinoski, "Node.js: Using JavaScript to Build High-Performance Network Programs," IEEE Internet Comput., vol. 14, no. 6. P. 80–83, Nov./Dec. 2010, doi: 10.1109/MIC.2010.145.

26. B. Burns, J. Beda, and K. Hightower, Kubernetes: Up and Running, 2nd ed. Sebastopol, CA, USA: O'Reilly Media, 2019.

27. C. Ebert and G. Gallardo, "DevOps," IEEE Softw., vol. 33, no. 3. P. 94–100, May/Jun. 2016, doi: 10.1109/MS.2016.68.

28. R. T. Fielding and R. N. Taylor, "Principled Design of the Modern Web Architecture," ACM Trans. Internet Technol., vol. 2, no. 2. P. 115–150, May 2002, doi: 10.1145/514183.514185.

29. D. Hardt, "The OAuth 2.0 Authorization Framework," RFC 6749, Oct. 2012, doi: 10.17487/RFC6749.


Copyright (c) 2024 О.С. Улічев, О.П. Доренський, В.П. Кулагін