Microsserviços aplicados no gerenciamento de dados de vistorias imobiliárias: um estudo de caso
Resumo
As arquiteturas de microsserviço são cada vez mais adotadas na indústria e setor empresarial, pois oferecem alta escalabilidade, disponibilidade e velocidade de desenvolvimento. A literatura acadêmica propôs uma variedade de abordagens para automatizar o dimensionamento e alocação de recursos, recuperação de falhas, ajuste de parâmetros e muitas outras tarefas que permitem o auto-gerenciamento de microsserviços. A avaliação dessas abordagens em um cenário realista requer aplicações com comportamentos diversificados, demandando requisitos específicos quanto a escalabilidade, desempenho e confiabilidade. Este trabalho apresenta uma solução baseada em uma arquitetura de microsserviços, que consiste de onze serviços, fornecendo uma visão real para avaliação da aplicabilidade de novas abordagens para microsserviços e sistemas de software autônomos em geral. O problema alvo desta solução é o gerenciamento de dados de vistorias imobiliárias. Este trabalho apresenta uma visão geral da arquitetura adotada, indicando os desafios e aprendizados obtidos durante a implementação e manutenção deste sistema.
Referências
Bernstein, P. A., Cseri, I., Dani, N., Ellis, N., Kalhan, A., Kakivaya, G., Lomet, D. B.,Manne, R., Novik, L., and Talius, T. (2011). Adapting microsoft sql server for cloudcomputing. In 2011 IEEE 27th International Conference on Data Engineering, pages1255-1263. IEEE.
Bribesois, A. (2013). Posion queues are a must! https: //alexandrebrisebois.wordpress.com/2013/08/14/poison-queues-are-a-must/.
Rosen, R. (2014). Linux containers and the future cloud. Linux J, 240(4):86-95.
Bukoski, E. Moyles, B. and McGarr, M. (2016). How webuild code at netflix. https://netflixtechblog.com/how-we-build-code-at-netflix-c5d9bd727£15.
Casalicchio, E. (2017). Autonomic orchestration of containers: Problem definition andresearch challenges. ValueTools 2016 - 10th EAI International Conference on Perfor-mance Evaluation Methodologies and Tools, pages 287-290.
Casalicchio, E. and Iannucci, S. (2020). The state-of-the-art in container technologies:Application, orchestration and security. Concurrency Computation, (March 2018):1—-17.
Confluent (2020). Schema registry tutorial. https://docs.confluent.io/current /schema-registry/schema registry tutorial.html.
Felter, W., Ferreira, A., Rajamony, R., and Rubio, J. (2015). An updated performancecomparison of virtual machines and Linux containers. ISPASS 2015 - IEEE Interna-tional Symposium on Performance Analysis of Systems and Software, 25482:171-172.
Fowler, S. J. (2017). Microsserviços prontos para a produção. novatec, São Paulo, 1edition.
Gan, Y. and Delimitrou, C. (2018). The architectural implications of cloud microservices.IEEE Computer Architecture Letters, 17(2):155-158.
Garcia-Molina, H. and Salem, K. (1987). Sagas. ACM Sigmod Record, 16(3):249-259.
Haselbôck, S., Weinreich, R., and Buchgeher, G. (2017). Decision guidance modelsfor microservices: service discovery and fault tolerance. In Proceedings of the FifthEuropean Conference on the Engineering of Computer-Based Systems, pages 1-10.
Hoque, S., de Brito, M. S., Willner, A., Keil, O., and Magedanz, T. (2017). Towardscontainer orchestration in fog computing infrastructures. In 2017 IEEE 41st AnnualComputer Software and Applications Conference (COMPSAC), volume 2, pages 294-299. IEEE.
Jonas, E., Schleier-Smith, J., Sreekanti, V., Tsai, C.-C., Khandelwal, A., Pu, Q., Shankar,V., Carreira, J., Krauth, K., Yadwadkar, N., et al. (2019). Cloud programming simpli-fied: A berkeley view on serverless computing. arXiv preprint arXiv: 1902.03383.
Karlesky, M., Williams, G., Bereza, W., and Fletcher, M. (2007). Mocking the embeddedworld: Test-driven development, continuous integration, and design patterns. In Proc.Emb. Systems Conf, CA, USA, pages 1518-1532.
Khan, A. (2017). Key Characteristics of a Container Orchestration Platform to Enable aModern Application. IEEE Cloud Computing, 4(5):42-48.
Las-Casas, P., Papakerashvili, G., Anand, V., and Mace, J. (2019). Sifter: Scalable sam-pling for distributed traces, without feature engineering. In Proceedings of the ACMSymposium on Cloud Computing, pages 312-324.
Limón, X., Guerra-Hernández, A., Sánchez-García, A. J., and Arriaga, J. C. P. (2018).Sagamas: a software framework for distributed transactions in the microservice archi-tecture. In 2018 6th International Conference in Software Engineering Research andInnovation (CONISOFT), pages 50-58. IEEE.
Liu, D. and Zhao, L. (2014). The research and implementation of cloud computing plat-form based on docker. 2014 11th International Computer Conference on Wavelet Ac-tive Media Technology and Information Processing, ICCWAMTIP 2014, pages 475-478.
Maenhaut, P. J., Volckaert, B., Ongenae, V., and De Turck, F. (2019). Resource Management in a Containerized Cloud: Status and Challenges, volume 28. Springer US.Technology, pages 677-685. Springer.
Merci, L. and Pavlik, J. (2019). The comparison of container orchestrators. In ThirdInternational Congress on Information and Communication
Peinl, R., Holzschuher, F., and Pfitzer, F. (2016). Docker cluster management for thecloud-survey results and own solution. Journal of Grid Computing, 14(2):265-282.
Polo, M., Tendero, S., and Piattini, M. (2007). Integrating techniques and tools for testingautomation. Software Testing, Verification and Reliability, 17(1):3-39.
Richardson, C. (2019). Pattern: Distributed tracing. https://microservices.io/patterns/observability/distributed-tracing.html.
Rufino, J., Alam, M., Ferreira, J., Rehman, A., and Tsang, K. F. (2017). Orchestration ofcontainerized microservices for IoT using Docker. Proceedings of the IEEE International Conference on Industrial Technology, pages 1532-1536.