Fernando Silva
@FernandoDebrand
Microsserviços:
Distribuindo serviços
críticos ao negócio
Slide 2
Slide 2 text
Sobre mim!
Fernando Silva
Analista de Desenvolvimento
Slide 3
Slide 3 text
“Mas, o que são
microsserviços?”
Slide 4
Slide 4 text
Serviços pequenos!
Slide 5
Slide 5 text
O que é então?
“O termo “arquitetura de Microsserviços” surgiu nos
últimos anos para descrever uma maneira particular de
projetar aplicativos de software como conjunto de
serviços implantáveis independentemente. Embora
não exista uma definição precisa ainda…”
https://martinfowler.com/articles/microservices.html
Martin Fowler
Slide 6
Slide 6 text
Componentização via
serviços
Descentralização
Distribuído
Escalável
Resiliente
Slide 7
Slide 7 text
Porque usar Microsserviços?
A separação de responsabilidades em
serviços independentes, facilita a
manutenção, criação de novas features e
deploys constantes das aplicações.
Slide 8
Slide 8 text
“Quem está usando
microsserviços?”
Slide 9
Slide 9 text
Empresas que já usam microsserviços
Slide 10
Slide 10 text
Exemplo de arquitetura de Microsserviços
Slide 11
Slide 11 text
Exemplo de arquitetura de Microsserviços
Slide 12
Slide 12 text
Enfim o novo cart
Slide 13
Slide 13 text
Objetivo
Simplificação no processo de compra, visando o aumento
da taxa de conversão (TC) e permitindo o
reaproveitamento em projetos já existentes e futuros na
KingHost.
Slide 14
Slide 14 text
Objetivo do ponto de vista da equipe de negócio
Simplificação no processo de compra, visando o aumento da taxa
de conversão (TC) e permitindo o reaproveitamento em projetos já
existentes e futuros na KingHost.
Slide 15
Slide 15 text
Objetivo do ponto de vista da equipe de DEV
Simplificação no processo de compra, visando o aumento da taxa de
conversão (TC) e permitindo o reaproveitamento em
projetos já existentes e futuros na KingHost.
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
Tempo médio: 6 m
Taxa de conversão: 1,3%
Consequências
Vendas perdidas: 75%
Slide 20
Slide 20 text
Objetivos para o novo carrinho
Simplificação do processo de compra
Diminuição do tempo de compra
Aumento da taxa de conversão acima de 1,67%
Aumento de receita
Canais de venda padronizados
Slide 21
Slide 21 text
Objetivos técnicos
Ponto único de compra
Portabilidade baseada em microsserviços
Separação de responsabilidades
Diminuir custos
Slide 22
Slide 22 text
Objetivos técnicos
Facilidade no processo de deploy
Entregas menores e mais rápidas
Incremento na abrangência dos testes
Slide 23
Slide 23 text
Objetivos alinhados
Expectativas definidas
E na prática?
Assim temos o...
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
Resultados
Tempo médio: 2 m 57 s
Taxa de conversão: 1,93%
Aumento de 44%
Slide 27
Slide 27 text
Como?
Arquitetura orientada a microsserviços
Stateless
Criação de API padrão para clientes internos
Liberdade para criação de PWAs
Slide 28
Slide 28 text
Arquitetura (antes)
Slide 29
Slide 29 text
Processo de Compra (Antigo)
Slide 30
Slide 30 text
Arquitetura (depois)
Slide 31
Slide 31 text
Processo de Compra (Novo)
Slide 32
Slide 32 text
Tecnologias e ferramentas
Como desenvolvemos nossos microsserviços
Slide 33
Slide 33 text
Arquitetura (containers)
Slide 34
Slide 34 text
Arquitetura (WebApps)
Slide 35
Slide 35 text
Arquitetura (APIs)
Slide 36
Slide 36 text
Arquitetura (Queue)
Slide 37
Slide 37 text
Arquitetura (Consumer)
Slide 38
Slide 38 text
Arquitetura (Data Base)
Slide 39
Slide 39 text
Gerenciamento de containers
Slide 40
Slide 40 text
Monitoramento / Logs
Uma arquitetura de microsserviços distribuído
é muito mais difícil de monitorar
Slide 41
Slide 41 text
Arquitetura (Logs)
Slide 42
Slide 42 text
ELK (Elasticsearch, Logstash, Kibana e Beats)
Slide 43
Slide 43 text
Logs em arquivos (Monolog com alertas por email e chat)
Capture Method
Logger (PSR-3)
Handler / Adapter
Slide 44
Slide 44 text
Prometheus, Grafana, AlertManager, NodeExporter e cAdvisor
Slide 45
Slide 45 text
Melhorias
Algumas melhorias que ainda serão
implementadas
Slide 46
Slide 46 text
Melhorias
• API Gateway
• Escalar
• Monitoramento
• Alertas
Slide 47
Slide 47 text
Melhorias
• API Gateway
• Escalar
• Monitoramento
• Alertas
API Gateway
https://www.nginx.com/blog/building-microservices-using-an-api-gateway/
Slide 50
Slide 50 text
Desvantagens de um API Gateway
• Mais um componente a ser desenvolvido
• Risco de se tornar um gargalo de desenvolvimento
Slide 51
Slide 51 text
Benefícios de um API Gateway
• Encapsula a estrutura da aplicação
• Único ponto de entrada
• Pode mascarar falhas, retornando cache ou dados padrão
• Facilitar a transição do monolito para microsserviços
• Segurança
Slide 52
Slide 52 text
Monolito para Microsserviços
Slide 53
Slide 53 text
Ferramentas para escalar
Slide 54
Slide 54 text
Independência entre diversas equipes no mesmo produto
Maturidade na implantação dos serviços
Permitiu a criação de uma API padrão para clientes
A importância dos
microsserviços para nós
Slide 55
Slide 55 text
A importância dos
microsserviços para nós
Padronização do processo de venda
Escalabilidade e resiliência
Responsabilidades bem definidas
Manutenção simplificada
Slide 56
Slide 56 text
Fatores de sucesso
Integração entre as áreas do produto
Comunicação entre todas as equipes de desenvolvimento
Ponto único de compra dos produtos e serviços
Stakeholders envolvidos com a concepção do projeto
Números superaram os objetivos definidos
Entregas de funcionalidades aceleradas
Slide 57
Slide 57 text
Links / Referências
• Microservice Architecture
• Microservices - Martin Fowler
• A Ascensão dos Microsserviços
• The Netflix Tech Blog
• A Monitoring Solution for Docker
• Por que usar abordagem de microsserviços
• Monitorando Aplicações PHP com Prometheus
• Obtendo sucesso na reestruturação de sistemas legados
• Usando API gateway para facilitar a transição do monolito para microsserviços