Actualizando nuestros sistemas operativos a Trusty de Ubuntu
¡Es hora de una actualización de ingeniería! En Transloadit somos aficionados a Ubuntu desde hace mucho tiempo. Para respaldar esa afirmación, mira lo que encontré durante una mudanza reciente a un nuevo apartamento en Ámsterdam:
❤️ Ubuntu
«Mi primer Ubuntu» 😄. Esto fue en 2005, cuando Canonical todavía destinaba fondos para enviar CD de Ubuntu a todo el mundo a quien lo solicitara, de forma gratuita. Era algo ideológico, creo. Las personas con internet lento, que eran prácticamente todas en aquel entonces, debían poder disfrutar de Linux for Human Beings.
Fue mi primer escritorio que no era Windows y me encantó. Tanto que incluso intenté impulsar Ubuntu en los servidores de la empresa de hosting donde trabajaba en ese momento. Por supuesto, eso se consideró una locura. Ubuntu era un «SO de escritorio» y nada serio como Slackware, Gentoo o Debian, las distribuciones de servidor que se preferían en aquella época. No dimos el paso hasta que llegó Feisty, unos dos años después. Pero a partir de entonces, nunca miramos atrás. Centros de datos con miles de servidores funcionando con Feisty/Gutsy/Hardy, Ubuntu casi nunca era la causa de problemas y siempre traía alegría. ¡Apt era usable y ya no había que compilar! 🎉
Cuando pusimos en marcha Transloadit, no lo pensé dos veces y empezamos con la versión más reciente de Ubuntu, Jaunty, a principios de 2009. Más adelante, ese mismo año, pasamos a Karmic. Después de eso, decidimos que solo teníamos cierto tiempo para dedicar a las actualizaciones del sistema operativo, así que cambiamos a los ciclos de publicación Long Term Support (LTS), empezando por Lucid en 2010.
Aunque las versiones LTS de Ubuntu reciben soporte durante cinco años, actualizamos Lucid de inmediato a su sucesora LTS, Precise, en cuanto se publicó en 2012. Hicimos ese cambio por problemas de compatibilidad con el kernel en EC2 en aquel momento.
Desde entonces hemos funcionado felizmente sobre Precise. Como nuestro stack se compila desde cero y es casi independiente del sistema operativo, siempre pudimos actualizar nuestro software de encoding sin que esta versión de Ubuntu se interpusiera en nuestro camino.
Hasta ahora, eso sí.
Bibliotecas en conflicto en nuestro stack
Hemos podido ejecutar varias versiones de FFmpeg en paralelo, pero ImageMagick, la herramienta de código abierto que está en el corazón de muchas de las operaciones de imagen que admitimos, ha resultado mucho más difícil de compilar de forma aislada y con muchas funciones.
Realmente necesitamos aislamiento para no romper la compatibilidad con versiones anteriores, de modo que podamos ofrecer a nuestros clientes rutas de actualización opcionales.
Esto pide contenedores 🐳. Con los contenedores de Linux tendríamos la libertad de desplegar nuevas versiones de nuestras herramientas de encoding sin interferir con las instalaciones existentes. Una vez que tengamos esto en marcha, nos resultará mucho más fácil lanzar actualizaciones de cualquier tipo.
Trusty
Sin embargo, para contar con capacidades de contenedores, primero necesitábamos actualizar a la versión LTS más reciente de Ubuntu: ¡Trusty!
Mark Shuttleworth, líder de Canonical, indicó que el foco durante este ciclo de desarrollo sería una versión caracterizada por
«rendimiento, refinamiento, mantenibilidad, deuda técnica»
y animó a los desarrolladores a tomar «decisiones conservadoras».
Así que aburrida y conservadora. Exactamente lo que buscamos en una versión LTS. 😄
Éxito
Me alegra compartir contigo hoy que hemos desplegado con éxito esta actualización y que ya ha recibido un tráfico considerable.
Aquí tienes 368 máquinas con Trusty devorando una cola de encoding de 2,7 TB
Mirando hacia el futuro
Como ahora podremos utilizar contenedores, puedes esperar que lancemos más opciones y herramientas de conversión interesantes, a mayor ritmo, sin romper la compatibilidad con versiones anteriores.
Primero nos centraremos en publicar una nueva versión de ImageMagick; el trabajo en este proyecto ya ha comenzado.
A medida que avanzamos hacia una arquitectura basada en contenedores, también seguiremos de cerca Nomad de Hashicorp y CoreOS. Puede que nos enfrentemos a una decisión difícil cuando se publique la próxima LTS de Ubuntu. ¡Sin duda compartiremos contigo lo que descubramos!
