#K8s Noob
Published: 2024-02-18 15:14:25









E aí, pessoal! Tudo certo? Estou iniciando uma série de artigos para ajudar na minha memorização do estudo sobre Kubernetes e, ao mesmo tempo, para esclarecer dúvidas que as pessoas possam ter. Neste primeiro artigo, irei tentar resumir de maneira simples o que é um container, como ele é criado e o papel do orquestrador de cotainers. Let's bora!

_**Vamos começar com o básico: o que é um container?**_

Um container é uma implementação de software que encapsula uma aplicação e todas as suas dependências necessárias para ser executada. Isso significa que todas as configurações e bibliotecas daquela aplicação são isoladas, permitindo que ela seja executada de maneira independente. Essa abordagem proporciona uma redução de recursos utilizados devido ao seu tamanho e uma inicialização rápida, já que utiliza apenas o essencial para executar os aplicativos, sem necessidade de um ambiente completo. Existem outras definições sobre containers, abordaremos em uma outra ocasião.

_**Ok, mas onde um container é criado?**_

Agora que entendemos o básico sobre o que é um container, vamos abordar como ele é criado. Embora existam várias plataformas para criação e gerenciamento de containers (como containerd, CRI-O, Podman, etc.), o mais famoso é o Docker e não é à toa. O Docker possui uma comunidade de desenvolvimento e suporte bastante grande, tornando-se uma solução robusta. Mas o principal fator, junto com o suporte, é a padronização, fundamental para a implantação do Docker em diversos ambientes.

_**Beleza, agora que sabemos o que é um container e quais ferramentas são usadas para criá-lo, qual é o papel de um orquestrador de containers nisso tudo?**_

Um sistema que executa apenas um container sem a necessidade de atualizações ou qualquer tipo de controle é, de fato, fácil de ser gerenciado. Porém, em aplicações muito grandes, com diversas funcionalidades diferentes, a situação muda. Imagine que sua empresa precise criar uma aplicação de cadastro, onde os usuários precisam inserir dados e esses dados precisam ser armazenados em algum lugar. Além disso, essa aplicação deve estar sempre disponível, caso o número de usuários aumente, o sistema deve ter recursos para atender a essa demanda sem comprometer a experiência do usuário e caso ocorram falhas, o ambiente possa ser recuperado de maneira rápida afim de evitar longos períodos de indisponibilidade. É aqui que entram os orquestradores de containers (claro, existem outros sistemas por trás disso, mas vamos abordar isso ao longo dos próximos artigos).

_**Então, você está dizendo que, para ter atualizações, escalabilidade, balanceamento de carga e recuperação de falhas nos meus containers, eu PRECISO de um orquestrador de containers?**_

Exatamente, e ainda posso destacar alguns pontos positivos adicionais. Com a integração e o auxílio de outras ferramentas, são adicionados uma série de benefícios, sendo o principal deles o gerenciamento em larga escala, facilitando a gestão, atualização, controle de versão e rollback das aplicações em caso de falha. No próximo artigo, começaremos a explorar o orquestrador de containers mais famoso e amplamente utilizado: o Kubernetes, frequentemente referenciado como K8s. Abordaremos seus principais componentes e funcionalidades, fornecendo uma visão abrangente do papel fundamental que desempenha na arquitetura de aplicativos em containers."

Até a proxima pessoal.

"Ser ruim em alguma coisa é o primeiro passo para ser bom em alguma coisa"