fbpx
Os 6 níveis de maturidade no uso de Containers
Publicado em: quarta-feira, 9 de mar de 2022
Categorias: Docker de A a Z
Tags: Docker

Do usuário eventual ao heavy user, Docker consegue entregar diversas experiências de acordo com seu nível de maturidade e conhecimento.

Se comparado com outras tecnologias, Docker e Containers em geral são assuntos pequenos, para poucas semanas de estudo. Mas embora a extensão do conhecimento não seja tão grande, a abrangência do seu uso beira o infinito. E cada vez que você aprofunda no uso vai mudando a perspectiva sobre o que é aceitável, certo esperado.

Entender os níveis de maturidade ajuda na compreensão de onde você está e onde você pode chegar.

E note, eu não estou dizendo que esse caminho do nível 1 ao 6 é necessário! Mas está disponível, e se quiser caminhar até lá, é bom entender quais são esses passos.

Como progredir?

Essa nem é uma dúvida, em geral percebo que questionar a forma certa de progredir em uma tecnologia, principalmente Docker é super ignorada.

Então eu estou aqui para dizer 2 coisas importantíssimas:

Você não precisa chegar ao último estágio

Não há nada que te obriga a chegar ao nível mais elevado de consciência no uso de Containers, em especial Kubernetes. Embora seja bom, para quem quer trabalhar com Kubernetes chegar ao estágios 5.

Já se você é um arquiteto, talvez o 6 seja importante para você também.

Você não precisa dar nenhum passo a mais, mas não dá para pular

Essa é uma dica tão, mas tão importante. Que se eu pudesse enviava uma carta com um adesivo para você colar na parede.

Se você quer empacotar sua aplicação (nível 2), sem ter minimamente entendido containers subindo outros containers de imagens já prontas (nível 1), isso quer dizer que você quer pular do nível 0 para o nível 2.

Deixa eu te contar: São tantas, mas tantas coisas erradas que você vai fazer por um erro tão simples, tão bobo.

No @dockerbr do telegram a gente esbarra nisso quase todo santo dia.

Os níveis de maturidade no uso de contêineres

Acima eu apresento 6 níveis de maturidade no uso de Contêineres.

Nível 1

No nível 1 temos o uso mais básico, quase que esporádico. É o que acontece nos primeiros dias de uso do Docker. Você está aprendendo a usar imagens dos outros e começa a subir contêineres. Pode usar esses contêineres para uma atividade, como estudar, conhecer uma interface de uma ferramenta ou mesmo para tirar algumas dúvidas.

Nesse nível de maturidade, seu código não é empacotado em imagens. Em produção nada ou muito pouca coisa roda com contêineres.

Nível 2

No nível 2, você já começa a usar contêineres para desenvolver. São serviços como Redis, bancos de dados como MariaDB, MySQL, PostgreSQL e afins.

Nesse estágio nossas aplicações ainda são desenvolvidas diretamente no host e docker só sobre esses recursos para nos ajudar.

Nível 3

O nível 3 é onde você começa a desenvolver com Docker. Seus primeiros projetos, começam a ganhar dockerfiles, e você já dá os primeiros passos desenvolvendo e fazendo alguns deployments com Docker.

Nível 4

Aqui começamos o uso de stacks com Docker Compose para implantação com Docker Compose, Swarm ou do outro lado, manifestos yaml para implantação no Kubernetes.

Aqui temos um dos saltos mais significativos, onde saímos de poucos deployments, poucos serviços, para começarmos a de fato trabalhar com orquestração de diversos contêineres e stacks de fato complexos.

Nível 5

No nível 5 estamos falando do uso intermediário do Kubernetes onde você começa a instalar alguns Operators para poder dar vida ao cluster, aumentando as capacidades dele.

Nesse ponto, você está familiar com os elementos avançados do Kubernetes.

Nível 6

Aqui é na minha opinião o estágio mais avançado desse ciclo de vida, quando você começa a construir suas próprias extensões para o Kubernetes. Você constrói Operators para que interajam com o cluster e assim você consiga criar suas próprias extensões para o Kubernetes.

Porque dividir em níveis?

A divisão em níveis ajuda na compreensão do que é esperado por você. Por exemplo, nos níveis 1 e 2 temos o maior número de erros e confusões. É comum nesses estágios você querer saber o IP do contêiner, não entender as demandas por proxy reverso, tentar colocar mais de uma aplicação na mesma imagem.

Já no nível 3, esses dilemas são sanados, e para conseguir transitar do estágio 3 para o 4, necessariamente a maioria vai entender como funciona um Dockerfile, o básico de redes, volumes e o contêineres também.

Até então é provável que se saia super bem sem entender absolutamente nada disso. Mas daqui para frente é notoriamente insustentável não entender os fundamentos, simplesmente porque os erros começam a deixar rastros, e fica cada vez mais insustentável fazer a coisa errada.

No nível 4, pela demanda por criar stacks, você tende a sentir as dores dos erros dos outros estágios.

Por exemplo, quando você resolve que o Dockerfile deveria ficar longe do projeto, em um repositório centralizado. Aqui você começa a sentir a dor, por não conseguir manter uma versão consistente do software simplesmente porque ele está fracionado em 2 repositórios.

Se você optou por não criar um dockerfile, é aqui que a gambiarra fica evidente. Você precisará de um git clone + docker run ou até docker compose up, tendo de lidar com o mesmo git clone em todos os servidores. O que pela ótica do docker é errado: não pelo comando, mas, porque seu software de fato não está empacotado como uma imagem.

É aqui que atalhos para se conectar ao host como os hostnames host.docker.internal simplesmente não funcionam.

Aqui quando começamos a tentar controlar os IP´s tudo começa a dar errado, perdemos o poder de escalar nossos serviços.

Nesse mesmo nível percebemos que para conseguir fazer algumas coisas simples, precisamos de um proxy reverso.

Já no nível 5, temos o uso profissional do Kubernetes, usando operadores, e talvez até service mesh. Aqui estamos falando dos profissionais.

Aqui é voo em céu de brigadeiro! Essa é a galera mais profissional, que, quando possui skills de dev, pode, se encontrar oportunidade, criar seus próprios Operators fazendo entrarem no nível 6, um nível raro, escasso, de profissionais no mundo.

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[docker de a a z]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.