O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Microservices - Coders on Beer Java e .NET

259 visualizações

Publicada em

Apresentação sobre Microservices no Coders on Beer de Java e .NET, realizado no dia 17 de abril em São Paulo.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Microservices - Coders on Beer Java e .NET

  1. 1. Helena Penha linkedin.com/in/lenapenha github.com/lenapenha helena.penha@concrete.com.br Caio Waquil linkedin.com/in/caio-waquil github.com/cwaquil caio.waquil@concrete.com.br
  2. 2. Capítulo .NET e Java VAMOS FALAR DE MICROSERVICES?
  3. 3. CENÁRIO ➔Projeto E-Commerce ➔Estrutura Java e .Net (linguagem única) ➔Dificuldade para o desenvolvedor embarcar no projeto. ➔Muito tempo de ajuste e configuração. ➔Muitas operações rotineiras manuais. ➔Escalabilidade dificultosa. ➔Deploy agendado fora de hora.
  4. 4. PROPOSTA Implementar uma arquitetura de microservices, a fim de solucionar os problemas.
  5. 5. MAS O QUE É UM MICROSERVICE?
  6. 6. "Em resumo, Microservice é uma abordagem para o desenvolvimento de uma única aplicação com um conjunto de pequenos serviços, cada um utilizando seu próprio processo e utilizando um tipo de comunicação leve, uma API de recursos HTTP .” MARTIN FOWLER, MICROSERVICES a definition of this new architectural term - 2014
  7. 7. https://cdn-images-1.medium.com/max/1600/1*7z41FbXum18CLEhH2MDO7w.png
  8. 8. Mão na massa? #sóquenão Desenvolvimento
  9. 9. PRÉ-REQUISITOS Muita calma nessa hora...
  10. 10. PRÉ-REQUISITOS Rápido provisionamento Monitoramento básico Rápido deploy de aplicações ➔Subir um servidor de forma rápida.
  11. 11. PRÉ-REQUISITOS Rápido provisionamento Monitoramento básico Rápido deploy de aplicações ➔Capacidade de detectar, pelo menos, problemas básicos relacionados aos serviços.
  12. 12. PRÉ-REQUISITOS Rápido provisionamento Monitoramento básico Rápido deploy de aplicações ➔Deploy sem demora.
  13. 13. DEVOPS A NECESSIDADE DE Como cultura E parte da equipe
  14. 14. MINDSET Precisamos pensar de outras formas.
  15. 15. ➔Determine a função principal do aplicativo. ➔Faça divisões até as menores unidades possíveis. MINDSET Começar desenhando Atenção com as dependências Times multidisciplinares Qualidade sempre Limite de Contexto
  16. 16. ➔Declare e isole explicitamente as dependências. ➔Trate serviços de apoio como recursos anexados. ➔DDD (Domain driven design) / Context Map. MINDSET Começar desenhando Atenção com as dependências Times multidisciplinares Qualidade sempre
  17. 17. ➔Criar equipes em torno de certos serviços, é necessário. MINDSET Começar desenhando Atenção com as dependências Times multidisciplinares Qualidade sempre
  18. 18. ➔O serviço deve ser testável desde o início. MINDSET Começar desenhando Atenção com as dependências Times multidisciplinares Qualidade sempre
  19. 19. DIVIDI! EAE? Ao que mais me atentar?
  20. 20. DIVIDI! EAE? Onde salvo? Como salvo? E os ambientes? Qual frequência?
  21. 21. DIVIDI! EAE? Onde salvo? Como salvo? E os ambientes? Qual frequência? ➔Tem várias bases de código? Não é uma app, é um sistema distribuído.
  22. 22. DIVIDI! EAE? Onde salvo? Como salvo? E os ambientes? Qual frequência?
  23. 23. DIVIDI! EAE? Onde salvo? Como salvo? E os ambientes? Qual frequência?
  24. 24. 12 Fatores 1 Base de código 2 Dependências 3 Configurações 4 Serviços de Apoio 5 Build, release e run 6 Processos 7 Vínculo de porta 8 Concorrência 9 Descartabilidade 10 Dev e Prod semelhantes 11 Logs 12 Processos de Administração Desenvolvimento
  25. 25. ACHOU QUE TAVA PRONTO?
  26. 26. “Depois do commit, existe um universo inteiro.” EU, NO PROJETO - ESSE ANO
  27. 27. Guilherme Andrade linkedin.com/in/gbandrade github.com/gbandrade74 guilherme.andrade@concrete.com.br Francisco Melo linkedin.com/in/assisjrs github.com/assisjrs francisco.melo@concrete.com.br
  28. 28. Integração
  29. 29. Gitflow Workflow
  30. 30. Comandos do Gitflow
  31. 31. Pull Requests
  32. 32. Por que?
  33. 33. Cultura DevOps, o ciclo contínuo...
  34. 34. Continous Integration, Delivery e Deployment
  35. 35. Container Image Promotion
  36. 36. Configuration Service
  37. 37. Pirâmides de testes Negócio Assertividade
  38. 38. Técnicas API Ambiente duplicado
  39. 39. Técnicas
  40. 40. Técnicas
  41. 41. Testes em produção
  42. 42. Técnicas Versões das APIs corretas Jornadas muito críticas (Dados mapeados) Cross Functional Tests
  43. 43. 12 Fatores 1 Base de código 2 Dependências 3 Configurações 4 Serviços de Apoio 5 Build, release e run 6 Processos 7 Vínculo de porta 8 Concorrência 9 Descartabilidade 10 Dev e Prod semelhantes 11 Logs 12 Processos de Administração Integração
  44. 44. Murilo Carvalho linkedin.com/in/murilomcarvalho murilo.carvalho@concrete.com.br
  45. 45. Sustentação Gerenciamento Monitoramento
  46. 46. Containers em Produção ? Tem sido uma prática muito bem aceita pelos arquitetos e times de desenvolvimento. Pensando em questões como portabilidade, reprodutibilidade e escalabilidade, containers são sim o grande nome do momento.
  47. 47. Como Gerenciar isso tudo?
  48. 48. Está com algum problema, em algum serviço, em algum servidor, em algum lugar… E AGORA ?!
  49. 49. ★A primeira coisa que você precisa saber? O que deu errado? MONITORAMENTO MONOLÍTICO MICROSERVICESX
  50. 50. "A resposta aqui é bem direta: monitore as pequenas coisas e use o conjunto para ver o quadro maior.” SAM NEWMAN, BUILDING MICROSERVICES - 2015 MONITORANDO MICROSERVICES
  51. 51. Monitorando... Único serviço, único servidor ➔Host - CPU, memória, espaço em disco… ➔Monitorar o serviço em si. No mínimo, o tempo de resposta
  52. 52. Monitorando... Único serviço, vários servidores ➔Host - CPU, memória, espaço em disco… ➔Ver as mesmas métricas em todos os hosts ➔Alertas específicos e fácil de identificar sua origem
  53. 53. Monitorando... Vários serviços, vários servidores ➔Como encontrar o erro vários hosts? ➔Como você determina se o problema é no host ou no serviço? ➔E como você rastreia um erro e descobre o que causou isso?
  54. 54. HOST NODE EXPORTER HOST AlertManager
  55. 55. Monitorando sempre “Quanto mais inteligentes estivermos em rastrear nossas tendências e saber o que fazer com elas, mais rentáveis e responsivos nossos sistemas podem ser” SAM NEWMAN, BUILDING MICROSERVICES - 2015
  56. 56. Coletando Logs, logs e ainda mais logs ... Usar subsistemas especializados para capturar nossos registros e disponibilizá-los de maneira centralizada.
  57. 57. Ferramentas para Monitoramento
  58. 58. 12 Fatores 1 Base de código 2 Dependências 3 Configurações 4 Serviços de Apoio 5 Build, release e run 6 Processos 7 Vínculo de porta 8 Concorrência 9 Descartabilidade 10 Dev e Prod semelhantes 11 Logs 12 Processos de Administração Sustentação
  59. 59. S4t0u linkedin.com/in/julian-dev
  60. 60. Juliano Sato linkedin.com/in/julian-dev
  61. 61. Segurança Se correr o hacker pega, E se ficar o hacker...
  62. 62. Pilares da Segurança da Informação
  63. 63. Confidencialidade Integridade Disponibilidade Autenticidade Legalidade
  64. 64. Distributed Denial-of-Service
  65. 65. Microservices, Grandes DDoS. Como conter?
  66. 66. Token Bucket Algorithm!
  67. 67. REST Security Cheat Sheet
  68. 68. OWASP REST Sec Cheat Sheet HTTPS JWT Access control decisions Integrity of the JWT: cryptographic signature or message authentication code (MAC)
  69. 69. OWASP REST Sec Cheat Sheet Restrict HTTP methods Input validation Management endpoints
  70. 70. OWASP REST Sec Cheat Sheet Error handling Security headers HTTP Strict Transport Security (HSTS) X-Content-Type-Options ... Sensitive information in HTTP requests
  71. 71. Centro Av. Presidente Wilson, 231 - 29º andar (21) 2240-2030 Cidade Monções Av. Nações Unidas, 11.541 - 3º andar (11) 4119-0449 Savassi Av. Getúlio Vargas, 671 Sala 800 - 8º andar (31) 3360-8900 www.concrete.com.b r Centro Av. Presidente Wilson, 231 - 29º andar (21) 2240-2030 Cidade Monções Av. Nações Unidas, 11.541 - 3º andar (11) 4119-0449 Savassi Av. Getúlio Vargas, 671 Sala 800 - 8º andar (31) 3360-8900 www.concrete.com.b r

×