SlideShare uma empresa Scribd logo
1 de 40
Sistemas Distribuídos Utilizando
Microserviços e AWS
Jonas Silveira – jonas@silveira.eti.br
AWS Campinas
08/07/2017
Agenda
• Cloud
• Sistema monolítico
• Microserviços
• Sistemas distribuídos
• Refatoração
O autor
Jonas Silveira
jonas@silveira.eti.br
https://www.linkedin.com/in/jonassilveira
Por que Nuvem?
Con. 1
Con. 2
Datacenter Datacenter 2
Abordagem Monolítica
Sistema
Banco de dados
Controle
Usuários
Contas a
Pagar
Contas a
Receber
Emissão e
Guarda da NFe
Cadastro
Produtos
Cadastro
Fornecedores
Relatórios
Envio de
e-mail
Abordagem Monolítica
Prós
• Performático
• Fácil gerenciar
Contras
• Preso a uma tecnologia
• Alta curva de
aprendizado
• Pouco reaproveitamento
• Muitos programadores
“batem cabeça”
• Falha em um
componente
compromete o todo
• Dificuldades em escalar
tudo: aplicação, equipe,
base de dados, etc.
• Difícil escalar.
Por que não fatiar o grande
sistema em sistemas
menores?
A internet é
um grande
sistema
distribuído
Definição
Microserviços são serviços pequenos,
autônomos, que trabalham juntos.
Abordagem Microserviços
Controle
Usuários
Contas a
Pagar
Contas a
Receber
Emissão e
Guarda da NFe
Cadastro
Produtos
Cadastro
Fornecedores
Relatórios
Envio de
e-mail
Tamanho
Tempo para ser reescrito: duas semanas.
(Jon Eaves / RealEstate.com.au – Australia)
Equipes grandes o
suficiente para serem
alimentadas por duas pizzas
grandes.
Pontos importantes
• Serviços autônomos que trabalham juntos.
• Princípio da responsabilidade única.
• Comunicação através de chamadas de rede, para
evitar forte acoplamento.
• Mudar um serviço e deployar sem mudar mais nada.
• KISS – keep it short and simple.
• DRY – Don’t repeat yourself não é um problema
Benefícios
• Agnóstico à tecnologia (heterogeneidade).
• Resiliência - Problema não falha em cascada –
isolamento.
• Escalabilidade – não precisa escalar tudo.
• Facilidade de deploy (monolito é tudo), risco reduzido.
• Gestão dos times.
• Reaproveitamento / Diferentes composições.
• Fácil substituição.
• Usar outros datacenteres.
Deve-se definir padrões
• Monitoramento.
• Tipo de interface (HTTP/REST).
• Padrões de arquitetura (response codes 4xx, 5xx).
• Segurança.
Exemplo de Arquitetura
Exemplo de Arquitetura
Amazon
EC2
Frontend
Classic Load
Balancer
Auto Scaling
Amazon
S3
Amazon API
Gateway*
Amazon
EC2
Auto Scaling
Lambda
function
Amazon
RDS
Backend
Amazon
DynamoDB
Amazon
CloudWatch
Amazon
SNS
Internal Load
Balancer
Amazon S3
bucket
API Gateway
API Gateway
• Facilita o gerenciamento do ciclo de vida das APIs.
• Pode ser usado com endpoint Lambda.
• Monitoramento via CloudWatch.
• Autorização AWS.
• Permite definir controles de threshold.
• Permite criar uma camada de cache integrada
(cache de até 1 hora).
• Permite realizar modificações nas requisições e
respostas.
Amazon API
Gateway*
Acoplamento
Sistema Monolítico
Controle
Usuários
Contas a
Pagar
Contas a
Receber
Emissão e
Guarda da NFe
Cadastro
Produtos
Cadastro
Fornecedores
Relatórios
Envio de
e-mail
Emissão e
Guarda da NFe
Envio de
e-mail
Contas a
Receber
Forma como os diferentes componentes do sistema interagem.
Acoplamento
• Quanto mais forte o acoplamento, pior.
• Se um componente falha, o processo quebra.
• Módulos do sistema (ou Microserviços) devem
conversar entre si através da troca de mensagens.
• Desacoplamento favorece autonomia e
escalabilidade.
Filas
• Formas seguras de informar outro componente de
que algo aconteceu e/ou precisa ser feito.
• Comunicação “assíncrona”.
• Cada fila pode ter um ou muitos “usuários”,
favorecendo o paralelismo da aplicação.
• Reduz falhas do tipo “curto-circuito”.
• Permite “cadenciar” a execução.
Filas – exemplo 1
1. Sistema emite a NFe
2. Sistema grava um item na fila de envio de e-mails
3. Sistema gera o contas a receber
Worker fica lendo a fila de envio de e-mails para
realizar os disparos sempre que algum item for
lançado lá.
Emissão e
Guarda da NFe
Envio de
e-mail
Contas a
Receber
Worker
SQS
• Pode ser FIFO ou randômica (best-effort).
• Garantia de entrega.
• Permite definir tempo de “invisibilidade” da
mensagem.
• Até 256 Kb de texto por mensagem.
• Mensagens podem ser enviadas e lidas
simultaneamente.
Amazon
SQS
Notificações
• Notificar um ou mais componentes de que algo
aconteceu.
• Comunicação “assíncrona”.
• Modelo publicação / assinatura.
• Pode ser usado para notificar dispositivos móveis.
Notificações - Exemplo
1. Sistema emite a NFe
2. Sistema emite a notificação “NFe emitida”
3. Assinantes da notificação são informados
Emissão e
Guarda da NFe
Envio de
e-mail
Contas a
Receber
Autor principal (Emissão da NFe) não precisa
saber quem são os assinantes da notificação.
SNS
• Tipos de assinatura: Push móvel (dispositivos
Apple, Google e Kindle Fire), HTTP/HTTPS, E-mail/E-
mail-JSON, SMS, SQS, funções do AWS Lambda.
Custos vs. Tipo de Instâncias
Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez
Consumo
Reserved
On
Demand
Spot
Coesão
• Os módulos/componentes do sistema devem ser
coerentes com o seu propósito.
• Um módulo não deve realizar papéis que deveriam
ser exclusivos de outros módulos: ações, consultas,
etc.  deve-se solicitar o dado ou ação ao outro
módulo.
• Se aplica também à camada de persistência de
dados (banco de dados).
Coesão - Exemplo
• Listagem de fornecedores: quem o cadastrou?
Sistema Monolítico
Banco de dados Monolítico
Controle
Usuários
Contas a
Pagar
Contas a
Receber
Emissão e
Guarda da NFe
Cadastro
Produtos
Cadastro
Fornecedores
Relatórios
Envio de
e-mail
Segurança
• Uso o API Gateway para autenticar e os
microserviços para autorizar.
• Não exponha todos os microserviços na web.
• Use um API gateway interno e um externo.
• Use APIs de composição para acessar APIs internas.
• Controle o threshold das requisições.
Monitoramento
• Use o CloudWatch para monitorar as falhas.
• Importante monitorar o tempo de resposta.
Versionamento
• MAJOR.MINOR.PATCH
Major  Mudanças significativas que podem
quebrar a aplicação.
Minor  Mudanças que não quebram a aplicação,
normalmente são melhorias.
Patch  Correções.
Coexistência de Versões
IAM Role
IAM
Role facilita concessão
ae acessos aos recursos
AWS
Use sempre!
Do monolito para microserviços
1. Construa uma estrutura básica: Autenticação, API
Gateway, ferramentas de apoio (logs, etc.),
automação e padrões de API.
2. Unificar mecanismos de autenticação: faça o velho
usar o novo.
3. Identifique os componentes do sistema (aplicação e
banco de dados).
4. Crie os novos microserviços e faça os componentes
antigos do monolito usarem eles
5. Repita o item 4 até o monolito deixar de existir,
restando apenas a interface do usuário.
Strangler
Refatoração - Strangler
Orientação a custo
Data
Science
Transacional
Resumo
• Aplicações distribuídas facilitam escalabilidade e
são mais robustas, porém possui maior
complexidade.
• Arquitetura é fator chave de sucesso.
• Ferramentas na AWS:
• API Gateway
• Cloudwatch
• SNS
• SQS
• IAM
• EC2 / ELB
Dúvidas?

Mais conteúdo relacionado

Semelhante a Sistemas Distribuídos Utilizando Microserviços e AWS

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEMarco Antonio Maciel
 
Módulo 3-Sistema Operativo Servidor - V1.pdf
Módulo 3-Sistema Operativo Servidor - V1.pdfMódulo 3-Sistema Operativo Servidor - V1.pdf
Módulo 3-Sistema Operativo Servidor - V1.pdfFChico2
 
Integração de software solucao e estilo
Integração de software   solucao e estiloIntegração de software   solucao e estilo
Integração de software solucao e estiloGrupoAlves - professor
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
 
Microservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendMicroservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendRenato Groff
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
Escalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonEscalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonGuilherme Vierno
 
TDC2018FLN | Trilha Python - Microservices em Python: desafios e soluções
TDC2018FLN | Trilha Python - Microservices em Python: desafios e soluçõesTDC2018FLN | Trilha Python - Microservices em Python: desafios e soluções
TDC2018FLN | Trilha Python - Microservices em Python: desafios e soluçõestdc-globalcode
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Renato Groff
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Introdução a Service Mesh com Istio
Introdução a Service Mesh com IstioIntrodução a Service Mesh com Istio
Introdução a Service Mesh com IstioJonh Wendell
 

Semelhante a Sistemas Distribuídos Utilizando Microserviços e AWS (20)

Microservices
MicroservicesMicroservices
Microservices
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
World Wide Web
World Wide WebWorld Wide Web
World Wide Web
 
VIII TechTalk - Spring 3
VIII TechTalk - Spring 3VIII TechTalk - Spring 3
VIII TechTalk - Spring 3
 
Módulo 3-Sistema Operativo Servidor - V1.pdf
Módulo 3-Sistema Operativo Servidor - V1.pdfMódulo 3-Sistema Operativo Servidor - V1.pdf
Módulo 3-Sistema Operativo Servidor - V1.pdf
 
Integração de software solucao e estilo
Integração de software   solucao e estiloIntegração de software   solucao e estilo
Integração de software solucao e estilo
 
Integração de software 2
Integração de software 2Integração de software 2
Integração de software 2
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Microservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev WeekendMicroservices - Canal .NET Dev Weekend
Microservices - Canal .NET Dev Weekend
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Escalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonEscalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em Python
 
TDC2018FLN | Trilha Python - Microservices em Python: desafios e soluções
TDC2018FLN | Trilha Python - Microservices em Python: desafios e soluçõesTDC2018FLN | Trilha Python - Microservices em Python: desafios e soluções
TDC2018FLN | Trilha Python - Microservices em Python: desafios e soluções
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015Microservices - ALM Roadshow 2015
Microservices - ALM Roadshow 2015
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Monolith - An epic journey
Monolith - An epic journeyMonolith - An epic journey
Monolith - An epic journey
 
Introdução a Service Mesh com Istio
Introdução a Service Mesh com IstioIntrodução a Service Mesh com Istio
Introdução a Service Mesh com Istio
 

Sistemas Distribuídos Utilizando Microserviços e AWS

  • 1. Sistemas Distribuídos Utilizando Microserviços e AWS Jonas Silveira – jonas@silveira.eti.br AWS Campinas 08/07/2017
  • 2. Agenda • Cloud • Sistema monolítico • Microserviços • Sistemas distribuídos • Refatoração
  • 4.
  • 5. Por que Nuvem? Con. 1 Con. 2 Datacenter Datacenter 2
  • 6. Abordagem Monolítica Sistema Banco de dados Controle Usuários Contas a Pagar Contas a Receber Emissão e Guarda da NFe Cadastro Produtos Cadastro Fornecedores Relatórios Envio de e-mail
  • 7. Abordagem Monolítica Prós • Performático • Fácil gerenciar Contras • Preso a uma tecnologia • Alta curva de aprendizado • Pouco reaproveitamento • Muitos programadores “batem cabeça” • Falha em um componente compromete o todo • Dificuldades em escalar tudo: aplicação, equipe, base de dados, etc. • Difícil escalar.
  • 8. Por que não fatiar o grande sistema em sistemas menores?
  • 9. A internet é um grande sistema distribuído
  • 10. Definição Microserviços são serviços pequenos, autônomos, que trabalham juntos.
  • 11. Abordagem Microserviços Controle Usuários Contas a Pagar Contas a Receber Emissão e Guarda da NFe Cadastro Produtos Cadastro Fornecedores Relatórios Envio de e-mail
  • 12. Tamanho Tempo para ser reescrito: duas semanas. (Jon Eaves / RealEstate.com.au – Australia) Equipes grandes o suficiente para serem alimentadas por duas pizzas grandes.
  • 13. Pontos importantes • Serviços autônomos que trabalham juntos. • Princípio da responsabilidade única. • Comunicação através de chamadas de rede, para evitar forte acoplamento. • Mudar um serviço e deployar sem mudar mais nada. • KISS – keep it short and simple. • DRY – Don’t repeat yourself não é um problema
  • 14. Benefícios • Agnóstico à tecnologia (heterogeneidade). • Resiliência - Problema não falha em cascada – isolamento. • Escalabilidade – não precisa escalar tudo. • Facilidade de deploy (monolito é tudo), risco reduzido. • Gestão dos times. • Reaproveitamento / Diferentes composições. • Fácil substituição. • Usar outros datacenteres.
  • 15. Deve-se definir padrões • Monitoramento. • Tipo de interface (HTTP/REST). • Padrões de arquitetura (response codes 4xx, 5xx). • Segurança.
  • 17. Exemplo de Arquitetura Amazon EC2 Frontend Classic Load Balancer Auto Scaling Amazon S3 Amazon API Gateway* Amazon EC2 Auto Scaling Lambda function Amazon RDS Backend Amazon DynamoDB Amazon CloudWatch Amazon SNS Internal Load Balancer Amazon S3 bucket
  • 19. API Gateway • Facilita o gerenciamento do ciclo de vida das APIs. • Pode ser usado com endpoint Lambda. • Monitoramento via CloudWatch. • Autorização AWS. • Permite definir controles de threshold. • Permite criar uma camada de cache integrada (cache de até 1 hora). • Permite realizar modificações nas requisições e respostas. Amazon API Gateway*
  • 20. Acoplamento Sistema Monolítico Controle Usuários Contas a Pagar Contas a Receber Emissão e Guarda da NFe Cadastro Produtos Cadastro Fornecedores Relatórios Envio de e-mail Emissão e Guarda da NFe Envio de e-mail Contas a Receber Forma como os diferentes componentes do sistema interagem.
  • 21. Acoplamento • Quanto mais forte o acoplamento, pior. • Se um componente falha, o processo quebra. • Módulos do sistema (ou Microserviços) devem conversar entre si através da troca de mensagens. • Desacoplamento favorece autonomia e escalabilidade.
  • 22. Filas • Formas seguras de informar outro componente de que algo aconteceu e/ou precisa ser feito. • Comunicação “assíncrona”. • Cada fila pode ter um ou muitos “usuários”, favorecendo o paralelismo da aplicação. • Reduz falhas do tipo “curto-circuito”. • Permite “cadenciar” a execução.
  • 23. Filas – exemplo 1 1. Sistema emite a NFe 2. Sistema grava um item na fila de envio de e-mails 3. Sistema gera o contas a receber Worker fica lendo a fila de envio de e-mails para realizar os disparos sempre que algum item for lançado lá. Emissão e Guarda da NFe Envio de e-mail Contas a Receber Worker
  • 24. SQS • Pode ser FIFO ou randômica (best-effort). • Garantia de entrega. • Permite definir tempo de “invisibilidade” da mensagem. • Até 256 Kb de texto por mensagem. • Mensagens podem ser enviadas e lidas simultaneamente. Amazon SQS
  • 25. Notificações • Notificar um ou mais componentes de que algo aconteceu. • Comunicação “assíncrona”. • Modelo publicação / assinatura. • Pode ser usado para notificar dispositivos móveis.
  • 26. Notificações - Exemplo 1. Sistema emite a NFe 2. Sistema emite a notificação “NFe emitida” 3. Assinantes da notificação são informados Emissão e Guarda da NFe Envio de e-mail Contas a Receber Autor principal (Emissão da NFe) não precisa saber quem são os assinantes da notificação.
  • 27. SNS • Tipos de assinatura: Push móvel (dispositivos Apple, Google e Kindle Fire), HTTP/HTTPS, E-mail/E- mail-JSON, SMS, SQS, funções do AWS Lambda.
  • 28. Custos vs. Tipo de Instâncias Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez Consumo Reserved On Demand Spot
  • 29. Coesão • Os módulos/componentes do sistema devem ser coerentes com o seu propósito. • Um módulo não deve realizar papéis que deveriam ser exclusivos de outros módulos: ações, consultas, etc.  deve-se solicitar o dado ou ação ao outro módulo. • Se aplica também à camada de persistência de dados (banco de dados).
  • 30. Coesão - Exemplo • Listagem de fornecedores: quem o cadastrou? Sistema Monolítico Banco de dados Monolítico Controle Usuários Contas a Pagar Contas a Receber Emissão e Guarda da NFe Cadastro Produtos Cadastro Fornecedores Relatórios Envio de e-mail
  • 31. Segurança • Uso o API Gateway para autenticar e os microserviços para autorizar. • Não exponha todos os microserviços na web. • Use um API gateway interno e um externo. • Use APIs de composição para acessar APIs internas. • Controle o threshold das requisições.
  • 32. Monitoramento • Use o CloudWatch para monitorar as falhas. • Importante monitorar o tempo de resposta.
  • 33. Versionamento • MAJOR.MINOR.PATCH Major  Mudanças significativas que podem quebrar a aplicação. Minor  Mudanças que não quebram a aplicação, normalmente são melhorias. Patch  Correções.
  • 35. IAM Role IAM Role facilita concessão ae acessos aos recursos AWS Use sempre!
  • 36. Do monolito para microserviços 1. Construa uma estrutura básica: Autenticação, API Gateway, ferramentas de apoio (logs, etc.), automação e padrões de API. 2. Unificar mecanismos de autenticação: faça o velho usar o novo. 3. Identifique os componentes do sistema (aplicação e banco de dados). 4. Crie os novos microserviços e faça os componentes antigos do monolito usarem eles 5. Repita o item 4 até o monolito deixar de existir, restando apenas a interface do usuário. Strangler
  • 39. Resumo • Aplicações distribuídas facilitam escalabilidade e são mais robustas, porém possui maior complexidade. • Arquitetura é fator chave de sucesso. • Ferramentas na AWS: • API Gateway • Cloudwatch • SNS • SQS • IAM • EC2 / ELB

Notas do Editor

  1. Apresentação Jonas
  2. Por que a nuvem facilitou as coisas e viabilizou muitas outras pela redução da complexidade. Custos Complexidade Coisas Prontas Diferenças Azure / Google Cloud / AWS Problemas para os vendors de hardware Facilidade de gerenciamento/orquestração e capacidade computacional favorecem estruturas mais complexas
  3. O que nos impede de transformar um sistema em vários? Usar várias tecnologias? Sistema monolítico: um grande problema Coisas entrelaçadas tornam curva de aprendizado dura, pouco reaproveitamento Preso a uma tecnologia Muitos programadores “batem cabeça” Falha em um componente compromete o todo Dificuldades em escalar tudo: aplicação, equipe, base
  4. A internet é um grande sistema distribuído
  5. O que nos impede de transformar um sistema em vários? Usar várias tecnologias? Arquitetura abre um mundo de possibilidades
  6. Monitoramento pode ser direcionado à pessoa certa
  7. Front pode ser uma aplicação mobile, portal, outro sistema, etc. Colocar API em outro local físico Adquirir um sistema externo
  8. Assíncrono vs. Síncrono Falhas “curto circuito” Garantia de execução ou não Troca de mensagens / exemplos de quebra
  9. Como usar filas (SQS): Envia mensagem pra fila Alguém consome Auto-scale para trabalhar essa fila / instâncias SPOT Monitoramento das filas usando CloudWatch Dead letter queue
  10. Outro uso: não deixar o usuário esperando
  11. Notificações: Assinantes: filas, lambda
  12. Coerência com o propósito Eric Evans’s DDD Coesão do Banco de dados
  13. Gateway Interno Serviços a expor Controle de threshold Autorização microserviço / Autenticação gateway SSO gateway Cuidado com o que fixa exposto
  14. RLK
  15. Quem são seus usuários? Não quebre a aplicação Versionamento semântico: MAJOR.MINOR.PATCH Uma CI por microserviço
  16. Strangler – rotear chamdas par nova estrutura ; Big Bang 1) Estrutura “core” Automatizar tudo o que der (orquestração) / definições de padrões da API / segurança / monitoramento 2) Unificar mecanismo de autenticação 3) Identificar os componentes do sistema (aplicação e banco) 4) Criar seu primeiro microserviço: legado passa a utilizá-lo 5) Começe a esvaziar o monolito
  17. Chaves estrangeiras