Existe una multitud de distribuciones de Linux. Los creadores de las mismas deciden el público que quieren atacar. Por ejemplo, si se trata de principiantes, hay distribuciones que hacen la vida fácil a quien comienza.
En otros casos hay distribuciones específicas para toda clase de usuarios, hasta los más expertos. Bottlerocket, de Amazon, es un distribución mínima de Linux que intenta el mismo mercado al que se dedica Google: un sistema operativo optimizado en contenedores.
Un Linux basado en contenedores
Un contenedor es una unidad estándar de software, que empaca todo el código y sus dependencias de manera que las aplicaciones contenidas corren rápida y fiablemente entre entornos de cómputo que incluso pueden ser diferentes.
Así, un contenedor tiene código, sistema de ejecución en tiempo real, herramientas del sistema, bibliotecas del sistema y los elementos de configuración.
Amazon indica que con este software mínimo, los usuarios pueden usar orquestadores (contenedores), para manejar las actualizaciones del sistema operativo con la mínima interrupción, resultando el un costo operativo menor para las aplicaciones que trabajan en los contenedores.
De acuerdo con el gigante de los libros, la mayoría de los contenedores corren en sistemas operativos de propósito general, que pueden soportar aplicaciones que pueden venir en diferentes formatos, incluso contenedores a su vez.
Las actualizaciones a estos sistemas de propósito general tienen un inconveniente importante: hay que actualizar el sistema paquete por paquete, y esto incluye las dependencias muchas veces complejas entre los paquetes, lo que en general produce errores. Esto es un problema para poder automatizar las actualizaciones.
La razón de existir de Bottlerocket
Por ello, dice Amazon, Bottlerocket puede ser aplicado e incluso regresar al punto anterior en un solo paso, lo que hace más fácil la automatización. El proceso de actualización se basa en un proyecto de código abierto, el cual está hospedado por la Cloud Native Computing Foundation.
El marco de trabajo de la actualización se basa en el tener dos particiones idénticas. Las actualizaciones se hacen entonces en la partición inactiva, y una vez que ésta se completó, se pasa a la otra partición para así actualizar. Nada de magia pues. Simplemente se hace la actualización en una partición y si funciona, se hace el mismo proceso en la segunda, que no es más que copia de la primera.
Hay que señalar que si la partición no arranca (falla), se vuelve a cambiar de partición, lo que permite minimizar las fallas de las actualizaciones y regresar al punto antes de que estas se hubiesen producido. Por ejemplo, Windows permite regresar al punto anterior antes de que se hagan las actualizaciones del sistema.
Este mecanismo es muy útil para cuando algo falla en las mejoras del sistema, porque es fácil y automático regresar al punto donde todo funcionaba. Y considerando la complejidad actual de los sistemas, esta es la mejor solución posible, al menos por ahora.
Bottlerocket ses un proyecto de código abierto, como lo es todo Linux. El código fuente está en GitHub.