Uma solução orientada a aspectos para migração reversível de aplicações monolíticas para microsserviços [Digital]
Tese
Português
681.3.06
Fortaleza, 2021.
Várias organizações precisam enfrentar o desafio de migrar seus atuais sistemas monolíticos
tradicionais em produção para microsserviços, de preferência, sem ter que agendar atividades de
manutenção para colocá-los offline. Este trabalho apresenta uma abordagem para migrar sistemas
monolíticos para... Ver mais Várias organizações precisam enfrentar o desafio de migrar seus atuais sistemas monolíticos
tradicionais em produção para microsserviços, de preferência, sem ter que agendar atividades de
manutenção para colocá-los offline. Este trabalho apresenta uma abordagem para migrar sistemas
monolíticos para microsserviços com tempo de inatividade quase zero e mudanças mínimas
no código no monólito. A abordagem é baseada nos conceitos de Programação Orientada a
Aspectos (AOP) e Reflexão e permite interceptar chamadas dentro do monólito e transformá-las
em solicitações de serviço que invocam os microsserviços recém-construídos usando o conceito
de adendo Around. Os aspectos fazem o ¿trabalho árduo¿ de desacoplar o que será refatorado
e qual serviço direcionar. Isso é realizado com praticamente ¿zero¿ alterações de código no
monólito original. Duas aplicações foram usadas como provas de conceito para demonstrar que
a abordagem proposta permite migrar ou reverter entre diferentes versões da aplicação com
relativamente poucas mudanças de código ou de dados. Uma avaliação realizada em uma nuvem
pública demonstra que este trabalho não apresenta perdas significativas de desempenho ou de
custo quando comparado ao estado da arte em soluções de migração para microsserviços e ao
monólito original.
Palavras-chave: Arquitetura de microsserviços. Migração de Sistemas. Programação Orientada
a Aspectos. Ver menos
tradicionais em produção para microsserviços, de preferência, sem ter que agendar atividades de
manutenção para colocá-los offline. Este trabalho apresenta uma abordagem para migrar sistemas
monolíticos para... Ver mais Várias organizações precisam enfrentar o desafio de migrar seus atuais sistemas monolíticos
tradicionais em produção para microsserviços, de preferência, sem ter que agendar atividades de
manutenção para colocá-los offline. Este trabalho apresenta uma abordagem para migrar sistemas
monolíticos para microsserviços com tempo de inatividade quase zero e mudanças mínimas
no código no monólito. A abordagem é baseada nos conceitos de Programação Orientada a
Aspectos (AOP) e Reflexão e permite interceptar chamadas dentro do monólito e transformá-las
em solicitações de serviço que invocam os microsserviços recém-construídos usando o conceito
de adendo Around. Os aspectos fazem o ¿trabalho árduo¿ de desacoplar o que será refatorado
e qual serviço direcionar. Isso é realizado com praticamente ¿zero¿ alterações de código no
monólito original. Duas aplicações foram usadas como provas de conceito para demonstrar que
a abordagem proposta permite migrar ou reverter entre diferentes versões da aplicação com
relativamente poucas mudanças de código ou de dados. Uma avaliação realizada em uma nuvem
pública demonstra que este trabalho não apresenta perdas significativas de desempenho ou de
custo quando comparado ao estado da arte em soluções de migração para microsserviços e ao
monólito original.
Palavras-chave: Arquitetura de microsserviços. Migração de Sistemas. Programação Orientada
a Aspectos. Ver menos
Several organizations need to address the challenge to migrate current traditional monolithic
applications in production to microservices, preferably, without having to schedule maintenance
activities to take the application offline. This paper presents an approach for migrating to
microservices... Ver mais Several organizations need to address the challenge to migrate current traditional monolithic
applications in production to microservices, preferably, without having to schedule maintenance
activities to take the application offline. This paper presents an approach for migrating to
microservices with almost zero downtime and minimal changes in the monolith code. The
approach is based on the concepts of Aspect-oriented Programming (AOP) and Reflection to
enable to intercept calls inside the monolith and transform them into service requests invoking
the newly built microservices using the concept of around advices. The aspects do the ¿hard
work¿ of decoupling what will be refactored and which service to call and practically ¿zero¿ code
changes need to be done in the original monolith code. Two applications are used as proofs of
concept to demonstrate that the proposed approach enables to go either migrate or reverse among
different versions of the application with minimal code or data changes. An evaluation performed
in a public cloud demonstrates that this work does not introduce significant performance or cost
overhead when compared to the state of the art in microservice migration and to the original
monolith.
Keywords: Microservice Architecture; System Migration; Aspect Oriented Programming. Ver menos
applications in production to microservices, preferably, without having to schedule maintenance
activities to take the application offline. This paper presents an approach for migrating to
microservices... Ver mais Several organizations need to address the challenge to migrate current traditional monolithic
applications in production to microservices, preferably, without having to schedule maintenance
activities to take the application offline. This paper presents an approach for migrating to
microservices with almost zero downtime and minimal changes in the monolith code. The
approach is based on the concepts of Aspect-oriented Programming (AOP) and Reflection to
enable to intercept calls inside the monolith and transform them into service requests invoking
the newly built microservices using the concept of around advices. The aspects do the ¿hard
work¿ of decoupling what will be refactored and which service to call and practically ¿zero¿ code
changes need to be done in the original monolith code. Two applications are used as proofs of
concept to demonstrate that the proposed approach enables to go either migrate or reverse among
different versions of the application with minimal code or data changes. An evaluation performed
in a public cloud demonstrates that this work does not introduce significant performance or cost
overhead when compared to the state of the art in microservice migration and to the original
monolith.
Keywords: Microservice Architecture; System Migration; Aspect Oriented Programming. Ver menos
Sampaio, Americo Tadeu Falcone
Orientador
Mendonça, Nabor das Chagas
Coorientador
Albuquerque, Adriano Bessa
Banca examinadora
Trinta, Fernando Antonio Mota
Banca examinadora
Batista, Thais Vasconcelos
Banca examinadora
Garcia, Vinicius Cardoso
Banca examinadora