A hora e a vez do Software Livre
Existem alguns programas que são fundamentais para seus usuários; tão fundamentais que se tornam a razão para a escolha por esta ou aquela plataforma. O VisiCalc foi a grande alavanca para o sucesso do Apple II, assim porquê o Lotus 1-2-3 para o do IBM-PC e o PageMaker para o do Macintosh. Pode-se expor que o email, embora não seja exatamente um programa, teve esse mesmo papel para a explosão da Internet (e das vendas de computador em universal) nos anos 90, assim porquê o aproximação traste à Internet para a popularização dos dispositivos móveis inteligentes na última dez.
Durante muito tempo a comunidade de software livre sonhou com a adoção em tamanho do software livre em sistemas desktop, o que não aconteceu. Pode-se expressar que isso mudou com o Android, mas na verdade o GNU/Linux já teve sua ocupação-chave, normalmente chamada de LAMP: a combinação Linux + Apache + MySQL + PHP, que está na base de inúmeros sítios web e sistemas de gestão de texto (estima-se que o servidor web apache seja utilizado por 60% dos sítios da Internet). Graças à sua popularidade, essa combinação é há muito tempo oferecida porquê resultado por diversas empresas de hospedagem web a preços baixos. No entanto, talvez esse tenha sido somente o prelúdio de um pouco muito maior.
Tradicionalmente, servidores (ou seja, as máquinas por trás tanto de sítios web porquê o facebook quanto de sistemas bancários ou de telecomunicações) são grandes máquinas com vários programas instalados que realizam as tarefas necessárias para prover os serviços esperados. É o que ocorre com os servidores das empresas de hospedagem, por exemplo. Esses diversos programas precisam estar adequados ao envolvente do servidor, e é trabalho dos administradores de sistema realizar os ajustes necessários ao envolvente e escolher as versões certas dos programas para prometer que todos esses elementos trabalhem corretamente nesse envolvente compartilhado. Embora haja várias ferramentas para automatizar esse processo, boa troço dele é feita manualmente; em caso de falhas, substituir um servidor por outro envolve ou restaurar uma reprodução backup cegamente, sem adequações ao novo equipamento, ou um volume razoável de reconfiguração manual.
Mas a termo da tendência na computação hoje é “nuvem”, e a computação em nuvem pressupõe a fácil substituição de um sistema por outro igual. Isso, por sua vez, tem incentivado uma mudança nas técnicas de programação com vistas a separar o software em partes independentes: o programa em si, sua forma e os dados que ele processa. Com essa separação, implantar uma novidade versão do programa pode ser feito com facilidade, já que a feitio e os dados não são afetados. Ao mesmo tempo, têm sido criadas ferramentas para governar a maneira de maneira automática, o que possibilita modificar os sistemas em realização sem mediação manual.
Um mecanismo que tem ganhado muita popularidade nesse contexto é o sistema de contêineres: eles permitem implementar, em uma mesma máquina, vários ambientes diferentes e isolados, cada um específico para uma determinada ofício, o que simplifica muito a instalação e atualização dos programas. Contêineres não são um invento recente; no entanto, nunca alcançaram grande popularidade porque, quando surgiram, havia pouca justificativa para seu uso. Hoje, porém, a união da computação em nuvem e de contêineres deu origem a um universo de ferramentas extremamente sofisticadas que promete mudar drasticamente não só a técnica da programação, mas também a gestão do processo de programação, as políticas de manutenção de sistemas em funcionamento e o próprio envolvente dos datacenters. Essa mudança de paradigma ganhou o nome de “DevOps”, sugerindo o término da elevação entre desenvolvedores e os responsáveis pela “operação” (manutenção e gestão do sistema).
A troço interessante disso tudo é que praticamente todos os sistemas de computação em nuvem atuais são baseados em GNU/Linux, tanto na infraestrutura quanto nos sistemas que são executados sobre ela, e praticamente todas as ferramentas para gestão de contêineres são livres e voltadas para as capacidades disponíveis no envolvente GNU/Linux. Ferramentas livres porquê “OpenStack”, “Docker”, “Kubernetes” e “OpenShift” foram material em inúmeras sessões durante o último Red Hat Summit e, segundo os representantes de empresas porquê Dell, Cisco e Microsoft, estão na agenda meão dessas e de outras grandes empresas. E o consenso de todas elas é que esse novo paradigma da computação será viabilizado graças ao Software Livre. Ao que parece, a nuvem é realmente a killer app do software livre.
* Nelson Lago é gerente técnico do CCSL-IME/USP
Com informações de (Nascente):Código Aberto