Software">
Aula 9 - Arquitetura de Microsserviços
Aula 9 - Arquitetura de Microsserviços
Aula 9 - Arquitetura de Microsserviços
Arquitetura de
Microserviços
Bernhard Ferraz
Bernhard.ferraz@ifg.edu.br
Agenda
1. Introdução
2. Histórico dos Microserviços
3. Pré Requisitos não Técnicos
4. Pré Requisitos de Arquitetura
5. Desenho de API – Swagger
6. Referências
7. Dúvidas
3
Arquitetura de Microserviços
Monolítico Microserviço
4
Arquitetura de Microserviços
5
Arquitetura de Microserviços
6
Arquiteturas Existentes tem suas Limitações
7
Caraterística de uma Aplicação de N Camadas
Sistema Operacional
8
O que são Microserviços
Um banco de dados para a aplicação inteira Cada Microserviço possui seu próprio banco de dados
Organizado em torno das camadas de Tecnologia Organizado em torno das “Business Capabilities”
Desenvolvedores não fazem suporte a “operação” Desenvolvedores também suportam a “operação”
Uma Tecnologia para toda a aplicação Escolha de uma Tecnologia para cada Microserviço
9
Microserviços são Desenvolvidos / Implantados
Independentemente
Aplicação N Camadas Microserviços
API API
API API
Banco de Dados
Applicação Applicação
Banco de Dados Banco de Dados
Infraestrutura Infraestrura Infraestrura
Microseriço Microserviço
Perfil Catálogo de Produtos
11
Casos de Usos para adoção de Microserviços
12
As vezes Aplicações Monolíticas ainda são uma boa
Abordagem
Microserviços adiciona complexidade
• Para aplicações menos complexas, monólitos são
sempre melhores, tanto no curto quanto a longo Complex. ao Longo do Tempo
prazo
• Para aplicações moderadamente complexas,
Complexidade
monólitos ainda são provavelmente melhor, tanto
no curto quanto a longo prazo
• Para aplicações complexas, Microserviços
podem-se pagar ao longo do tempo, mas levam-
se muito tempo para compensar o maior
investimento inicial necessário para implementá-lo
Tempo
13
Qual o tamanho de um Microserviço?
Pode ter centenas de Microserviços para uma Aplicação grande
Evitar
Interdependências Pequeno 1-3 Pessoas
Exemplo: Microserviço Status de Pedido
Foco na “Business
Capabilities”
14
2. História dos Microserviços
Os Princípios de Microserviços tem estado conosco
por Décadas
Foco na
Baixo Fazer algo e fazê-lo “Business
Reduz a Acoplamento bem feito Capabilities” e
Complexidade não nas
através da Camadas de
Modularização Tecnologias
Módulo Microserviços
In process Out-of-process
17
SOA vs. Microserviços
SOA é uma idéia geral, onde Microserviços são uma maneira
muito específica de implementá-los
Diferenças de Implementação
Favorece a Orquestração Centralizada
SOAP + HTTP
Microserviços
Favorece a Coreografia Distribuída
REST + HTTP/S = simples
18
SOA vs. Microserviços - Equívocos
“Microserviços eliminam a
necessidade de Enterprise Não confuda Produto com o Padrão
Service Bus”
Utilize ambos
“Devemos escolher
Microserviços ou SOA”
19
Princípios de Microserviços são Antigos. A Implementação é Nova
Microserviços não é apenas um novo nome para SOA
20
3. Pré Requisitos não Técnico
21
Lei Conway
Head of IT
Interface do Usuário
Um Enorme Monólíto
September 27, 2019 23
Reestruture sua Organização
Construir pequenas equipes com foco em Produtos
25
Microserviços Força Mudança para Computação Distribuída
Introduz enorme complexidade – monólitos não sofre disto
27
Microserviços Força Coreografia ao invés de
Orquestração
Orquestração Coreografia
• Usado em aplicações • Usado em aplicações de
centralizadas, monolíticas Microserviços distribuídos
• Frágil – centralizado por • Resiliente – distribuído por
natureza natureza
• Cada “ação” interage com o • Cada Microserviço
sistema centralizado – ponto assincronamente lança uma
único de falha que não é muito messagem que outro
flexível Microserviço pode consumir
28
Circuit Breakers para prevenção de falhas em cascatas
Falhas em cascata são muito comum com Microserviços
29
Arquitetura de Microserviços
30