Escolar Documentos
Profissional Documentos
Cultura Documentos
profandre.sampaio@fiap.com.br
2019
Prof. André Pontes Sampaio
https://www.linkedin.com/in/andre-pontes-sampaio/
Segmento de
Formação Certificações
atuação
SEFAZ-SP:
Mestrado em
Diretor de Service Offering
Engenharia de
Operações e and Agreement
Teleinformática
Infraestrutura
Aulas com
Arquitetura de LABs
explicações e
Contêineres hands-on
muita prática
Fornecimento de
Cluster Swarm
microserviços Dockerfile X
com Prometheus
com alta Docker-compose
& Grafana
disponibilidade
Laboratórios
Custer K8S com
baseado em
HELM & Istio
Docker e
Service Mesh
Kubernetes
Roteiro do Curso
Aula 03 • KUBERNETES
AUTOMAÇÃO
+ AGILIDADE
Gestão de Serviços
ONDE ENTRA A
UTILIZAÇÃO DE
CONTEINERES?
Gestão de Serviços
Gestão de Serviços
Microserviços são
pequenos serviços
autonômos que
funcionam de forma
integrada.
Pesquisa de
produtos
Registro ou
Autenticação de
usuários
Carrinho de
compras eletrônico
Processamento de
pagamento
Utilização em contêineres
Processamento de pagamento
HTTP POST
JSON
http://servidor/api/v1/pagamento/
Utilização em contêineres
Fazendo a solicitação
{ Processamento de pagamento
"Forma": "CartaoCredito",
"Instituicao": "Visa",
"Parcelas": "1",
"CartaoCredito": { PAYLOAD
"Numero": "4073020000000002", REQUEST
"Expiracao": "12/15",
"CodigoSeguranca": "123",
"Portador": {
"Nome": "Nome Sobrenome",
"DataNascimento": "30/12/1987",
}
}
}
Utilização em contêineres
Processamento de pagamento
PAYLOAD
{ RESPONSE
RESPONSE HEADER
"StatusPagamento": "Sucesso",
Request URL: "StatusInterno": "EmAnalise",
http://servidor/api/pagamento “ValorPago": ”37.94",
Request Method: POST "Mensagem": “Pago com sucesso",
Status Code: 201 CREATED "CodigoRetorno": "012345",
X-Requested-With: XMLHttpRequest
}
Utilização em contêineres
Processamento de pagamento
Ação Verbos
Recurso (Endpoint) Descrição
(CRUD) HTTPs
Create POST /api/v1/pagamento/ Criar novo pagamento
GET /api/v1/pagamento/ Listar todos os pagamentos
Read
GET /api/v1/pagamento/:id Informações de um pagamento
PATCH /api/v1/pagamento/:id Atualizar alguns campos de um pagamento
Updade
PUT /api/v1/pagamento/:id Atualizar todos os campos de um pagamento
Delete DELETE /api/v1/pagamento/:id Excluir um pagamento
Utilização em contêineres
VM Contêiner
Lenta inicialização: Rápida inicialização:
Disco compartilhado
Disco pré-alocado para o
através do sistema de
host da VM
arquivos
VMs versus Contêineres
VM Contêiner
Escalabilidade
Suportam o aumento horizontal para distribuir carga para novas
réplicas
bit.ly/fiapshift2019
LAB: 1, pausa para ver na prática
Infraestrutura para Microserviços
Interface do
Usuário
Notícias Anúncios
Ranking
Padrões de Arquitetura
Servidor: envia ao cliente trechos HTML
Interface do
Usuário
Cliente Microserviço
Interface do
Usuário Semelhante a
aplicativos
Funciona
off-line com
cache local
Acessado de
qualquer
dispositivo e Suporta
navegador mensagens
push, HTTPS e
atualização
Infraestrutura para Microserviços
API Externa
Padrões de Arquitetura
API Externa
API Gateway
API Externa
ponto de entrada
independente para tipo
de clientes
Padrões de Arquitetura
Token de acesso: autenticação e segurança
API Externa
Vamos nos Divertir!
5. Idade > 18 ?
Negócios
• Novos serviços
• Agilidade
• Qualidade
TI
• Automação (1)
• Arquitetura escalável (2)
• Flexibilidade (3)
Ponto de atrito
• Outsourcing clássico da TI
https://stackshare.io/container-tools
Legenda:
Utilização de Contêineres
“Conteinerização” Alta disponibilidade
em diversos nodes
Registro de uma
imagem no Hub
Implantação e Execução
distribuição da padronizada dos
imagem aplicativos
Desenvolvimento
em máquina local
Para
dimensionamento
do aplicativo,
Carateristicas: Aplicações não geram-se novos
Facilita as executáveis (e não
possuem dependências
práticas DevOps criar hosts ou VMs)
do sistema
Infraestrutura para Microserviços
Contêineres gerenciados
Padrões de Arquitetura
Contêineres
gerenciados
Padrões de Arquitetura
Contêineres
gerenciados
Padrões de Arquitetura
Dockerfile: arquivo de configuração de uma
imagem
Contêineres
gerenciados
Aplicação é executada da mesma forma
Dockerfile
permite obter arquivos remotos e
descompactá-los
Contêineres
gerenciados Sistema de arquivos somente leitura
Contêineres
gerenciados
Padrões de Arquitetura
Contêineres
Conjunto encapsulado de processos em execução
gerenciados
Contêineres
gerenciados
Padrões de Arquitetura
Contêineres
gerenciados
Padrões de Arquitetura
Contêineres
gerenciados
Utilizados para compartilhar :
• diretório entre vários contêineres
• diretório entre o host e um contêiner
• único arquivo entre o host e um contêiner
Semelhantes às ligações
simbólicas
Contêineres
Os contêineres não podem ter endereços IPv4
gerenciados públicos (utilizam endereços privados)
Contêineres
gerenciados
Padrões de Arquitetura
Redes: configurações de
contêineres em único host
Contêineres
gerenciados
Porta publicada = 80 Porta publicada = 81 N/A Porta publicada
Padrões de Arquitetura
Contêineres
gerenciados
Padrões de Arquitetura
Contêineres
Swarm Mode fornece clustering e balanceamento
gerenciados
Contêineres
gerenciados
Infraestrutura para Microserviços
Automação CI/CD
Padrões de Arquitetura
Automação
CI/CD
Padrões de Arquitetura
Variáveis de ambiente no docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
LAB: 2
Gerenciamento Ágil
Integração
entre:
Microserviços
Obter alta (Baixa Armazenar
Resiliência em
disponibilidade Plataforma) dezenas de
sistemas de
de terabytes de
missão crítica e
Microserviços informação
Mainframe
(Alta
Plataforma)
Gerenciamento Ágil
Arquitetura escalável:
Verticalmente (scale
up/down)
• Adição de recursos:
Horizontalmente
(scale out/in)
Aumento automático
para manter a qualidade
de serviço
• Elasticidade
Remoção da capacidade
excessiva quando a
demanda diminuir,
evitando gastos
Utilização em Alta Disponibilidade
Serviço recuperado
colocado Online
Utilização em Alta Disponibilidade
Continuar a
prestar Define as etapas
serviços de TI necessárias para
visando a recuperar após
sobrevivência um DESASTRE
do negócio
15 hrs
• Gerenciamento Ágil
TEMPLATE
• Arquitetura Escalável2