Atualizando nossos sistemas operacionais para o Trusty do Ubuntu
Hora de uma atualização da engenharia! Aqui na Transloadit, somos fãs de longa data do Ubuntu. Para comprovar o que digo, veja o que encontrei durante uma mudança recente para um novo apartamento em Amsterdã:
❤️ Ubuntu
“Meu primeiro Ubuntu” 😄. Isso foi em 2005, quando a Canonical ainda disponibilizava recursos para enviar CDs do Ubuntu para o mundo todo, para quem pedisse, de graça. Acredito que era uma questão ideológica. Pessoas com internet lenta, o que na época incluía praticamente todo mundo, deveriam poder aproveitar o “Linux para seres humanos”.
Foi meu primeiro desktop fora do Windows e eu adorei. Tanto que cheguei a defender o uso do Ubuntu nos servidores da empresa de hospedagem onde eu trabalhava na época. Claro que isso foi considerado loucura. O Ubuntu era um “sistema operacional de desktop”, e não algo sério como Slackware, Gentoo ou Debian, as distros para servidores preferidas naquela época. Só demos esse passo quando o Feisty chegou, cerca de dois anos depois. Mas, a partir daí, nunca mais olhamos para trás. Datacenters com milhares de servidores rodando Feisty/Gutsy/Hardy: o Ubuntu praticamente nunca foi a causa de problemas e sempre trouxe alegria. O apt era utilizável e não era mais preciso compilar nada! 🎉
Quando criamos a Transloadit, não pensei duas vezes e começamos com a versão mais recente do Ubuntu, o Jaunty, no início de 2009. Mais tarde, no mesmo ano, migramos para o Karmic. Depois disso, concluímos que tínhamos tempo limitado para dedicar a atualizações do sistema operacional, então passamos para os ciclos de versões de suporte de longo prazo (LTS, Long Term Support), começando com o Lucid em 2010.
Embora as versões LTS do Ubuntu tenham suporte por cinco anos, atualizamos o Lucid imediatamente para seu sucessor LTS, o Precise, assim que ele foi lançado em 2012. Fizemos essa mudança por causa de problemas de compatibilidade com o kernel no EC2 na época.
Desde então, temos rodado tranquilamente no Precise. Como nosso stack é compilado do zero e é quase independente do sistema operacional, sempre conseguimos atualizar nosso software de codificação sem que essa versão do Ubuntu atrapalhasse.
Até agora.
Bibliotecas conflitantes no nosso stack
Conseguimos executar várias versões do FFmpeg (English) lado a lado, mas o ImageMagick, a ferramenta de código aberto que está no centro de muitas das operações de imagem que oferecemos, se mostrou muito mais difícil de compilar de forma isolada e com um conjunto completo de recursos.
Precisamos mesmo desse isolamento para não quebrar a compatibilidade com versões anteriores e, assim, oferecer aos nossos clientes caminhos de atualização opcionais (opt-in).
Isso pede contêineres 🐳. Com contêineres Linux, teríamos liberdade para implantar novas versões das nossas ferramentas de codificação sem interferir nas instalações existentes. Quando isso estiver pronto, será muito mais fácil para nós lançar atualizações de qualquer tipo.
Trusty
No entanto, para ter recursos de contêineres, primeiro precisávamos atualizar para a versão LTS mais recente do Ubuntu: Trusty!
Mark Shuttleworth, líder da Canonical, indicou que o foco deste ciclo de desenvolvimento seria uma versão caracterizada por
“desempenho, refinamento, manutenibilidade, dívida técnica”
e incentivou os desenvolvedores a fazer “escolhas conservadoras”.
Ou seja, algo sem graça e conservador. Exatamente o que procuramos em uma versão LTS. 😄
Sucesso
Tenho o prazer de compartilhar com você hoje que concluímos essa atualização com sucesso e que ela já enfrentou um tráfego considerável.
Aqui estão 368 máquinas Trusty processando uma fila de codificação de 2,7 TB
Olhando para o futuro
Como agora poderemos utilizar contêineres, você pode esperar que lancemos mais opções e ferramentas de conversão interessantes, em um ritmo mais rápido, sem quebrar a compatibilidade com versões anteriores.
Primeiro, vamos nos concentrar em lançar uma nova versão do ImageMagick; o trabalho nesse projeto já começou.
Como estamos caminhando para uma arquitetura baseada em contêineres, também vamos acompanhar de perto o Nomad da HashiCorp e o CoreOS. Talvez tenhamos que tomar uma decisão difícil quando a próxima versão LTS do Ubuntu for lançada. Com certeza compartilharemos nossas descobertas com você!
