Duas black fridays depois - QConSP › system › files › presentation-slides ›...
Transcript of Duas black fridays depois - QConSP › system › files › presentation-slides ›...
![Page 1: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/1.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/2.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/3.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/4.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/5.jpg)
![Page 6: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/6.jpg)
![Page 7: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/7.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/8.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/9.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/10.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/11.jpg)
![Page 12: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/12.jpg)
![Page 13: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/13.jpg)
![Page 14: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/14.jpg)
![Page 15: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/15.jpg)
![Page 16: Duas black fridays depois - QConSP › system › files › presentation-slides › arnaldo_-_q… · kubectl create -f deployment.yaml kubectl expose deployment myapp --type=LoadBalancer](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/16.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/17.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/18.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/19.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/20.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/21.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/22.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/23.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/24.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022041104/5f046b407e708231d40ddfb5/html5/thumbnails/25.jpg)
Obrigado!
Alex Guerra - github.com/aguerraArnaldo Pereira - @arnaldostream