Migrando um legado para
Micro Serviços
Desafios, estratégias e aprendizados
www.ilegra.com
Cenário
O cliente sabe onde estão os
problemas
Sabe que está fazendo errado
Mas precisa de ajuda para resolver
Cenário
Velocidade de desenvolvimento
Previsibilidade
Satisfação do cliente
TI e Software legados
“Arquitetura”
Estratégia
Pilares
CoachingArquitetura
DevOps
Tática
- Consultoria de Arquitetura;
- Projeto piloto;
- Treinamentos;
- Evolução de Serviços;
- Capacitação gradativa da equipe;
- Automação;
- Iniciativas de DevOps.
Desafios Técnicos
- Nosso principal problema: Integration Database;
- Muita lógica de negócios no banco (procedures);
- Evitar “big-bang refactoring”;
- Remover features dos legado(s) constantemente;
- Features novas entram como serviço.
Cloud?
- Traria agilidade, mas é inviável no momento: Integration Database;
- Mas podemos chegar lá:
- Trabalhando feed de dados on-premise -> cloud;
- Encontrando serviços e componentes candidatos para cloud (menos
dependências dados isolados);
- Condução de forma gradativa.
Cloud
ARQUITETURA
Discovery
Projeto Piloto
Time separado (isolamento)
Primeiros serviços
Code Review
Feedback
Simplicidade como Norte
Eliminar complexidade
acidental
Spring Boot
“Chassis” de Serviços
POCs / Spikes
- Reduzir riscos;
- Ajudar nas estimativas;
- Isolamento de complexidade.
Anatomia dos Serviços
Design Estrutural
“Keep the code on the right layer”
Inter-service
Communication
REST/Http
(sync)
Event Driven
(async)
JMS
Log centralizado
Evolução dos Serviços
Foco nas
abstrações
(contratos,
aggregations,
anatomia).
Busca por
consumidores
(serviço como
única fonte de
dados).
Isolamento
completo.
Evolução
INFRAESTRUTURA
Automação
Pipeline
Docker
- Centrado na aplicação (e não no servidor/maquina);
- Deployment rápido;
- Manutenção simplificada (isolamento);
- Portabilidade entre maquinas;
- Controle de versões;
- Crescendo.
Ansible
Docker + Gradle
Dockerfile
build.gradle
Vagrant
API MANAGEMENT
Gateway / Proxy
API Proxy
API Gateway
API Management
Gateway / Proxy
- Traffic Control;
- Authentication;
- Rate Limits;
- Caching;
- Analytics;
- Transformation;
- Monetization;
- API Mocks.
Features/Responsabilidades
On-premise
Cloud
Cloud
Próximos Passos
- Finalizar projeto piloto;
- Criação de novos serviços;
- Trazer mais aplicações como consumidores dos serviços;
- Equipes de outros projetos construir serviços;
- Diminuir a “força” do Integration Database;
- Métricas de delivery;
- Maior esforço nas iniciativas DevOps.
OBRIGADO!
Rafael Souza
rafaelsouza.eng.br
rafael_psouza
rafaelpsouza

Migrando um legado para micro serviços