Este documento discute os desafios e estratégias para migrar um sistema legado para microserviços. A estratégia envolve coaching de arquitetura, projeto piloto, treinamentos e automação para evoluir os serviços gradualmente e remover funcionalidades do legado. Os principais desafios são a integração de dados e remover lógica de negócios do banco de dados, mas a abordagem gradativa permite progredir para a nuvem no futuro.
10. Tática
- Consultoria de Arquitetura;
- Projeto piloto;
- Treinamentos;
- Evolução de Serviços;
- Capacitação gradativa da equipe;
- Automação;
- Iniciativas de DevOps.
11. 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.
12. 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
25. 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
29. 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.
40. 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.