Kubernetes para Gerentes

Image: Infra as Code

Migrando I

Numa galáxia, muito, muito distante, uma/um TechLead teve um final de semana de intenso aprendizado, imerso num treinamento remoto de 3 horas sobre Kubernetes. Depois, participou de uma live onde estavam os streamers de tecnologia mais hypados do momento, lá ele aprendeu a fazer deploy de uma APP fake e criar 300 réplicas de um Pod manualmente. Tirou muitos prints nerds para postar no “Instá”, com a hashtag “é nós!!”, hashtag “Bora timeêê!!”, hashtag “agora é Kubernetes”. Na segunda-feira logo cedo o TechLead chega empolgadíssimo, sem nem dar bom dia já manda essa pro chefe “- Precisamos ter Kubernetes na nossa infra, Kubernetes é a solução!!” Aí você fala, ” - Amanhã falamos disso, estou enrolado agora e hoje a tarde tenho um evento para ir”. A caminho do evento você vai na time line (TL) do Linkedin para dar uma espairecida e ver os posts dos amigos compartilhando as maravilhas que é ter o Kubernetes em sua infraestrutura, resultando em ganhos de 80%, 90%, 98%.

Migrando II

No evento de cloud, das vinte palestras, metade fala de Kubernetes e suas maravilhas e a outra metade fala o quão é trouxa é quem não migrou ainda. Nos stands do evento, você ganha bolsa, sacola de Kubernetes, caneca, copo, adesivos, papel para um cacete com benchmarks pra lá de tendenciosos. No intervalo do evento você escuta “o Google tá usando…, o Netflix tá usando também!!!”. Daí você pensa que Kubernetes deve ser bom mesmo. No dia seguinte você está com a cabeça a mil por hora, já tem certeza que Kubernetes é a solução para todos os problemas do mundo. Aí chega novamente o seu TechLead que tá a milhão também desde o fim de semana imersivo e fala para o você “ - Man já tô com os scripts na agulha, pronto para disparar a infra nova e migrar tudo hoje mesmo, a gente vai ser melhor que o Google. É só você dar o OK que a gente vira tudo hoje a noite mesmo!!!”.

A revelação

Calma!! Calma!! Calma jovem!! Calma jovem!! Jovem, calma!! Respira! Respira, respira, respira!!! Respirou? Agora escuta uma voz bem baixinha, falando: “- Oi!! Muito prazer, eu sou o lado sensato do seu cérebro, já faz tempo que eu não apareço por aqui! Eu estava sem espaço nos últimos tempos por causa da festa que a dopamina e a ocitocina estavam fazendo!! Agora que você me ouve, mesmo que baixinho, gostaria de te contar alguns segredos que seria prudente você avaliar com carinho antes de dar o OK para a/o seu alucinada(o) TechLead e migrar tudo para Kubernetes ainda hoje a noite”.

  • Segredo 1 - Eu sei que você está desesperado para decidir algo rápido, que no “Instá” todo mundo fala disso, no “Face” tem muitos posts e likes, no Linkedin também. Calma jovem, as redes sociais causam isso mesmo, isso tem nome, e chama-se Fear Of Missing Out (FOMO), você só está com medo de ficar de fora da corrida do Kubernetes. Saiba que não existe a tal corrida e nem todo mundo está tendo sucesso com Kubernetes, as pessoas não contam histórias de fracasso na rede social, só falam dos seus sucessos, #ficadica.

  • Segredo 2 - Você não é o Google! Sua empresa não é o Google! Sua empresa não compete com o Google. Se você competisse com o Google não seria um cluster que faria sua empresa ganhar do Google.

  • Segredo 3 - Não adianta migrar tudo hoje a noite, por melhor que seja seu TechLead alucinada(o), ela/ele vai precisar dormir algumas horas em algum momento, diferentemente do Google que tem uma equipe de Sysadmin/DevOps/SRE estruturada e treinada trabalhando globalmente no suporte seguindo o modelo “following the sun”.

  • Segredo 4 - Saiba que é muito fácil instalar um cluster Kubernetes, é mais fácil ainda instalar de forma errada e com falhas que podem expor dados dos seus clientes para os concorrentes, já pensou nisso?

Perguntas para o TechLead

Antes de migrar, faça algumas perguntas para a/o TechLead alucinada(o), tipo essas aqui:

  • Qual é o perfil das aplicações que vamos colocar no Kubernetes?
  • Se habilitarmos o auto-scaling para todas as aplicações em quanto tempo vamos precisar colocar mais nós de trabalho no cluster?
  • As aplicações já estão prontas para funcionar no modelo de Container? e dentro de um cluster?
  • Como faremos o backup das aplicações? Como faremos backup do cluster? Como faremos o restore do backup?
  • Em quantas zonas de disponibilidade vamos ter no cluster? Quanto vai custar isso?
  • Você sabe como funciona o ETCD? Você sabe o que é ETCD? Você sabe como o algoritmo Raft funciona?
  • Sabe dizer se essa capacidade é suficiente para segurar a onda numa Black Friday?
  • Como você pensa expor as aplicações que estão dentro do cluster? Vai usar o Ingress?
  • Como você pensa organizar as aplicações que estão dentro do cluster, vai separar por name space? Isso é suficiente? Pensa em utilizar algum mecanismo de rate-limit?
  • Qual é o perfil das aplicações que vão para o cluster? Elas utilizam mais CPU? Mais memória?
  • Já validou o desempenho de escrita em disco dentro do cluster? O desempenho foi satisfatório?
  • Onde vão ficar as senhas, tokens, API keys das APPs? Qual será a política de rotacionamento delas? Já pensou em algum modelo?
  • Como você pensa em gerenciar o cluster? Vai utilizar alguma ferramenta além do kubectl?
  • Como vamos fazer os testes de carga? Você acha que o desempenho vai ser parecido com a infra atual?
  • Qual vai ser a estratégia de Disaster Recovery (DR)? Ativo ativo ou ativo passivo? Em quantas zonas vamos ter os nós do cluster?
  • Como você pensa em monitorar o cluster?
  • Vai usar Iac para instalar o cluster? Ansible ou Terrafom? Não vai fazer tudo na mão né?
  • No time, quem além de você “conhece” Kubernetes? Como vai funcionar o suporte fora do horário comercial?
  • Alguém dos times de DEV te ajudou a pensar nas necessidades deles para colocar um APP em produção?
  • Como fica o build das aplicações? Como fica o deploy das aplicações?
  • Onde os logs de aplicação e de sistemas serão armazenados?
  • Qual será a política de retenção dos logs? Quem vai poder ver os logs já pensou nisso?
  • Como os times vão acessar o cluster?
  • Quem vai controlar o acesso? Qual modelo de autenticação você pensa utilizar? Quais poderes e perfis você pensa em criar?
  • Já fez algum teste com alguma aplicação?

Para os gerentes

Antes de migrar tudo hoje de noite, e antes de qualquer coisa, essas e outras perguntas precisam ser respondidas. É fácil achar um alucinado que faça isso por R$50 a hora de trabalho ou um incauto super motivado. Sua preocupação principal deve ser com o dia seguinte, com o suporte da infraestrutura. Quem e como o cluster vai ser gerenciado? Separe toda a espuma e vapor gerados nas redes sociais e foque na continuidade e gestão do ambiente. Suas aplicações não podem parar. No Google não é frequente parar #ficadica.

Resumo

Este post não é para te tornar uma montanha de granito que não se abala em nada com as mudanças na tecnologia. Não se deve ser assim, se você for desse tipo, é questão de tempo para sofrer o mesmo que um Pod sofre quando deixa de funcionar, inicia-se um processo de eviction só que neste caso é a sua carreira profissional que está em jogo então #ficadica.

O objetivo deste post é te dar argumentos e criar a possibilidade de ter discussões técnicas com os seus times e fornecedores sobre as oportunidades de ganho, e mais importante, sobre as dificuldades e desafios de uso do Kubernetes em ambientes de produção. As perguntas ajudam também a conversar com sua gerência e juntos vocês podem montar uma estratégia de migração mais planejada e robusta para sua empresa. Por último e sem a menor dúvida, as perguntas servem também para acalmar e nutrir com um pouco de conhecimento a alma das/dos TechLead alucinados que existem por aee 😀😀.

Abraços!

Vida longa e próspera a todos!!

Referências:


Eu adoraria ouvir suas outras histórias e situações semelhantes ao que acabei de escrever neste post, você pode me encontrar em @infraascode_br ou linkedin.com/in/leonardoml/ .

Te convido a ver os outros posts do blog Infra-as-Code garanto que tem coisas legais lá!!


--- --- IMPORTANTE --- ---
As opiniões aqui expressas são pessoais e de responsabilidade única e exclusiva do autor, elas não refletem necessariamente a posição das empresas que eu trabalho(ei) e/ou presto(ei) serviço.