Problemas inerentes ao Kubernetes

Problemas inerentes ao Kubernetes

Eu uso Kubernetes profissionalmente desde 2018 e tenho que admitir que é a tecnologia mais desafiadora que eu já tive a oportunidade de trabalhar, e ao mesmo tempo, a que eu tenho mais entusiasmo em relação ao futuro.

Como trabalho essencialmente com pipelines de dados dockerizados no Kubernetes, pela minha experiência eu penso que em um futuro próximo isso vai ser o futuro por questões arquiteturais e práticas com a utilização cada vez maior de micro/nano-batching.

Porém o Kubernetes é uma tecnologia fácil de vender, e difícil de operar e dependendo da maturidade de um time de tecnologia é até mesmo desaconselhável o uso do K8s por conta de aumento de complexidade.

Estou no momento realizando uma tradução de um artigo da Anna Geller chamado “Porquê Kubernetes está se tornando tão popular em Engenharia de Dados”. Contudo, eu deixo aqui hoje um contraponto interessante do Itamar Turner-Trauring chamado Vamos usar Kubernetes! Agora você tem 8 problemas em que de uma maneira rápida é resumido em:

  • Múltiplas instâncias/máquinas
  • Muito código
  • Complexidade Arquitetural
  • Complexidade Operacional
  • Complexidade de Configuração
  • Complexidade Conceitual
  • Complexidade de Desenvolvimento
  • Microservices (são geralmente uma má ideia)

Eu assino embaixo todos os pontos e posso até relatar da minha experiência que me levou ao menos 1 ano para entender as implicações disso de uma maneira mais holística. Em especial a parte de complexidade conceitual (i.e. você acaba pensando na arquitetura e no design do seu código para suportar as limitações e vantagens do K8s) e de complexidade de configuração (e.g. gerenciamento de configmaps, helm charts, etc) que deixa o deployment muito mais desafiador e sem uma boa dose de processos e automação pode levar a pequenos desastres em produção.

Esse é um ótimo artigo para quem quiser dissuadir alguém de utilizar Kubernetes em produção sem entender os riscos e limitações.