Canonical ha presentado a Snappy Ubuntu Core, un nuevo Spin de Ubuntu que se une al montón de sabores que ya tiene, oficiales y no oficiales. Snappy Ubuntu Core es un subset de elementos de Ubuntu, algo muy minimalista pero que se caracteriza por no utilizar apt-get para realizar actualizaciones o el manejo de paquetes, en su lugar usa contenedores.
Los contenedores en si son archivos .tar.gz que contienen todo lo necesario para que una app corra, algo como lo que actualmente hace OS X. Estos contenedores contienen un par de archivos que describen al contenedor.
Esto de los contenedores, como ya decíamos, no es algo nuevo, es algo que en otros sistemas operativos ya se ha utilizado desde hace rato, Android hace uso de ellos, OS X también, Ubuntu ahora lo hace en Ubuntu Phone, pero ahora lo están implementando en el sistema operativo general.
Una de las ventajas de usar contenedores es que se resuelve uno de los problemas mas grandes que los desarrolladores de apps propietarias tienen, las dependencias. Si cada app incluye sus propias dependencias entonces no va a importar en que versión del sistema operativo la instalemos, no será necesario recompilar una versión de la app para cada versión, solo una y listo.
Una de las desventajas es que la aplicación es tremendamente mas grande, puesto que muchas de las dependencias se repetirán en paquetes, lo que significa que muchas veces, una app cargara su propia versión de una libreria, mientra que otra app hará lo mismo, con versiones incluso duplicadas de la misma librería en disco y en memoria.
¿Y si todas las instancias en la nube pudieran actualizarse con la misma precisión con la que lo hacen en tu teléfono móvil? ¿Y si las aplicaciones estuvieran aisladas entre sí de forma que una aplicación no podría romper otra? […] Cuando decidimos desarrollar Ubuntu Phone decidimos que íbamos a subir el listón en cuanto a la seguridad en el mercado móvil. Hoy, esa misma tecnología llega a la nube en forma de una nueva imagen de Ubuntu Core llamada “Snappy”.
– Mark Shuttleworth, fundador de Canonical Ltd.
Una ventaja mas que nos trae el uso de estos contenedores y gracias al uso de Docker, es el hecho de que las actualizaciones sean transaccionales, es decir, si una actualización no se realizó correctamente, entonces se puede hacer un roll back al contenedor anterior, impidiendo que el sistema quede en un estado incosistente o roto.
Antes de cada actualización snappy hace un respaldo de todos los datos de la aplicación y si falla la actualización la versión anterior es restaurada. Además Snappy y las applicaciones están protegidas por AppArmor, esto quiere decir que cada app está aislada una con otra, cada app es de solo lectura, esto garantiza la seguridad e integridad del sistema.
La finalidad del proyecto son actualizaciones mas rápidas, mas seguras y fiables.El primer paquete snappy que van a lanzar será Docker, un ejemplo de distribución transaccional de aplicaciones. De momento, podremos encontrar esta edición snappy de Ubuntu Core en Microsoft Azure, pero también podremos probarlo de forma local mediante KVM. Tened en cuenta que de momento está en estado beta.