Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Arquitetura de microsserviços

1,749 views

Published on

Apresentação realizada no iMasters Developer Week - Rio de Janeiro http://developerweek.imasters.com.br/rio-de-janeiro/

Published in: Internet

Arquitetura de microsserviços

  1. 1. Arquitetura de Microsserviços Raphael Almeida
  2. 2. Quem sou eu? Raphael Almeida Dev PHP desde 2006 Co-fundador do PHPRio, DojoRio, RubyOnRio … Community-a-holic
  3. 3. Sistema Monolíticos Ecossistema de Microsserviços Migrando o Legado
  4. 4. Sistema Monolíticos Ecossistema de Microsserviços Migrando o Legado
  5. 5. Sismetas Monolíticos: Benefícios Simples Baixa latência Repositório e Deploy Únicos
  6. 6. Sismetas Monolíticos: Problemas Muito código Devs intimidados Medo de mudança Deploy gigante / complexo Deploy falha, tudo falha Maior tempo de testes IDE sobrecarregada Preso a tecnologia
  7. 7. “If you don’t end up regretting your early technology decisions, you probably over engineered” Randy Shoup (ex Google, eBay)
  8. 8. Sistema Monolíticos Ecossistema de Microsserviços Migrando o Legado
  9. 9. Microsserviços Uma arquitetura orientada a serviços fracamente acoplada com contextos limitados
  10. 10. Microsserviços Fundamentada na explosão de uma aplicação grande e monolítica em um conjunto de APIs e componentes muito pequenos, com baixíssima capacidade funcional, visando independência e autonomia dessas pequenas partes
  11. 11. Microsserviços: Princípios Um único propósito Interfaces simples e bem definidas Modular e independente Pequenos times Autonomia
  12. 12. “... é aquela unidade de software que pode ser aprimorada e substituída de forma independente”. Fowler e Lewis sobre componentes
  13. 13. Microsserviços: Serviços externos Quando utilizamos serviços externos estamos com a mesma mensalidade
  14. 14. Microsserviços: Benefícios Acessando o mesmo front Desenvolvimento simples Fim inferno das dependências Build e Deploy rápidos fácil de escalar equipes Liberdade para usar a melhor solução Maior isolamento e menor risco de falha
  15. 15. Microsserviços: Problemas Complexibilidade de distribuição e operação Gestão de múltiplos DBs e Transações Testes todos os serviços juntos
  16. 16. Sistema Monolíticos Ecossistema de Microsserviços Migrando o Legado
  17. 17. Migração: Opções Comprar uma solução completa (Oracle/Java, .NET) Escrever do ZERO. Tempo x Investimento Refatoração (Iterativo e Incremental)
  18. 18. Migração: Opções Comprar uma solução completa (Oracle/Java, .NET) Escrever do ZERO. Tempo x Investimento Refatoração (Iterativo e Incremental)
  19. 19. “The easiest way to encourage best practices is with *code*. Make it really easy to do the right thing, and harder to do the wrong thing!” Randy Shoup (ex Google, eBay)
  20. 20. Migração: Prepare a casa Sistema de Versionamento de Código Testes Automatizados (Unit > Integration) Continuous Deploy (CI)
  21. 21. Migração: Refatoração Procurar os piores gargalos de escalabilidade Isole com uma interface Substitua a implementação
  22. 22. Migração: Implementação Escolha uma ferramenta que simplifique a criação e manutenção Defina a interface Protótipo de Implementação Refatoração
  23. 23. Migração: Evite Persistência compartilhada Quebra o encapsulamento e gera acoplamento não mapeado Microsserviço “Megazorde” Muita responsabilidade e grande acúmulo de dependências
  24. 24. Migração: Padrões API Gateway (Sensedia / Amazon) Monitorar, Gerenciar, Autorizar, Controle de Tráfego CircuitBreaker Service Discovery And Balancing (Hystrix) Reactive Programming CanaryRelease Content Router Bounded Context
  25. 25. Migração: Ferramentas Docker (Provisionamento) MounteBank (Testes) Swagger (Documentação) Spring Boot, Apigility, ExpressJS … Netflix OSS
  26. 26. Perguntas? Raphael Almeida @raph_almeida

×