Microservices, soa e o melhor das filas

475 visualizações

Publicada em

Publicada em: Tecnologia
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
475
No SlideShare
0
A partir de incorporações
0
Número de incorporações
9
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Microservices, soa e o melhor das filas

  1. 1. Microservices, SOA e o melhor das Filas @diego_pacheco Software Architect | Agile Coach
  2. 2. www.ilegra.com
  3. 3. ~35/40 pessoas Projeto X: Mais de 120k horas de projeto ~400 epicos ~650h de treinamentos SOA 120/40k horas ~140 servers API
  4. 4. Arquitetura de Software
  5. 5. A lei de Conway
  6. 6. SEM caixa mágica…
  7. 7. Soluções Open Source
  8. 8. SOA
  9. 9. Contexto de Business  Quase nehuma “escrita”  Escrita em outros processos  Muito mais lietura do que escrita  Muitas aquisicoes  Necessidade acesso de dados  Necessidade de Escalabilidade  +Cache +Serialicação do que TX
  10. 10. Thomas Jefferson (don’t copy the tools) In matters of style, swim with the current; In matters of principle, stand like a rock.
  11. 11. SOA: Arquitetura e Orientação a Serviços
  12. 12. Core Principles  Separation of Concerns (SOC)  Loose Coupling  Flexibility  Scalability  Performance  Single Integrated Platform  Focus on Serialization and cache rather than database.
  13. 13. Abstraction
  14. 14. Contratos de Serviços Consumidor Contrato Implementação do Serviço
  15. 15. Partes de um Contrato Nome do Serviço Operações Públicas Comportamento do serviço * Input Output Versão Formato dos dados: Xml, Json, binário Layout dos dados: dd/mm/yyyy, dddd-yy-mm, dd  Protocolo de acesso frontend: SOAP, REST, EJB, IPC, Atores, Stream, etc…  Outras dimenssoes que façam sentido a arquitetura e/ou negócio da empresa…
  16. 16. Ponto de Entrada(Tradução) Domain Data Layer DAO Business Anti-Corruption Layer (BIND) Backward Compatibility Converters BC Converters Contract :TCD => :contract :Integration (UT) Interno
  17. 17. Frequencia Cientifico - + Financeiro
  18. 18. Natureza do Job Short Long
  19. 19. Messageria
  20. 20. ActiveMQ: Arquitetura
  21. 21. Workload não previsivel – Buffer / Spooling Informações sobre o que esta acontecendo Auto-Escalabilidade com + workers Re-Processamento Durabilidade Bom para Long Running Jobs Queues: O melhor das filas
  22. 22. Microservices
  23. 23. Monolitos
  24. 24. Microservices: DDD
  25. 25. Descentralização ESB Microservices
  26. 26. Isolamento
  27. 27. Isolamento Fisico
  28. 28. Micro-Workers? DDD VS Data Driven http://diego-pacheco.blogspot.com.br/2015/04/micro-workers-flavor-or-microservices.html Contract Impl Data Data Data
  29. 29. Main Architecture Data Center EUA Data Center EU Akamai  DNS  GeoIP
  30. 30. Main Architecture Internal Gateway ActiveMQ Worker Service ActiveMQ External APIWeb UI Worker Service Internal Gateway
  31. 31. Middleware Architecture Management Worker Service IN OUT Management Worker Service IN GENERIC Background Thread Pooling
  32. 32. Services Architecture / Composição Localizar Procurar Exportar Alertar Exportar Pesquisa Integração  +15 SOA Services  +API as Services  Single Purpose Services  N workers per ServiceAPI Business 1 API Business 2 API Business 3 API Business 4
  33. 33. Governança
  34. 34. Stress Tests
  35. 35. Regras de Testes  Serviços sempre roda na ultima versão  Os testes são todos visionados  Testes Por Versão  Testes Separados Por pacotes  Não se toca nos testes uma vez que tenha nova versão, se mexe no serviço. Devem testar todas operações e todo tipo de comportamento cabível de se testar.
  36. 36. Backward Compatibility Service V1 - Contract Consumidor X Consumidor Y
  37. 37. Breaking Change VS Non-Breaking Change • Adicionar Serviço novo • Adicionar Operação nova • Adicionar Atribuito em request(input) opicional • Remover Serviços • Renomear Serviços • Renomear Operações • Remover Operações • Adicionar atributos(input) obrigatórios. • Mudar formato dos dados • Mudar Layout de Dados
  38. 38. Lições Aprendidas Wins VS Aprendizados  Focando SOA com principios  Isolamento Fisico  Abstracoes  Refactoring  Upgrades Tech  Performance  Queues Long Run  Composição por Código para cenários simples  Versionamento por coding e não por branches.  Isolamento de servers, threads pools, cache e máquinas.  Soluções OSS muito maduras  Automação não estava 1000%  Issues com Automação de BD  Queues sendo pesadas para Light sync  ActiveMQ e messageria no geral é muito associado ao hardware e dados, em um cenário de mudanças precisa estar sempre tunando.  Timeouts escondem issues  Messageria com DLQ é ruim, melhor usar solução de log centralizado como ELK.  Cache Local é bom, mas pode explodir serviço, logo é melhor ter um data grid distribuido como Coherence.
  39. 39. Microservices, SOA e o melhor das Filas @diego_pacheco Software Architect | Agile Coach Obrigado!

×