Slide 1

Slide 1 text

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

Slide 48

Slide 48 text

Microsserviços https://www.nginx.com/blog/building-microservices-using-an-api-gateway/

Slide 49

Slide 49 text

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

Slide 58

Slide 58 text

OBRIGADO! fernando.poa.br https://speakerdeck.com/fernandodebrando Perguntas?

Slide 59

Slide 59 text

Segurança e hacking de containers Docker 12/07 às 11 hs - Sala 3 Fernando Silva @FernandoDebrand