Service
Mesh com
Istio e
Kubernetes
Intercon 2018
Wellington F. Silva
contato:
@_wsilva
nicks:
wsilva, boina, tom, fisi
funções:
pai, tec. telecom,
programador, sysadmin,
docker community leader,
instrutor, escritor, zend
certified engineer e docker
certified associate
Agenda
• Monólito vs Micro-serviços
• Service Mesh
• Docker
• Kubernetes
• Istio
Monólito vs 

Micro-serviços
Monólito (the good)
• http://martinfowler.com/bliki/
MonolithFirst.html
Monólito (the good)
• http://martinfowler.com/bliki/
MonolithFirst.html
• Começa rápido
Monólito (the good)
• http://martinfowler.com/bliki/
MonolithFirst.html
• Começa rápido
• Baixa complexidade entre
desenvolvimento e a entrega
Monólito (the good)
• http://martinfowler.com/bliki/
MonolithFirst.html
• Começa rápido
• Baixa complexidade entre
desenvolvimento e a entrega
• Baixo custo inicial (1 máquina para todos
serviços assim como ambiente de
desenvolvimento)
Monólito (the bad)
• Aumento do sistema, mais pessoas para
mantê-lo (leva a divisão natural de equipes)
Monólito (the bad)
• Aumento do sistema, mais pessoas para
mantê-lo (leva a divisão natural de equipes)
• The Mythical Man-Month (Frederick Brooks):
"Adding manpower to a late software project
makes it later”
Monólito (the bad)
• Aumento do sistema, mais pessoas para
mantê-lo (leva a divisão natural de equipes)
• The Mythical Man-Month (Frederick Brooks):
"Adding manpower to a late software project
makes it later”
• Deploy para uma pequena feature pode
quebrar o sistema inteiro
–Wikipedia
“Microservice is a software development
technique, a variant of the service-
oriented architecture (SOA) architectural
style that structures an application as a
collection of loosely coupled services.”
–Tradução livre
“Micro-serviço é uma técnica de
desenvolvimento de software, uma
variação do service-oriented
architecture (SOA) estilo arquitetural
que estrutura uma aplicação como uma
coleção de serviços de baixo
acoplamento.”
Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
• Uma esteira de entrega para cada serviço
Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
• Uma esteira de entrega para cada serviço
• Baixo acoplamento
Micro-serviços (the good)
• "A regra de ouro: Você consegue alterar e
publicar um serviço por si só sem alterar nada
mais?" Sam Newman
• Uma esteira de entrega para cada serviço
• Baixo acoplamento
• Independência e autonomia
Micro-serviços (the bad)
• Debug, IDEs vão no nível do serviço
Micro-serviços (the bad)
• Debug, IDEs vão no nível do serviço
• Complexidade de trabalhar sempre pensando
no distribuído
Micro-serviços (the bad)
• Debug, IDEs vão no nível do serviço
• Complexidade de trabalhar sempre pensando
no distribuído
• Alta dependência de rede
Micro-serviços (the bad)
• Debug, IDEs vão no nível do serviço
• Complexidade de trabalhar sempre pensando
no distribuído
• Alta dependência de rede
• Difícil controle de rotas e dependência entre
serviços
Micro-serviços
Ferramentas Netflix OSS
• Netflix hystrix(circuit breaking / bulk heading)
• Netflix Zuul (edge router)
• Netflix Ribbon (client site service discovery /
load balancer)
• Netflix Eureka (service discovery registry)
• Netflix spectator / atlas (metrics)
Micro-serviços
Problemas
• Necessário mudança nas aplicações
• Tempo para construir as integrações com as
libs
• Limita as ferramentas que podem ser utilizadas
na sua aplicação
• Difícil manter compatibilidade
Service Mesh
–Nginx
“A service mesh is a configurable
infrastructure layer for a microservices
application. It makes communication
between service instances flexible,
reliable, and fast”
Tradução Livre
“Service mesh é uma camada de
infraestrutura para aplicações de micro-
serviços. Ela torna a comunicação entre
instâncias de serviços flexível, confiável,
e rápida”
Service Mesh
Como resolver esses
problemas?
Docker
“Ferramenta para
virtualização no nível do
Sistema Operacional.”
–Wellington F. Silva
“Ferramenta para
virtualização no nível do
Sistema Operacional.”
Docker
• Não é VM, é processo
Docker
• Não é VM, é processo
• Desacopla a aplicação da máquina
Docker
• Não é VM, é processo
• Desacopla a aplicação da máquina
• Empacota as dependências da aplicação
Docker
• Não é VM, é processo
• Desacopla a aplicação da máquina
• Empacota as dependências da aplicação
• Tempo de boot muito rápido
Demo
Kubernetes
Ferramenta para
orquestração de
contêineres
Ferramenta para
orquestração de
contêineres processos
Kubernetes
• Automatiza implantações / atualizações de
aplicações
Kubernetes
• Automatiza implantações / atualizações de
aplicações
• Orquestra containers em múltiplas máquinas
Kubernetes
• Automatiza implantações / atualizações de
aplicações
• Orquestra containers em múltiplas máquinas
• Otimiza custos de infraestrutura
Kubernetes
• Automatiza implantações / atualizações de
aplicações
• Orquestra containers em múltiplas máquinas
• Otimiza custos de infraestrutura
• Entrega self healing, high availability e auto
scale para suas aplicações.
Demo
Istio
Istio
• Load balancing para HTTP, gRPC, WebSocket,
e TCP
Istio
• Load balancing para HTTP, gRPC, WebSocket,
e TCP
• Controle fino de rotas, retries, failover, injeção
de falhas
Istio
• Load balancing para HTTP, gRPC, WebSocket,
e TCP
• Controle fino de rotas, retries, failover, injeção
de falhas
• API de configuração que suporta controles de
acesso, limites de request e quotas
Istio
• Load balancing para HTTP, gRPC, WebSocket,
e TCP
• Controle fino de rotas, retries, failover, injeção
de falhas
• API de configuração que suporta controles de
acesso, limites de request e quotas
• Métricas, logs e traces para todo tráfego dentro
do cluster, incluindo ingress e egress
Istio
Resumindo
• Descoberta de serviços
• Load Balancing
• Controle de tráfego avançado
• Segurança
• Métricas
• Rastreamento
Sidecar Proxy

(pattern utilizado no Istio)
Sidecar Proxy
Componentes
Control Plane
Mixer
Pilot
Envoy
Citadel
Demo
Valeu

=)
Slides em

https://speakerdeck.com/wsilva/ *

Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva