A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 ·...
Transcript of A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 ·...
![Page 1: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/1.jpg)
Globalcode – Open4education
A experiência de decompor monolitos com API management, Kubernetes e Istio Service Mesh
Robisson Oliveira
![Page 2: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/2.jpg)
Globalcode – Open4education
Quem sou eu…
Robisson OliveiraCTO - Incoders Tecnologia
Contato
www.medium.com/@robissonwww.linkedin.com/in/robisson
www.incoders.com.br
![Page 3: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/3.jpg)
Globalcode – Open4education
Objetivo
Compartilhar como decidimos decompor uma aplicação monolítica de 10 anos em micro-
serviços para dar mais agilidade ao negócio.
![Page 4: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/4.jpg)
Globalcode – Open4education
Agenda
O problema que tínhamos para resolver
A nossa abordagem para solucionar esse
problema
![Page 5: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/5.jpg)
Globalcode – Open4education
Até março 2019…
Uma aplicação de 10 anos monolítica
Utilizando Domain Driven Design a 2 anos
Escrevendo testes unitários/IntegraçãoContainers em dev/teste/produção
Utilizando CI/CD com múltiplos deploys ao dia
![Page 6: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/6.jpg)
Globalcode – Open4education
Começamos a ter alguns problemas…
Mais conflitos de código em consequência de um time em crescimento
Com mais e mais testes, os builds passam a levar mais tempo
Atualizar a plataforma se torna impossível, porque o código mais antigo não é compatível
Testar novas tecnologias ou implementações
![Page 7: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/7.jpg)
Globalcode – Open4education
E dois direcionamentos estratégicos…
Uma estratégia de marketplace Transformar alguns produtos em white label
seudominio.com
Sua marca
Nossa tecnologia
![Page 8: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/8.jpg)
Globalcode – Open4education
E definimos algumas premissas…
Estabelecer uma arquitetura que permitisse migrar para a nuvem até 2023.
Separar o código que realmente estava trancando a arquitetura de evoluir.
Escolher uma plataforma de Apis para facilitar a publicação, distribuição e documentação a terceiros.
![Page 9: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/9.jpg)
Globalcode – Open4education
O que fizemos na prática…
![Page 10: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/10.jpg)
Globalcode – Open4education
Garantimos que o aplicação poderia escalar horizontalmente…
Centralizamos o gerenciamento de estadoCentralizamos os logsPassamos a utilizar semantic version
![Page 11: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/11.jpg)
Globalcode – Open4education
Do Docker Swarm para o Kubernetes…
![Page 12: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/12.jpg)
Globalcode – Open4education
Do Docker Swarm para o Kubernetes…
![Page 13: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/13.jpg)
Globalcode – Open4education
Do Docker Swarm para o Kubernetes…
IngressBalanceador de carga com roteamento baseado em nomes
ServicesExpões os PODs para dentro e fora do cluster
SecretsFornecem parâmetros de configuração das aplicações como variáveis de ambiente
Fluxo de requisições
![Page 14: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/14.jpg)
Globalcode – Open4education
Reforçando o Kubernetes com Istio Service Mesh…
Reduz a complexidade de gerenciar micro- serviços.
Controle de tráfegoSegurançaPolíticasObservabilidade
O termo service mesh é usado para descrever uma rede de micro-serviços que compõem uma aplicação e as interações entre eles.
![Page 15: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/15.jpg)
Globalcode – Open4education
Reforçando o Kubernetes com Istio Service Mesh…
Fluxo de requisiçõesFluxo de requisições
![Page 16: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/16.jpg)
Globalcode – Open4education
Reforçando o Kubernetes com Istio Service Mesh…
Trabalha como um service proxy, utilizando um padrão chamado Sidecar container
Intercepta todo o tráfego de entrada e saída do POD
Como o Istio opera:
![Page 17: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/17.jpg)
Globalcode – Open4education
Reforçando o Kubernetes com Istio Service Mesh…
Antes de Istio + Kubernetes Com Istio + Kubernetes
![Page 18: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/18.jpg)
Globalcode – Open4education
Observabilidade no Istio… KIALI
![Page 19: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/19.jpg)
Globalcode – Open4education
Observabilidade no Istio… JAEGER
![Page 20: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/20.jpg)
Globalcode – Open4education
Observabilidade no Istio… ZIPKIN
![Page 21: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/21.jpg)
Globalcode – Open4education
Observabilidade no Istio… Grafana + Prometheus
![Page 22: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/22.jpg)
Globalcode – Open4education
Problemas resolvidos até aqui…
Estabelecer uma arquitetura que permitisse migrar para a nuvem até 2023.
Separar o código que realmente estava trancando a arquitetura de evoluir.
Escolher uma plataforma de Apis para facilitar a publicação, distribuição e documentação a terceiros.
![Page 23: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/23.jpg)
Globalcode – Open4education
Organizando os serviços em Apis públicas para o marketplace…
API publisher
Developer portal
Key Manager
API Analytics
Trafic management
Identity Server
![Page 24: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/24.jpg)
Globalcode – Open4education
Registrando uma API no API Manager
![Page 25: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/25.jpg)
Globalcode – Open4education
Disponibilizando publicamente
![Page 26: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/26.jpg)
Globalcode – Open4education
Disponibilizando publicamente
![Page 27: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/27.jpg)
Globalcode – Open4education
Visualizando métricas das APIs
![Page 28: A experiência de decompor monolitos com API management, Kubernetes … · 2019-11-27 · Globalcode – Open4education A experiência de decompor monolitos com API management, Kubernetes](https://reader034.fdocuments.net/reader034/viewer/2022042310/5ed8a23c6714ca7f476849a9/html5/thumbnails/28.jpg)