• Nenhum resultado encontrado

André

N/A
N/A
Protected

Academic year: 2021

Share "André"

Copied!
85
0
0

Texto

(1)

Containers na

Passado, Presente e Futuro

1

André Carvalho

@andresantostc

(2)

whoami

Desenvolvedor

na

globo.com

Plataforma de deploys

(3)

+ de 500

desenvolvedores

fazendo

centenas

de

deploys por dia

(4)
(5)

1300

aplicações

3300

containers

450

máquinas virtuais

(6)

time <

10

pessoas

(7)

Como

chegamos aqui

Onde

estamos

E para onde

queremos

ir

(8)

Início

2012

(9)

Cada equipe

Fazia

1 deploy

a cada

2

semanas

Mantinha scripts de

deploy e provisionamento

de infra

(10)

Cada aplicação

Maquinas físicas em

4

ambientes

Setup inicial demorava

1 mês

(11)

Pouca

inovação

Aplicações

monolíticas

Alto

custo

(12)

Como melhorar?

(13)

Abstrair

a infraestrutura

Dar poder ao

desenvolvedor

(14)

Premissas

14

Open Source

Extensível

Escalável

Simples

Multi Linguagem

(15)

“I’m convinced the majority of people managing infrastructure

just want a PaaS. The only

requirement: it has to be built by them.”

(16)

100% Open Source

Premissas

Inspirado no Heroku

(17)

app create <name>

<platform>

17

(18)

app create <name>

<platform>

18

app deploy <files>

(19)

app create <name>

<platform>

19

app deploy <files>

(20)

Não tem

Dockerfile

apenas

código

e suas

dependencias

(21)

O conceito de containers

não

é exposto

(22)

22

https://www.infoq.com/news/2013/03/Docker

Na verdade…

ainda

não

existem docker

containers

(23)

Cada unit era uma VM

provisionada com

Juju

(24)

Primeiro

deploy:

40

minutos

Deploys

seguintes

:

5

minutos

(25)

Primeira aplicação em produção AWS e Juju

25

(26)

Docker

2013

(27)

Queríamos fazer melhor

Deploys ainda

mais

rápidos

Deploys

reproduzíveis

(28)
(29)

Imagens e Plataformas

29

(30)

Imagens e Plataformas

Baseadas no

ubuntu

Trade-off entre

simplicidade

e

tamanho

Armazenadas em um

Registry

30

(31)

Registry

31 docker/distribution Open Source Diversos backends Sem autenticação S3 Swift Disco

{

(32)

Registry

32

Time dedicado

Autenticação (LDAP)

(33)

Ainda existe um problema:

Como escolher onde rodar o container?

(34)

Docker-cluster

Scheduler de containers extensível

Utilizado como biblioteca

github.com/tsuru/docker-cluster

(35)

Heurística de Scheduling

Segregamos os nós em pools

Cada aplicação está associada a um pool

(36)

Heurística de Scheduling

Espalhar as units de uma

mesma aplicação Levamos em consideração memória requisitada quantidade de containers metadados 36

(37)

Exemplo

Adicionando

3 units

do

Cartola

(38)

38

D

o

cke

r-cl

u

st

e

r

pool=g1 pool=esporte pool=esporte zone=us-east-1 zone=us-east-2 zone=us-east-1 N1 N2 N3 pool=esporte zone=us-east-2 N4

(39)

39 zone=us-east-2 zone=us-east-1 N2 N3 zone=us-east-2 N4

D

o

cke

r-cl

u

st

e

r

(40)

40 zone=us-east-2 zone=us-east-1 N2 N3 zone=us-east-2 N4

D

o

cke

r-cl

u

st

e

r

(41)

41 zone=us-east-2 zone=us-east-1 N2 N3 zone=us-east-2 N4

D

o

cke

r-cl

u

st

e

r

(42)

42 zone=us-east-2 zone=us-east-1 N2 N3 zone=us-east-2 N4

D

o

cke

r-cl

u

st

e

r

(43)

Como

acessar

os

containers?

(44)

44

curl app.cloud.tsuru.com

(45)

45

(46)

Aplicação em produção com

Docker

VMs pré-provisionadas

46

(47)

Serviços

2014

(48)

Poucas

aplicações são

completamente stateless

(49)

“Kelsey’s guide to running traditional databases on

Kubernetes. Strongly consider

using a managed service.”

(50)

Outros times começaram

a ofertar

serviços

(51)

Serviços

Usuário cria uma instância do serviço Usuário faz bind da instância com a

app

Serviço injeta variáveis de ambiente

Serviço é informado sobre containers

(52)

Serviços

Swift (https://github.com/ openstack/swift) DBaaS (https://github.com/ globocom/database-as-a-service) RPaaS (https://github.com/tsuru/ rpaas) 52

(53)

Fórum

Techtudo

+ de

4 milhões

de usuários

Integração com

Cloudstack

53

(54)

Resiliência

2015-2016

(55)

Investimentos em

resiliência

Troubleshooting

(56)

Problemas

Aplicações mal comportadas

VMs com filesystem read-only

Containers e VMs zumbis

Bugs do docker

(57)

“Do yourself a favor and walk

away from docker 1.13.0 and

1.13.1. Containerd randomly

panics and never recovers and it will give you serious agony.”

(58)

Troubleshooting

sysdig (https://sysdig.com/opensource/)

(59)

Troubleshooting

docker events

(60)

Troubleshooting

dmesg

(61)

Não

é o bastante

Precisamos

automatizar e

agregar

(62)

Big-Sibling

Container que roda em todos os nós

• https://github.com/tsuru/bs

Realiza checks de sanidade Processa e redireciona logs

Envia métricas (dashboard e autoscale)

(63)

Healing

Nunca atualizar/reiniciar o Docker

em uma instância em uso

Big-sibling identifica VMs

problemáticas

Tsuru cria nova VM e move

containers

(64)

VMs

Ubuntu LTS (Kernel 4) 4 vCPU, 8gb mem

Docker 12.x~13.x

(65)

VMs

Log driver Syslog (big-sibling) 65 Storage driver AUFS Overlay/Overlay2 (!POSIX) Devicemapper

(66)

Globoplay

e

Cartola

Migração de Datacenter

66

(67)

Kubernetes

2017-2018

(68)

Porque?

(69)

Kubernetes

Deploy de componentes da Plataforma

(70)

Kubernetes

(71)

Kubernetes

(72)

Kubernetes

Destruímos e criamos clusters todos os dias

AWS, GCE e Cloudstack

Validações do tsuru, scripts e puppet

github.com/tsuru/

integration_{gce,ec2}

(73)

A plataforma continua

sendo o tsuru

(74)

“Limit the scope of access to a Kubernetes cluster to

automation tools and cluster administrators who may have

to debug it or keep it running.”

(75)

Tsuru + Kubernetes

Provisioners Configurado por pool

(76)

Leva em consideração os recursos

Espalha pods de um mesmo

deployment

Nodes com labels

Pods com nodeAffinity e

podAntiAffinity

76

(77)

Tsuru + Kubernetes

Kubernetes-router

Cria serviços de LoadBalancer e

Ingresses

77

(78)

Tsuru + Kubernetes

Volumes NFS

volume create <name>

volume bind <volume> <app>

(79)

Crescimento do Cartola Votação do BBB Componentes e aplicações no Kubernetes 79

2017-Hoje

(80)
(81)

Futuro

2018+

(82)

Kubernetes++

(83)

Multi-Cloud

(84)

Service Mesh

(85)

Obrigado!

andrestc.com

85

Referências

Documentos relacionados

Métodos instrumentais aplicados à análise química Quantitativa com ênfase na espectrometria UV-Vis, espectrometria de absorção e emissão atômica, análise térmica

A critério do empregado a empresa fornecerá auxilio alimentação e/ou refeição aos seus empregados, vedado o pagamento em dinheiro, por convênio com empresas administradoras de

No presente trabalho, obje- tivou-se avaliar o efeito da aplicação de diferentes fontes de fósforo, no momento da implantação do capim Marandu, no conteúdo de fósforo (P), no teor

Os trabalhos selecionados para apresentação serão divulgados na página do CONEPE a partir do dia 20/10/2017, no item “Apresentação de Trabalhos” do site do CONEPE, e receberão

É da responsabilidade da Seguradora, através dos seus Serviços de Assistência, a organização e liquidação directa aos Prestadores de cuidados de serviços de

Assim, os resultados aqui encontrados não são conflitantes, mas complementares, pois o uso precoce de dopamina afetou o desempenho do ventrículo esquerdo como uma câmara,

O método, denominado Cluster-based Item Selection Method (CISM), se utiliza do agrupamento por similaridade de um banco de itens calibrados pela Teoria da Resposta ao Item.

SANTA ADELIA TV TEM São José do Rio Preto SANTA ALBERTINA TV TEM São José do Rio Preto SANTA CLARA D'OESTE TV TEM São José do Rio Preto SANTA FE DO SUL TV TEM São José do