Rumo a uma Taxonomia de Observabilidade para Aplicações Baseadas em Microsserviços

  • Francisco A. A. Gomes UFC
  • Paulo A. L. Rego UFC
  • Fernando A. M. Trinta UFC

Resumo


Aplicações baseadas em microsserviços têm sido amplamente adotadas nas empresas devido à sua excelente escalabilidade e capacidade de atualização oportuna. No entanto, embora a modularidade granular e a orientação por serviços reduzam a complexidade do desenvolvimento de sistemas, elas também aumentam a complexidade da operação e manutenção do sistema. Isso ocorre porque as falhas no sistema se tornaram mais frequentes e complexas. Com o aumento da complexidade das aplicações nativas em nuvem, as soluções de monitoramento tradicionais tornam-se inadequadas, levando a maiores riscos de falhas. A expansão do monitoramento para aplicações nativas em nuvem é conhecida como observabilidade, que pode ser formalmente definida como a capacidade de entender e diagnosticar o comportamento interno de um sistema analisando seus estados externos, permitindo a detecção e resolução eficazes de problemas. Embora alguns estudos na literatura abordem os conceitos, ferramentas e desafios da observabilidade, nenhum deles apresenta uma taxonomia de observabilidade. Neste trabalho, é proposta uma taxonomia de observabilidade para aplicações baseadas em microsserviços, apoiada por uma revisão sistemática da literatura. Os autores deste trabalho identificaram 26 estudos publicados entre 2019 e 2023. Esses estudos selecionados foram minuciosamente analisados e categorizados por essa taxonomia, fornecendo aos pesquisadores uma visão abrangente sobre Observabilidade.

Palavras-chave: Monitoramento, Observabilidade, Microsserviços, Taxonomia

Referências

Nuha Alshuqayran, Nour Ali, and Roger Evans. 2016. A systematic mapping study in microservice architecture. In 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA). IEEE, 44–51.

Ataollah Fatahi Baarzi and George Kesidis. 2021. Showar: Right-sizing and efficient scheduling of microservices. In Proceedings of the ACM Symposium on Cloud Computing. 427–441.

Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. 2016. Microservices architecture enables devops: Migration to a cloud-native architecture. Ieee Software 33, 3 (2016), 42–52.

A. Boten and C. Majors. 2022. Cloud-Native Observability with OpenTelemetry: Learn to gain visibility into systems by combining tracing, metrics, and logging with OpenTelemetry. Packt Publishing. [link]

Clément Cassé, Pascal Berthou, Philippe Owezarski, and Sébastien Josset. 2021. Using distributed tracing to identify inefficient resources composition in cloud applications. In 2021 IEEE 10th International Conference on Cloud Networking (CloudNet). IEEE, 40–47.

Clément Cassé, Pascal Berthou, Philippe Owezarski, and Sébastien Josset. 2022. A tracing based model to identify bottlenecks in physically distributed applications. In 2022 International Conference on Information Networking (ICOIN). IEEE, 226–231.

Ka-Ho Chow, Umesh Deshpande, Sangeetha Seshadri, and Ling Liu. 2022. DeepRest: deep resource estimation for interactive microservices. In Proceedings of the Seventeenth European Conference on Computer Systems. 181–198.

Sjouke de Vries, Frank Blaauw, and Vasilios Andrikopoulos. 2023. Cost-Profiling Microservice Applications Using an APM Stack. Future Internet 15, 1 (2023), 37.

Shuiguang Deng, Hailiang Zhao, Binbin Huang, Cheng Zhang, Feiyi Chen, Yinuo Deng, Jianwei Yin, Schahram Dustdar, and Albert Y Zomaya. 2023. Cloud-Native Computing: A Survey from the Perspective of Services. arXiv preprint arXiv:2306.14402 (2023).

Paolo Di Francesco, Ivano Malavolta, and Patricia Lago. 2017. Research on architecting microservices: Trends, focus, and potential for industrial adoption. In 2017 IEEE International conference on software architecture (ICSA). IEEE, 21–30.

António Pedro dos Santos Carvalho. 2022. Observabilidade e telemetria em arquiteturas de micro-serviços. (2022).

Nicola Dragoni, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, and Larisa Safina. 2017. Microservices: yesterday, today, and tomorrow. Present and ulterior software engineering (2017), 195–216.

Paul M Duvall, Steve Matyas, and Andrew Glover. 2007. Continuous integration: improving software quality and reducing risk. Pearson Education.

Yu Gan, Mingyu Liang, Sundar Dev, David Lo, and Christina Delimitrou. 2021. Sage: practical and scalable ML-driven performance debugging in microservices. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems. 135–151.

Dennis Gannon, Roger Barga, and Neel Sundaresan. 2017. Cloud-native applications. IEEE Cloud Computing 4, 5 (2017), 16–21.

Jez Humble and David Farley. 2010. Continuous delivery: reliable software releases through build, test, and deployment automation. Pearson Education.

Rudolf E Kalman. 1960. On the general theory of control systems. In Proceedings First International Conference on Automatic Control, Moscow, USSR. 481–492.

Suman Karumuri, Franco Solleza, Stan Zdonik, and Nesime Tatbul. 2021. Towards observability data management at scale. ACM SIGMOD Record 49, 4 (2021), 18–23.

Junichi Kawasaki, Daiki Koyama, Takuya Miyasaka, and Tomohiro Otani. 2023. Failure Prediction in Cloud Native 5G Core With eBPF-based Observability. In 2023 IEEE 97th Vehicular Technology Conference (VTC2023-Spring). IEEE, 1–6.

Abderaouf Khichane, Ilhem Fajjari, Nadjib Aitsaadi, and Mourad Gueroui. 2023. 5GC-Observer: a Non-intrusive Observability Framework for Cloud Native 5G System. In NOMS 2023-2023 IEEE/IFIP Network Operations and Management Symposium. IEEE, 1–10.

Joanna Kosińska, Bartosz Baliś,Marek Konieczny, Maciej Malawski, and Sławomir Zielinśki. 2023. Towards the Observability of Cloud-native applications: The Overview of the State-of-the-Art. IEEE Access (2023).

Joanna Kosińska and Krzysztof Zieliński. 2020. Autonomic management framework for cloud-native applications. Journal of Grid Computing 18 (2020), 779–796.

Nane Kratzke. 2022. Cloud-native observability: the many-faceted benefits of structured and unified logging—a multi-case study. Future Internet 14, 10 (2022), 274.

Nane Kratzke and Peter-Christian Quint. 2017. Understanding cloud-native applications after 10 years of cloud computing-a systematic mapping study. Journal of Systems and Software 126 (2017), 1–16.

Abhijit Kumar, Tauseef Ahmed, Konica Saini, and Jay Kumar. 2023. NEOS: Non-intrusive Edge Observability stack based on Zero Trust security model for Ubiquitous Computing. In 2023 IEEE International Conference on Edge Computing and Communications (EDGE). IEEE, 79–84.

Joshua Levin and Theophilus A Benson. 2020. ViperProbe: Rethinking microservice observability with eBPF. In 2020 IEEE 9th International Conference on Cloud Networking (CloudNet). IEEE, 1–8.

James Lewis and Martin Fowler. 2014. Microservices: a definition of this new architectural term. MartinFowler. com 25, 14-26 (2014), 12.

Bowen Li, Xin Peng, Qilin Xiang, HanzhangWang, Tao Xie, Jun Sun, and Xuanzhe Liu. 2022. Enjoy your observability: an industrial survey of microservice tracing and analysis. Empirical Software Engineering 27 (2022), 1–28.

Xin Li, Junsong Zhou, Xin Wei, Dawei Li, Zhuzhong Qian, Jie Wu, Xiaolin Qin, and Sanglu Lu. 2023. Topology-Aware Scheduling Framework for Microservice Applications in Cloud. IEEE Transactions on Parallel and Distributed Systems 34, 5 (2023), 1635–1649.

Nicolas Marie-Magdelaine. 2021. Observability and resources managements in cloud-native environnements. Ph.D. Dissertation. Bordeaux.

Nicolas Marie-Magdelaine and Toufik Ahmed. 2020. Proactive autoscaling for cloud-native applications using machine learning. In GLOBECOM 2020-2020 IEEE Global Communications Conference. IEEE, 1–7.

Davi Monteiro, Yijun Yu, Andrea Zisman, and Bashar Nuseibeh. 2023. Adaptive Observability for Forensic-Ready Microservice Systems. IEEE Transactions on Services Computing (2023).

Moeen Ali Naqvi, Sehrish Malik, Merve Astekin, and Leon Moonen. 2022. On Evaluating Self-Adaptive and Self-Healing Systems using Chaos Engineering. In 2022 IEEE International Conference on Autonomic Computing and Self-Organizing Systems (ACSOS). IEEE, 1–10.

Sina Niedermaier, Falko Koetter, Andreas Freymann, and Stefan Wagner. 2019. On observability and monitoring of distributed systems–an industry interview study. In Service-Oriented Computing: 17th International Conference, ICSOC 2019, Toulouse, France, October 28–31, 2019, Proceedings 17. Springer, 36–52.

Claus Pahl, Antonio Brogi, Jacopo Soldani, and Pooyan Jamshidi. 2017. Cloud container technologies: a state-of-the-art review. IEEE Transactions on Cloud Computing 7, 3 (2017), 677–692.

Claus Pahl and Pooyan Jamshidi. 2016. Microservices: A Systematic Mapping Study. CLOSER (1) (2016), 137–146.

Rodolfo Picoreti, Alexandre Pereira do Carmo, Felippe Mendonca de Queiroz, Anilton Salles Garcia, Raquel Frizera Vassallo, and Dimitra Simeonidou. 2018. Multilevel observability in cloud orchestration. In 2018 IEEE 16th Intl Conf on Dependable, Autonomic and Secure Computing, 16th Intl Conf on Pervasive Intelligence and Computing, 4th Intl Conf on Big Data Intelligence and Computing and Cyber Science and Technology Congress (DASC/PiCom/DataCom/CyberSciTech). IEEE, 776–784.

William Pourmajidi, Lei Zhang, John Steinbacher, Tony Erwin, and Andriy Miranskyy. 2023. A Reference Architecture for Observability and Compliance of Cloud Native Applications. arXiv preprint arXiv:2302.11617 (2023).

Rui Ren, Yang Wang, Fengrui Liu, Zhenyu Li, and Gaogang Xie. 2023. Triple: The Interpretable Deep Learning Anomaly Detection Framework based on Trace-Metric-Log of Microservice. In 2023 IEEE/ACM 31st International Symposium on Quality of Service (IWQoS). IEEE, 1–10.

Chris Richardson. 2018. Microservices patterns: with examples in Java. Simon and Schuster.

Mario Scrocca, Riccardo Tommasini, Alessandro Margara, Emanuele Della Valle, and Sherif Sakr. 2020. The Kaiju project: enabling event-driven observability. In Proceedings of the 14th ACM International Conference on Distributed and Event-Based Systems. 85–96.

Mali Senapathi, Jim Buchan, and Hady Osman. 2018. DevOps capabilities, practices, and challenges: Insights from a case study. In Proceedings of the 22nd International Conference on Evaluation and Assessment in Software Engineering 2018. 57–67.

Mojtaba Shahin, Muhammad Ali Babar, and Liming Zhu. 2017. Continuous integration, delivery and deployment: a systematic review on approaches, tools, challenges and practices. IEEE access 5 (2017), 3909–3943.

Anas Shatnawi, Bachar Rima, Zakarea Alshara, Gabriel Darbord, Abdelhak-Djamel Seriai, and Christophe Bortolaso. 2023. Telemetry of Legacy Web Applications: An Industrial Case Study. (2023).

Francisco Silva, Valéria Lelli, Ismayle Santos, and Rossana Andrade. 2022. Towards a fault taxonomy for microservices-based applications. In Proceedings of the XXXVI Brazilian Symposium on Software Engineering. 247–256.

Jesper Simonsson, Long Zhang, Brice Morin, Benoit Baudry, and Martin Monperrus. 2021. Observability and chaos engineering on system calls for containerized applications in docker. Future Generation Computer Systems 122 (2021), 117–129.

Andy Singleton. 2016. The economics of microservices. IEEE Cloud Computing 3, 5 (2016), 16–20.

Myungjun Son, Shruti Mohanty, Jashwant Raj Gunasekaran, and Mahmut Kandemir. 2023. MicroBlend: An Automated Service-Blending Framework for Microservice-Based Cloud Applications. In 2023 IEEE 16th International Conference on Cloud Computing (CLOUD). IEEE, 460–470.

Tobias Sundqvist, Monowar Bhuyan, and Erik Elmroth. 2023. Robust procedural learning for anomaly detection and observability in 5G RAN. IEEE Transactions on Network and Service Management (2023).

Johannes Thönes. 2015. Microservices. IEEE software 32, 1 (2015), 116–116.

Ioannis Tzanettis, Christina-Maria Androna, Anastasios Zafeiropoulos, Eleni Fotopoulou, and Symeon Papavassiliou. 2022. Data Fusion of Observability Signals for Assisting Orchestration of Distributed Applications. Sensors 22, 5 (2022), 2061.

Muhammad Usman, Simone Ferlin, Anna Brunstrom, and Javid Taheri. 2022. A Survey on Observability of Distributed Edge "&"Container-Based Microservices. IEEE Access 10 (2022), 86904–86919. DOI: 10.1109/ACCESS.2022.3193102

Muhammad Usman, Simone Ferlin, Anna Brunstrom, and Javid Taheri. 2023. DESK: Distributed Observability Framework for Edge-Based Containerized Microservices. In 2023 Joint European Conference on Networks and Communications & 6G Summit (EuCNC/6G Summit). IEEE, 617–622.

Hanzhang Wang, Zhengkai Wu, Huai Jiang, Yichao Huang, Jiamu Wang, Selcuk Kopru, and Tao Xie. 2021. Groot: An event-graph-based approach for root cause analysis in industrial settings. In 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 419–429.

Johannes Wettinger, Vasilios Andrikopoulos, Frank Leymann, and Steve Strauch. 2016. Middleware-oriented deployment automation for cloud applications. IEEE Transactions on Cloud Computing 6, 4 (2016), 1054–1066.

Guangba Yu, Pengfei Chen, Yufeng Li, Hongyang Chen, Xiaoyun Li, and Zibin Zheng. 2023. Nezha: Interpretable Fine-Grained Root Causes Analysis for Microservices on Multi-modal Observability Data. In Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 553–565.

Guangba Yu, Pengfei Chen, and Zibin Zheng. 2020. Microscaler: Cost-effective scaling for microservice applications in the cloud with an online learning approach. IEEE Transactions on Cloud Computing 10, 2 (2020), 1100–1116.
Publicado
30/09/2024
GOMES, Francisco A. A.; REGO, Paulo A. L.; TRINTA, Fernando A. M.. Rumo a uma Taxonomia de Observabilidade para Aplicações Baseadas em Microsserviços. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 38. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 234-245. DOI: https://doi.org/10.5753/sbes.2024.3386.