DevSecOps

21 fev, 2019

Containers, os food trucks da Tecnologia da Informação

Publicidade

As evoluções da área de tecnologia surgem em um ritmo tão acelerado que nem percebemos o quanto já fazem parte do nosso dia a dia. Se antes achávamos incrível a possibilidade de ir a uma lan house para utilizar a internet, hoje não vivemos sem nosso smartphone conectado. Seja para trocar mensagens rapidamente, entrar nas redes sociais ou até passar o tempo em games.

O #10yearschallenge da tecnologia representaria uma das mudanças mais drásticas da sociedade ao longo da última década.

Durante boa parte da minha vida profissional em TI, que data de antes do desafio dos 10 anos, sempre vi muitas aplicações no modelo servidor de aplicação e banco de dados. Normalmente, quem desenvolvia a aplicação focava apenas em suas funcionalidades, sem se preocupar com questões como escalabilidade.

Para efeitos de comparação mais atual, é como se um programador estivesse apenas preocupado com o front-end de um aplicativo, mas não com o seu back-end.

Com a evolução tecnológica, itens antes não levados em conta passaram a ser obrigatórios. Os motivos para isso são variados, mas um dos propósitos mais relevantes é referente ao desenvolvimento de uma infraestrutura sem pontos de falhas – tarefa crucial para o gerenciamento de dados.

Para implantar, gerenciar e dimensionar aplicativos e serviços, estratégias de “Container as a Service” (CaaS) vêm sendo cada vez mais adotadas, pelo fato de que estão alinhadas com métodos ágeis de software, em especial com a metodologia DevOps.

Entendendo o conceito de containers

Para explicar o funcionamento de termos específicos, procuro sempre traçar analogias do nosso cotidiano. Aprendi, ao longo de anos de treinamentos concedidos, que o uso de analogias simplifica a compreensão de novas tecnologias, como os “containers”. Veja só!

Algo que vemos muito hoje em dia nas ruas, em portas de baladas e festivais são os food trucks. Aparentemente, este formato mais recente de veículos móveis com o interior equipado para a venda de alimentos e bebidas não tem relação alguma com a área de Tecnologia da Informação (TI). Não exatamente. Na realidade, os food trucks funcionam de forma similar aos containers em TI.

Geralmente apenas um tipo de comida é vendido em cada um dos food trucks. Você encontra, em um mesmo ambiente, diferentes opções de carrinhos vendendo hambúrguer, cachorro-quente, pizza, esfiha, comida japonesa, comida mexicana, entre outras opções. Como bom apreciador de hambúrgueres, vou utilizar o food truck de hambúrguer como exemplo.

Como o próprio nome já diz, automaticamente entendemos o tipo de comida que será servida por esse veículo. Neste caso, os insumos básicos que serão necessários para a produção de um hambúrguer podem ser: pão, carne, queijo, alface, tomate, maionese, mostarda e ketchup.

Note que não estou incluindo itens como algas, salmão ou camarão, pois são insumos típicos para um food truck de comida japonesa.

Ao prestar atenção nos insumos, entendemos que serão levados apenas aqueles que forem utilizados para servir a comida. Não há razão para estocar outros itens.

E é neste momento em que podemos fazer uma comparação com a tecnologia de containers. Em um container, serão inseridos somente os insumos necessários para executar e servir a aplicação necessária.

Dessa forma, a operação é otimizada e os containers são capazes de reduzir o tamanho dos dados consideravelmente. Assim, é possível mover um container para diferentes servidores e atingir a mesma funcionalidade.

É o mesmo caso de um food truck, que pode estar em uma praça em um dia, e em um festival de música localizado em outro estado no dia seguinte, mas que sempre manterá o conteúdo e o servirá.

Existem recursos que devem ser consumidos a partir do meio onde estamos. No caso de um veículo que transporta e vende alimentos, ele poderá consumir energia elétrica do local.

Outro exemplo de recurso do ambiente utilizado e executado pelo container é o recurso computacional e bibliotecas comuns, oferecidos pelo núcleo do sistema em execução.

Escalabilidade e Orquestração

No caso do container, há diversos tipos de montagens possíveis. O Docker, tecnologia para execução de container, é a aplicação mais comum atual. Ainda assim, existem outras tecnologias para execução de containers, como o CRI-O, voltado para uma execução mais leve, principalmente quando falamos de escalabilidade.

O conceito da escalabilidade, aliás, é um pré-requisito para qualquer aplicação nos dias de hoje. É necessário ser à prova de falhas, mas onde então entra o conceito DevOps? Garantir a contínua entrega com qualidade e validações antes de dar início à produção – retomando a analogia – é como qualquer nova receita de cozinha.

Os insumos precisam ser avaliados, assim como a própria receita final, para que o food truck (ou melhor, o container) não deixe de servir a aplicação.

Existem diversas ferramentas para orquestrar containers. A mais utilizada atualmente é Kubernetes, termo que você encontrará por aí sob as mais variadas pronúncias. Uma das principais funções desta ferramenta open source é garantir que, caso a demanda de requisições seja ampliada, a execução de mais containers e a distribuição deles será realizada na mesma medida. Já pensou não precisar pegar filas em um food truck para ser atendido?

“Se algo pode dar errado, dará errado”. Refletindo sobre a lei de Murphy, o que podemos pensar que pode sair errado no caso de um food truck? Acabar o pão ou outro insumo obrigatório, por exemplo, significa paralisar o serviço. No caso de um container, isso significaria deixar de responder a aplicação.

Em casos assim, o Kubernetes remove este container que parou de responder e executa um novo para realizar o atendimento, evitando que novas conexões sejam encaminhadas para este “container sem pão”, sem o devido recurso.

Estas são algumas características de um novo mundo da tecnologia, onde pensamos em computação nativa para nuvem, integração e entrega contínua de aplicações, ambientes e aplicações escaláveis. Sem pontos de falha. Com os food trucks, ainda não temos orquestradores, mas temos várias opções de comida!

Percebeu como fica mais fácil entender uma nova tecnologia com uma analogia? Nada que um hambúrguer não consiga resolver.