Migração de Sistemas Monolíticos para Microserviços: Uma Abordagem Híbrida sem Downtime

  • Augusto Flávio Albuquerque Arraes Instituto Federal de Educação, Ciência e Tecnologia do Ceará
  • Américo Sampaio UNIFOR
  • Otavio Medeiros UNIFOR
  • Nabor das Chagas Mendonca Universidade de Fortaleza

Resumo


The recent Microservices paradigm is based on building a system as a set of small distributed services developed in an independent fashion that are deployed, scaled and replicated in a transparent way as it was a single application. Several organizations that are adopting this paradigm have to cope with the challenge to migrate current traditional monolithic applications in production to microservices, preferably, without having to schedule maintenances to take the application offline. This paper presents an approach for hybrid migrating to microservices with no downtime and practically no changes in the monolithic code. A real application is used as a proof of concept to demonstrate that the proposed approach enables to go forward or backward among different versions of the application without needing to take the application offline, considering code or data changes. Moreover, an evaluation performed in the cloud demonstrates that this work does not introduce significant performance or costs overhead and still enables to support higher loads in the monolith, due to the removal of part of its functionality to be processed in microservices.

Palavras-chave: Migração, Microserviços, Computação em Nuvem

Referências

Balalaie, A., Heydarnoori, A., and Jamshidi, P. (2015a). Microservices migration patterns. Technical report, Department of Computer Engineering Sharif University of Technology.

Balalaie, A., Heydarnoori, A., and Jamshidi, P. (2015b). Migrating to cloud-native architectures using microservices: An experience report. In Advances in Service-Oriented and Cloud Computing -Workshops of ESOCC 2015, Taormina, Italy, September 15-17, 2015, Revised Selected Papers, pages 201-215.

Balalaie, A., Heydarnoori, A., and Jamshidi, P. (2016). Microservices architecture enables devops: Migration to a cloud-native architecture. IEEE Software, 33(3):42-52.

Bolar, T. (2018). Integrating microservices with a monolithic application. https://dzone.com/articles/integrating-micro-service-with-monolith-applicatio. Acessado: 18/12/2018.

Eisele, M. Modern Java EE Design Patterns: Building Scalable Architecture for Sustainable Enterprise Development, 2016. O'Reilly Media, Inc.

Fowler, M. and Lewis, J. “Microservices,” 25 Mar. 2014; www.martinfowler.com/articles/microservices.html. Acessado: 18/12/2018.

Freire, A. Vídeo de Teste na Nuvem (AWS) da Abordagem de Migração Híbrida com PetClinic. 2019. Disponível em: https://www.dropbox.com/sh/5nzuypfg6xss33r/AAB-iE03-ueXmT2Mb_A1NIv2a?dl=0

Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J., and Irwin, J. (1997). Aspect-oriented programming. In ECOOP'97 -Object-Oriented Programming, 11th European Conference, Jyv¨askyl¨a, Finland, June 9-13, 1997, Proceedings, pages 220-242.

Levcovitz, A., Terra, R., and Valente, M. T. (2015). Towards a technique for extracting microservices from monolithic enterprise systems. 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM), p. 97-104, 2015.

Macero, M. Learn Microservices with Spring Boot, 2017. Apress, Inc.

Medeiros, O., Sampaio, A. and Arraes., A. Uso de AOP na Migração de Aplicações Monolíticas para Microservices. XVI Workshop em Clouds e Aplicações (WCGA), SBRC, 2018.

Newman, S. (2015). Building Microservices Designing Fine-Grained Systems, volume 2015. O'Reilly Media, Inc.
Rey, A. Distributed version of the Spring PetClinic Sample Application built with Spring Cloud. 2016. Disponível em: github.com/spring-petclinic/spring-petclinic-microservices.

Richardson, C. and Floyd, F. (2016). Microservices From Design to Deployment, volume 2016. NGINX, Inc.
Richardson, C. (2014). Pattern: Monolithic architecture.

Richardson, C. (2016b). Refactoring a monolith into microservices. https://www.nginx.com/blog/refactoring-a-monolith-into-microservices/. Acessado: 18/12/2018.

Richardson, C. Microservices Patterns, Manning Publications, 2017.

Syer, D. Spring PetClinic Sample Application. 2015. Disponível em: github.com/spring-projects/spring-petclinic.

Yanaga. E. (2017). Migrating to Microservice Databases from Relational Monolith to Distributed Data, volume 1. O'Reilly
Publicado
16/09/2019
Como Citar

Selecione um Formato
ARRAES, Augusto Flávio Albuquerque; SAMPAIO, Américo ; MEDEIROS, Otavio ; MENDONCA, Nabor das Chagas. Migração de Sistemas Monolíticos para Microserviços: Uma Abordagem Híbrida sem Downtime. In: WORKSHOP EM CLOUDS E APLICAÇÕES (WCGA), 17. , 2019, Gramado. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 1-14. DOI: https://doi.org/10.5753/wcga.2019.7590.