É por isso que o Kubernetes é utilizado em grandes projetos - Full Cycle FullCycle

Voltar

Wesley Willians

É por isso que o Kubernetes é utilizado em grandes projetos

8 min de leitura

O Kubernetes – ou K8S, por abreviação – é uma plataforma de código aberto que automatiza o gerenciamento de containers, evitando um extenso trabalho manual. Para quem não conhece o Docker, os containers são uma tecnologia utilizada para isolar aplicações e agregar arquivos num ambiente executável em qualquer sistema operacional.

Existem diversos tipos de containers que rodam processos isoladamente, utilizando alguns recursos do Linux como o Namespaces e o Cgroups para manter esses recursos de forma independente, dividindo o kernel com os sistemas operacionais.

  • Por que nós devemos automatizar esses processos?

Partindo do princípio de que nós temos um container e está tudo em ordem com ele, muitas vezes a empresa tem um ecossistema variado em seus setores, que tendem a se multiplicar conforme as suas operações, demandas e sistemas evoluem.

Se uma empresa tem diversos microsserviços para cuidar de processos como: produtos, site, marketing, vendas, cálculo de juros e RH, por exemplo, essa é uma situação bastante plural. Ou seja, cada microsserviço relativo a essas áreas rodam em diversas linguagens, já que atualmente isso é comum no mundo distribuído. E como nós trabalhamos nesse mundo de microsserviços, às vezes cada microsserviço é um sistema diferente, com deploys diferentes, que precisam ficar no ar e a cada vez que isso aumenta nós vamos ter ainda mais sistemas.

Uma outra situação típica acontece quando cada microsserviço se torna um container, já que os desenvolvedores dessa operação utilizaram Docker e vão colocar todo esse trabalho em produção, mantendo tudo rodando em containers.

  • Preocupações

Mas existem diversas preocupações em torno dessas decisões que nós podemos listar,  como por exemplo: queda de sistemas; queda de containers; como saber se o container caiu; lentidão; e mudança de versão do container sem tirar o sistema do ar. Essas são algumas das questões iniciais que muitos acabam fazendo. E, se você estiver trabalhando com Docker ou algo do tipo, para saber se um container caiu é necessário um sistema de monitoramento para te alertar.

  • O que devemos fazer?

No caso da queda de um container, por exemplo, talvez seja necessário algum comando ou fazer alguma coisa para garantir que está tudo em ordem. E se o sistema ficar lento, ele pode pedir mais máquinas e containers.

Conforme adicionamos mais containers, naturalmente isso irá requerer mais gerenciamento. E, se precisarmos adicionar novas ao sistema, nós ainda devemos nos preocupar em como fazer isso sem tirá-lo do ar. Adicionando ainda mais um problema porque existem sistemas que não podem ficar fora do ar nem por um segundo.

  • É possível gerenciar tudo isso manualmente?

Entenda que ainda existem muitas outras necessidades e cuidados que devemos ter, como o IP de cada container; o registro em Load Balancer; necessidade de Service Discovery; onde guardas as senhas e variáveis de ambiente; TLS/SSL; a comunicação e identificação entre os containers.

Isso já são diversos problemas, mas podemos ir ainda mais longe: pensando também no ajuste de recursos computacionais para cada container; memória e CPU; autoscaling; como gerenciar dezenas, centenas e milhares de containers; a garantia de segurança e controle de acesso; processos de CI/CD devido às diversas versões adicionadas.

Essas complicações podem parecer fáceis a nível logístico, já que basta utilizar Docker Compose e Health Check para manter tudo funcionando. Mas isso só dura até precisarmos de mais máquinas, de Load Balancer e mudar as versões sem derrubar os containers.

Quando esses problemas se acumulam a ponto de se tornarem centenas ou milhares de containers, é inviável tentar gerenciar essas complexidades manualmente, já que a chance de erro humano quando tentamos fazer tudo isso ao mesmo tempo é muito grande.

Pensando em resolver essas questões para não causar prejuízo ou sobrecarga diante de todos esses detalhes, o Kubernetes pode automatizar tudo isso como o nosso orquestrador de containers.

Hoje em dia ele já é considerado o novo sistema operacional da nuvem, que no futuro será composta de containers. E se você quer uma ferramenta para gerenciar a sua nuvem, as suas informações e sistemas, o Kubernetes é a plataforma que vai cuidar de todas as suas operações.

Quer saber mais sobre Kubernetes? Acesse nosso canal do youtube!

Veja também: como funciona o service discovery.