Upgrade to Pro — share decks privately, control downloads, hide ads and more …

O que você precisa saber sobre Kubernetes para não passar vergonha

drequena
November 25, 2020

O que você precisa saber sobre Kubernetes para não passar vergonha

Uma bate papo feito no meetup do iFood Sem Fronteiras sobre Kubernetes.
Vários assuntos bordados e comentados, todos com referências no final da apresentação!
Bons estudos! ;)

drequena

November 25, 2020
Tweet

More Decks by drequena

Other Decks in Technology

Transcript

  1. Quem sou eu Daniel Requena • Pai e marido •

    Bacharel em Ciência da Computação • Mestre em Engenharia de Computação • 15+ anos de experiência na área • SRE iFood • Apaixonado por: Tecnologia, Infraestrutura, DevOps, IAC, Cloud, Containers, K8S e + buzzwords. • Problemas com cafeína
  2. O que estou fazendo aqui? • 3 objetivos ◦ Vender

    o iFood pra vocês ◦ Dar uma visão geral e contextualizada sobre Kubernetes ◦ Tentar dar um exemplo prático de utilização ◦ Deixar muitas referências de cursos, livros, vídeos, podcasts, etc... sobre os tópicos aqui abordados
  3. iFood • Funcionários em Tech: ~650 foodlovers • ~50 milhões

    de pedidos/mês • 9K orders por minuto • Quantidade de Aplicações: ~550 apps • EC2s: ~3500 • Número de deploys: +1000 mês • Tráfego de rede: +4.0M RPM
  4. Por que aprender Kubernetes? • Quase a totalidade das aplicações

    do iFood rodam em Kubernetes ◦ Realidade cada vez maior e que só tende a aumentar • Criado para o atual padrão arquitetural de aplicações • Padrão de fato de orquestração de containers • Diferencial profissional • Se isso ainda não for o suficiente...
  5. Containers • Tecnologia criada na década de 70 (pra variar)

    • Isolamento entre aplicações na camada de Sistema Operacional (processo) • Renascimento há cerca de 6 anos atrás • Principal referência (mas não mais a única): Docker • Revolucionou a forma de desenvolver, empacotar e executar aplicações. ◦ Rapidez de inicialização ◦ Portabilidade ◦ Efêmeros ◦ Imutável ◦ Mais performance (na teoria) • Reforçou e endossou o padrão que voltava à moda ◦ microservices (também dos anos 70)
  6. Containers • Arquitetura de microservices ◦ Escopo único por aplicação

    ◦ Alta escalabilidade ◦ Debug difícil ◦ Gerenciamento difícil • Se uma andorinha não faz verão, 1 container não faz um sistema ◦ Escalar ◦ Detectar falha ◦ Reiniciar ◦ Distribuição de carga
  7. Kubernetes • O que é? ◦ Um orquestrador de containers

    ◦ Distribuído ◦ Resiliente • O que faz? ◦ Executa, Monitora, Expõe, Distribui Carga, Escala, e muito mais, aplicações empacotadas como containers. • Como tirar melhor proveito? ◦ Microservices ◦ Stateless ◦ Escalável ◦ 12 fatores ◦ Lembrando que não existe bala de prata
  8. Kubernetes • Como interagimos com o Kubernetes? ◦ kubectl ▪

    Interage com a API ▪ Comanda a criação, destruição, replicação de serviços. • Se é uma API, precisamos conhecer seus objetos e specs ◦ JSON / YAML ▪ Deployment ▪ Service ▪ HPA (Horizontal Pod AutoScaler) ▪ … ▪ muitos outros mais...
  9. Referências • https://training.play-with-docker.com/ • https://github.com/gomex/docker-para-desenvolvedores • https://12factor.net/ • https://microservices.io/ •

    https://martinfowler.com/microservices/ • https://www.manning.com/books/cloud-native-patterns • https://www.katacoda.com/courses/kubernetes • https://kind.sigs.k8s.io/docs/user/quick-start/#installation • https://minikube.sigs.k8s.io/docs/start/ • https://microk8s.io/ • LinuxTips (playlist kubernetes) • https://blog.getupcloud.com/kubicast-50-8d48a45dcf91 • https://movile.blog/papo-sobremesa-01-kubernetes/ • https://github.com/drequena/headers