DevOps – Um Panorama Metafórico

Compartilhar

Tomei a liberdade poética de escrever sobre algumas ferramentas da cultura DevOps de uma forma metafórica.

Considere que o escopo de seu projeto é a construção de 3 casas. A primeira etapa será escolher um terreno que comporte o ideal das casas a serem construídas, em um bairro que você goste, que não ocorra alagamentos e possua uma vizinhança amigável. O terreno, assim como as considerações sobre o seu desejo, é o Provider, AWS, Azure, GCP, escolhido conforme o conhecimento da sua equipe ou com base na indicação de autoridade de outros.

Com o terreno – Provider – escolhido, pode-se então iniciar o planejamento do projeto para a construção das casas. Com o projeto em mãos, você contratará os profissionais para o início da execução. A fundação da casa em um terreno firme, é primordial para que a evolução da construção possa ocorrer sem grandes problemas. A fundação neste caso, é o Terraform, onde você vai provisionar a base das 3 casas, de forma equivalente e agnóstica, mesmo que os terrenos – Provider – tenham estruturas diferentes.

Após a fundação – Terraform – ter sido implementada, tendo em mente que as 3 casas serão construídas ao mesmo tempo, e devem seguir o mesmo padrão do início à entrega. Será necessário, além do projeto, um profissional para administrar as construções de forma padronizada, este profissional se chama Ansible. À medida que uma das casas esteja com a parede maior que a das outras, o Ansible poderá emitir a ordem de atualização para manter as 3 casas de acordo com o escopo do projeto, e assim até o fim da construção e depois, com atualizações futuras.

As paredes começam a ser construídas, e se formarem os primeiros cômodos, crus, com tijolos à vista, sem pintura, somente a estrutura base. A esses cômodos podemos chamar de contêineres, geralmente, mas nem sempre, criados pelo Docker.

Assim como a padronização da construção das casas são administradas pelo Ansible, a uniformidade para a construção de cada cômodo – contêiner, será gerenciada pelo Kubernetes. O Kubernetes é o profissional responsável em administrar a necessidade de alguma modificação, upgrade, ampliação em algum cômodo – contêiner – específico.

Com o terreno – Terraform – escolhido, o gerenciamento das construções – Ansible – padronizadas, os cômodos – contêineres Docker – em andamento e a administração – Kubernetes – de cada cômodo especificamente. Pode-se iniciar a colocação de pisos e azulejos, o reboco, a pintura, a parte elétrica. A esse processo de acabamento e recursos funcionais, podemos chamar de CI/CD – Integração e Entrega Contínua.

O processo de acabamento na construção de cada cômodo, com CI/CD, pode ser entregue através do Jenkins e Gitlab. Serão os profissionais responsáveis por manter o padrão dentro de cada cômodo, provendo ao interior de cada um, os recursos como energia elétrica, água, pintura, portas, sempre atualizados e seguros para manutenção da aplicação.

Com todo o processo de construção executado de acordo com o projeto e alterações necessárias durante a execução, foram necessárias diversas etapas, para chegar à finalização da obra. Porém, assim como em uma casa, sabemos que a construção não acaba quando finaliza a construção, pois modificações poderão ser necessárias. A ampliação de um cômodo, a criação de um jardim, a troca de uma porta, a alteração de cor, e tudo isso, deve ser feito sem derrubar a casa para construí-la novamente de acordo com as novas especificações.

Sabemos que podem ser usadas outras ferramentas além das mencionadas neste artigo, inclusive você pode nos dizer o que tem se encaixado melhor nos seus projetos.

Deixe um comentário

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