Top Banner
Duas black fridays depois Erros, acertos e ecossistema ao redor do Kubernetes no Magazine Luiza
25

Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Jun 09, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Duas black fridays depoisErros, acertos e ecossistema ao redor do Kubernetes

no Magazine Luiza

Page 2: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Magazine Luiza

● Varejo, +800 lojas● Diversos canais digitais de venda● 60 anos● Ação que mais valorizou em 2016● Luiza Labs: tecnologia do magazine

Page 3: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Mercado Bitcoin

● +1MM usuários● +20k usuários registrados no mesmo dia● R$ 94MM em 2016● R$ 4,5BI em 2017● R$ 140MM de transações em um dia

Page 4: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Cenário Magazine

● +400 desenvolvedores● Cloud + on premise● Diversas linguagens: Python, Node, Java, C#, VB.NET, etc● Muitas formas de fazer deploy

Page 5: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer
Page 6: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer
Page 7: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Open

Proprietary

Teresa

SRE botKloompas

Kops

kube-watchetcd-backup

Page 8: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Teresa?

● kubectl apenas para ops / SRE● Primeiros deploys:

○ kubectl create -f deployment.yaml

○ kubectl expose deployment myapp --type=LoadBalancer --name=myapp

● Precisávamos de uma forma mais rápida, fácil e confiável de fazer deploy● Não poderíamos alterar o workflow de 400 desenvolvedores

Page 9: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Teresa

● PaaS fachada para a API do Kubernetes e mais alguma coisa● Utiliza heroku Buildpacks● API roda como pod, cli é parecida com heroku● Funcionalidades: deploy, rollback, monitora o rolling update, etc

Open source: http://github.com/luizalabs/teresa

Page 10: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Outros

● Kloompas: controller-manager● etcd-backup: backup do etcd● SRE bot: permite modificar as réplicas dos deployments via slack● kube-watch: notifica usuários quando pods estão em CrashLoopBackOff,

usualmente via slack

Page 11: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer
Page 12: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer
Page 13: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer
Page 14: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer
Page 15: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer
Page 16: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Problemas

Page 17: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

HPA do Kubernetes

Page 18: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

EC3

Page 19: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Supernetes :rocket:

Page 20: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Tuning de healthcheck

Page 21: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

kops & API da AWS

Page 22: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Prometheus 1 não escala facilmente

Page 23: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

kube-proxy é dumb

Page 24: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Outros

● Rede na AWS é "ruim", no GCP é ótima● Primeira e segunda virada para o Google Container Engine● Manter cluster é um overhead pesado (ex: kops instala kubelet por padrão

sem autenticação)

Page 25: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer

Obrigado!

Alex Guerra - github.com/aguerraArnaldo Pereira - @arnaldostream