Amazon Web Services ha creado una segunda distribución de Linux.
AWS ya ofrece Amazon Linux, una distribución de uso general que actualmente se encuentra en su segunda edición y que se puede ejecutar en un contenedor Docker o con los hipervisores Linux KVM, Microsoft Hyper-V y VMware ESXi. Se dice que esta distribución está optimizada para ejecutarse dentro de la nube de AWS.
Ahora, el gigante de Internet ha creado Bottlerocket, que avanza como un excelente sistema operativo de código abierto en el que ejecuta contenedores junto con su motor de orquestación preferido.
AWS se ha autocuestionado por Bottlerocket desde marzo de 2020 cuando reconoció que no es el primero en hacer un Linux para contenedores y citó CoreOS, Rancher OS y Project Atomic como inspiración. Dijo que su sistema operativo es «el resultado de las lecciones que hemos aprendido durante mucho tiempo al ejecutar servicios de producción a escala en Amazon, y está influido por las lecciones que hemos aprendido durante los últimos seis años sobre cómo ejecutar contenedores».
Esas lecciones han llevado a AWS a lanzar un sistema operativo sin nada más que lo que se necesita para ejecutar contenedores, un diseño que, según la compañía, reduce su superficie de ataque.
Estar diseñado específicamente para ejecutar cosas dentro de contenedores, en lugar de ejecutar aplicaciones no contenidas en contenedores, significa que se instalan menos paquetes en el sistema subyacente, lo que según AWS es algo bueno porque hace la vida más fácil mantener el sistema operativo actualizado y también reduce el posibilidad de problemas causados por dependencias. Básicamente, todo se ejecuta dentro de contenedores separados y, al parecer, el sistema base es bastante simple.
«En lugar de un administrador de paquetes que actualiza piezas de software individuales, Bottlerocket descarga una imagen completa del sistema de archivos y se reinicia en ella», dijo AWS. «Puede retroceder automáticamente si ocurren fallas de arranque, y las fallas en la carga de trabajo pueden desencadenar retrocesos manuales».
Por encima del kernel, el sistema operativo se escribió en gran medida en Rust para aprovechar las características de ese lenguaje que reducen la probabilidad de accesos inseguros a la memoria, condiciones de carrera entre subprocesos, etc. SELinux está en su lugar para aprovechar sus características de aislamiento por encima y más allá de lo normal.
La distribución incluye el objetivo de verificación de Device-mapper (dm-verity), que AWS describió como «una función del kernel de Linux que proporciona verificación de integridad para ayudar a evitar que los atacantes persistan en amenazas en el sistema operativo, como sobrescribir el software central del sistema». También está presente eBPF [PDF], que permite que los módulos del kernel sean reemplazados por programas más seguros a nivel de kernel para operaciones de sistema de bajo nivel.
AWS dijo que Bottlerocket «aplica un modelo operativo que mejora aún más la seguridad al desalentar las conexiones administrativas a los servidores de producción» y es «adecuado para grandes entornos distribuidos en los que el control sobre cualquier host individual es limitado».
Para mantener las cosas accesibles para los administradores de sistemas, hay disponible un contenedor de administración. Pero AWS no cree que a menudo deba trabajar dentro de Bottlerocket. «El acto de iniciar sesión en una instancia individual de Bottlerocket está destinado a ser una operación poco frecuente para la depuración avanzada y la resolución de problemas».

AWS ha hecho que la distribución sea de código abierto bajo la licencia Apache 2.0 o MIT (usted puede elegir) y lo puso todo en GitHub. La gerente de producto senior de AWS, Samartha Chandrashekar, dijo: «Estamos deseando construir una comunidad alrededor de Bottlerocket en GitHub y agradecemos sus solicitudes de funciones, informes de errores o contribuciones».
Será interesante ver si una comunidad se coagula en torno al sistema operativo dado que esfuerzos similares como PhotonOS de VMware no han tenido éxito e incluso CoreOS fue eliminado por RedHat. ®