Porque tens de te tornar especialista em containers
Os containers estão na moda. Será isso razão suficiente para te especializares em tal coisa? É claro que é sempre interessante estares a par das tecnologias mais recentes. Mas quando se trata de containers, há argumentos adicionais que justificam atenção.
1. Máquinas virtuais
Se queres seguir o mundo da tecnologia de perto, não podes ignorar os containers. Podes até pensar que, hoje em dia, toda a gente desenvolve aplicações nativas da cloud com os microsserviços em mente. Na prática, claro, não é bem assim. A velha e fiel máquina virtual está longe de estar morta e tem vantagens. Ainda assim, há benefícios em tornares-te especialista em containers.
Primeiro, vamos ver porque é que os containers são necessários. No início, havia o servidor físico, com um sistema operativo e uma aplicação que o acompanhava. Esta abordagem era suficiente até a lei de Moore ter feito com que a capacidade de processamento até dos servidores mais modestos começasse a exceder as exigências de muitas aplicações.
No início da década de 2000, a solução surgiu com a virtualização. A tecnologia permite-te executar vários computadores virtuais num servidor físico. Cada máquina virtual (VM) tem o seu próprio sistema operativo com uma aplicação. As VMs tornaram-se agora uma commodity.
2. Leves e flexíveis
Os containers vão um passo mais além. Uma VM tem de incluir um computador digital com o seu próprio sistema operativo e chega rapidamente a vários gigabytes, mesmo quando tem apenas uma aplicação simples a ser executada. O container resolve esse problema criando uma aplicação que apenas tem os componentes do SO que são necessários para executar a aplicação. Por isso, um container pesa apenas uns poucos megabytes.
Já conheces as vantagens: por definição, estas coisas têm uma app e as dependências relacionadas a bordo, o que as torna portáteis. Os containers podem ser iniciados muito facilmente e são pequenos, o que beneficia a escalabilidade. Além disso, encorajam o trabalho com microsserviços. Por isso, já não tens de desenvolver uma aplicação monolítica e enorme. Pelo contrário, constróis uma aplicação de vários componentes que são executados de forma individual em containers. Estes componentes podem ser facilmente processados e atualizados. Isso traz um bónus: se algo correr mal com um componente, toda a aplicação subjacente não fica offline.
3. A desvantagem
Então porque é que não está já toda a gente a usar containers? Há duas grandes desvantagens que impedem uma adoção mais vasta, e a segunda torna-a muito atrativa para os programadores que querem apostar mais a fundo nesta tecnologia.
A primeira desvantagem é técnica e está relacionada com a segurança. Diversas VMs num servidor estão quase totalmente separadas umas das outras. Na prática, as aplicações de duas empresas diferentes podem ser executadas na cloud em VMs do mesmo servidor físico sem qualquer risco. Estas têm o seu próprio SO e comunicam com a sua própria versão virtual do hardware subjacente.
Os containers têm, reconhecidamente, as suas próprias dependências a bordo, mas partilham um sistema operativo num servidor. Como o SO é instalado apenas uma vez, isto torna o container muito leve e portátil, mas também implica, em teoria, um risco de segurança. Quem conseguir mexer no SO em que os containers estão a ser executados pode, teoricamente, invadir todos os containers.
4. Desvantagem ou vantagem?
A segunda desvantagem é prática: os containers são relativamente recentes e poucas pessoas nas TI são verdadeiras especialistas nesta área. Por isso, um programador com experiência em desenvolvimento nativo da cloud com containers é um ser muito raro. As organizações que pretendem abraçar os containers deparam-se com uma escassez de pessoal qualificado.
Uma organização que queira converter a infraestrutura herdada em aplicações container úteis e à prova de futuro, terá falta de especialistas ao seu dispor. E como os perfis adequados são raros, fazem-se pagar bem. Os salários são mais elevados e as aplicações acabam por ser um pouco mais caras. Esse detalhe financeiro, combinado com o afunilamento de disponibilidades, impede uma adoção em larga escala.
Irritante para as empresas, útil para ti. Quem tiver as qualificações certas tem um perfil muito popular, até entre profissionais de TI que já são bastante bem cotados. Colocando de parte todas as outras vantagens e desvantagens dos containers, esse é o principal argumento para melhorares os teus conhecimentos sobre a matéria ou para te manteres a par do que se passa.