O documento descreve o processo de reengenharia de software adotado para modernizar sistemas legados de um governo para suportar arquitetura orientada a serviços. O processo utilizou referenciais de SOA, reengenharia e DevOps para definir as fases de inventário de serviços, mapeamento de contexto e caracterização de design, resultando em uma arquitetura de microsserviços.
4. … que com o passar dos anos e ausências de boas práticas de
engenharia de software, foi acumulando dívidas
técnicas…
“Complexidade de código, dívida arquitetural, ausência de testes,
dívida documental, violação de estilo de código e códigos com
problemas de escrita são fatores que impactam diretamente na
manutenção e evolução de sistemas”
6. Prover robusta interface de serviços capaz de responder
a um cenário de alta disponibilidade, bem como suportar grandes cargas de
requisições.
Garantir a coexistência com os sistemas legados.
Agilizar o processo de entrega e distribuição de softwares.
Garantir uma política de segurança que atenda os padrões de
Interoperabilidade de Governo Eletrônico[1], bem como
às exigências do Marco Civil da Internet.
8. Relatar a experiência de construir e aplicar um
processo de reengenharia de software com objetivo
de modernizar sistemas legados para suportar SOA.
como estudo de caso, o processo está sendo aplicado num contexto de um projeto de
migração do sistema UVT (Unidade Virtual de Tributação) da SET/RN.
9. Vamos Começar:
O Contexto
2009
REALIDADE
Custo de manutenção, dívidas técnica,
modernizar práticas de
desenvolvimento obsoletas.
DESAFIOS
Times distintos e remotos, construção
um conjunto de serviços e de interfaces
consumidoras moderanas (SPA e
mobile).
14. O PROBLEMA
DÍVIDA TÉCNICA
ALTO ACOPLAMENTO
FALTA DE REÚSO
MOTIVAÇÃO
MELHORAR QUALIDADE
DISTRIBUIR SERVIÇOS
INTERFACES CONSUMIDORAS
DESACOPLADAS
METODOLOGIA
metodologia ad hoc,
formalização e análise
Antes da solução
OBJETIVO
CRIAR E APLICAR PROCESSO
DE MIGRAÇÃO
EXPECTATIVA
SISTEMA COM MELHOR
fatores QUALIDADE
E orientado a serviços
17. Adrian Cockcroft defines a microservices architecture as
a service-oriented architecture composed of loosely coupled
elements that have bounded contexts.
VP Cloud Architecture Strategy at AWS (Atualmente)
Cloud Architecture Netflix (2010-2013)
18. The microservice approach has emerged from real-
world use, taking our better understanding of systems and
architecture to do SOA well.[2]
Newman, Sam. technical consultant at ThoughtWorks
23. Prover robusta interface de serviços capaz de responder
a um cenário de alta disponibilidade, bem como suportar grandes cargas de
requisições.
Garantir a coexistência com os sistemas legados.
Agilizar o processo de entrega e distribuição de softwares.
Garantir uma política de segurança que atenda os padrões de
Interoperabilidade de Governo Eletrônico[1], bem como
às exigências do Marco Civil da Internet.
46. Referências
[1] EPING. Padr›es de Interoperabilidade de Governo Eletrônico - ePING. 2017. Website. Disponível em:
<http://eping.governoeletronico.gov.br/>.
[2]products,Newman, Sam. Building Microservices (Kindle Location 301). O'Reilly Media. Kindle Edition.
[3] SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST (The Prentice Hall Service
Technology Series from Thomas Erl) (Kindle Locations 1242-1243). Pearson Education. Kindle Edition.
[4]PRESSMAN, R.; MAXIM, B. Engenharia de Software-8a Edi‹o. [S.l.]: McGraw Hill Brasil, 2016.