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

Multicloud mais confiável e mais ágil com Kuber...

Multicloud mais confiável e mais ágil com Kubernetes

Como Kubernetes muda a forma como operamos e automatizamos infraestrutura em cloud. Ele também influencia diretamente na velocidade de entrega de equipes de desenvolvimento, que podem enviar funcionalidades para produção de forma muito mais rápida que anteriormente, especialmente se potencializada com a Teresa, ferramenta open source para deploy de aplicações em clusters Kubernetes.

Nessa palestra falei sobre a experiência de mais de um ano de operação de clusters de produção Kubernetes em larga escala no Magazine Luiza, passando bem por uma Black Friday com aplicações críticas em produção.

More Decks by Arnaldo de Moraes Pereira

Other Decks in Technology

Transcript

  1. Eu • Eletrônica -> computação • Desenvolvimento, arquitetura de software

    e automação de infra • C, Python, Go • AWS e GCP • Projeto genoma humano, 2 startups • 4 filhos :D • Gerente de arquitetura e SRE
  2. LuizaLabs • Começou apenas como P&D, hoje é toda tecnologia

    do Magazine Luiza • +400 colaboradores, grande parte desenvolvedores • Magazine: +800 lojas, diversos canais de venda digitais • Magazine: ação que mais valorizou em 2016 • Magazine: +11BI em receita • Cloud first, Multicloud com Kubernetes • Python, Go
  3. Multicloud É a utilização de múltiplos provedores de cloud. Mantendo:

    • Overhead de operação mínimo conforme outros clouds são adicionados ◦ Mesma forma de provisionar ambientes ◦ Gestão de mudanças, atualizações, etc • Experiência para o desenvolvedor ◦ Pipeline de deploy, APM, tracing, monitoramento e alerta
  4. Kubernetes • Provisionamento com kops ◦ Evolução: kubicorn • Monitoramento

    com Prometheus • Deploy de apps com Teresa ◦ Não é necessário interação entre dev e ops • Overhead de operação mínimo conforme novos clusters são criados - mesmo em outros cloud providers
  5. Teresa • Deploys antes ◦ kubectl create -f deployment.yaml ◦

    kubectl expose deployment myapp --type=LoadBalancer --name=myapp • Depois ◦ teresa deploy /path/to/myapp --app myapp --description "release 1.0" • Deploy em outro cluster ◦ teresa config set-cluster gcp-staging --server https://… ◦ teresa config use-cluster gcp-staging
  6. Kubernetes + Teresa • Overhead mínimo para ops • Autonomia

    e simplicidade para devs • Com federação: 1 deploy, presença em vários providers • Sem federação ◦ teresa use-cluster gcp && teresa deploy ◦ teresa use-cluster aws && teresa deploy
  7. Black Fridays • 2015: ~100 devs, 26 minutos down ◦

    Deploys automatizados, alguma interação humana com o ambiente ◦ Sem ferramenta única para deploy • 2016: ~120 devs, 0 minutos down ◦ Kubernetes e Teresa ◦ Devs com maior autonomia: podem fazer deploy de apps críticos sem controle rígido ◦ +700 deploys 2 meses pré-BF
  8. Takeaways • Kubernetes simplifica e uniformiza a infraestrutura • Pipeline

    único de deploy é crucial • Abstrair a complexidade do deploy ◦ Devs não tem kubectl, não escrevem yaml e não geram imagens docker • Arquitetura cloud-native é chave