Migrando um legado para micro serviços

361 visualizações

Publicada em

Palestra do TDC Floripa 2015

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
361
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Migrando um legado para micro serviços

  1. 1. Migrando um legado para Micro Serviços Desafios, estratégias e aprendizados
  2. 2. www.ilegra.com
  3. 3. Cenário
  4. 4. O cliente sabe onde estão os problemas Sabe que está fazendo errado Mas precisa de ajuda para resolver Cenário
  5. 5. Velocidade de desenvolvimento Previsibilidade Satisfação do cliente
  6. 6. TI e Software legados
  7. 7. “Arquitetura”
  8. 8. Estratégia
  9. 9. Pilares CoachingArquitetura DevOps
  10. 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. 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. 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
  13. 13. ARQUITETURA
  14. 14. Discovery
  15. 15. Projeto Piloto Time separado (isolamento) Primeiros serviços Code Review Feedback
  16. 16. Simplicidade como Norte
  17. 17. Eliminar complexidade acidental
  18. 18. Spring Boot
  19. 19. “Chassis” de Serviços
  20. 20. POCs / Spikes - Reduzir riscos; - Ajudar nas estimativas; - Isolamento de complexidade.
  21. 21. Anatomia dos Serviços
  22. 22. Design Estrutural “Keep the code on the right layer”
  23. 23. Inter-service Communication REST/Http (sync) Event Driven (async) JMS
  24. 24. Log centralizado
  25. 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
  26. 26. INFRAESTRUTURA
  27. 27. Automação
  28. 28. Pipeline
  29. 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.
  30. 30. Ansible
  31. 31. Docker + Gradle Dockerfile build.gradle
  32. 32. Vagrant
  33. 33. API MANAGEMENT
  34. 34. Gateway / Proxy API Proxy API Gateway API Management
  35. 35. Gateway / Proxy
  36. 36. - Traffic Control; - Authentication; - Rate Limits; - Caching; - Analytics; - Transformation; - Monetization; - API Mocks. Features/Responsabilidades
  37. 37. On-premise
  38. 38. Cloud
  39. 39. Cloud
  40. 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.
  41. 41. OBRIGADO!
  42. 42. Rafael Souza rafaelsouza.eng.br rafael_psouza rafaelpsouza

×