Revisión: las mejores distribuciones de Linux para Docker y contenedores

Durante los últimos seis meses, he revisado cinco distribuciones mínimas de Linux que están optimizadas para ejecutar contenedores: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host y VMware Photon OS. Genéricamente conocidos como "sistemas operativos de contenedor", estas distribuciones de Linux diseñadas específicamente y reducidas no son la única forma de ejecutar contenedores en producción, pero proporcionan una base que no desperdicia recursos en nada más que en el soporte de contenedores.

El estado de la industria con los sistemas de implementación de contenedores es muy parecido a los primeros días de las distribuciones de Linux. Tiene un elemento clave, en este caso el contenedor Docker, que está rodeado por una serie de componentes del ecosistema en competencia. Así como las distribuciones tradicionales de Linux incluían diferentes administradores de paquetes, entornos de escritorio, utilidades del sistema, servicios y aplicaciones, la mayoría de las distribuciones de contenedores combinan y combinan varios componentes para crear lo que consideran una solución óptima. Tomemos, por ejemplo, la configuración distribuida y el descubrimiento de servicios. Hay varias soluciones para esto, como Etcd, Consul y ZooKeeper.

Cada distribución tiene un enfoque diferente sobre qué incluir en la pila. En un extremo, hay distribuciones diseñadas para admitir solo los niveles más altos de la pila, como CoreOS Container Linux y Red Hat Project Atomic. Gran parte de la funcionalidad se ha colocado en la capa de administración propietaria que hay pocas esperanzas de usar el sistema operativo para cualquier otra cosa. Otras distribuciones, como RancherOS y VMware Photon OS, brindan mayor flexibilidad y admiten múltiples componentes del ecosistema y sistemas de orquestación. Estos brindan a los administradores una buena manera de experimentar y potencialmente evitar el bloqueo del proveedor.

Linux alpino

Alpine Linux, el sistema operativo subyacente para muchas imágenes oficiales de Docker, es una excelente opción para la tarea. Con tan solo cinco megabytes de tamaño, Alpine Linux está en el extremo opuesto del espectro de las distribuciones completas de Linux de hace unos años, que competían con Solaris y estaban destinadas a ejecutarse en sistemas de hardware masivos. Esta nueva generación de Linux está diseñada para ejecutarse en hardware integrado y consumir recursos mínimos, lo que la convierte en una opción perfecta para contenedores.

El legado de Alpine Linux como sistema operativo integrado fue evidente durante mi revisión. Muchas de las opciones de configuración predeterminadas para los sistemas integrados, y la documentación en muchas áreas era escasa o inexistente. Claramente, un sistema diseñado y utilizado principalmente por piratas informáticos, Alpine Linux requerirá que las empresas superen algunos obstáculos para crear sus aplicaciones.

Las implementaciones de producción de Alpine Linux disfrutarán de varias ventajas, incluido un inicio rápido, una huella minimalista y una postura segura por defecto que no se encuentra en ningún otro lugar. Todo, desde los binarios del sistema hasta las bibliotecas C, está diseñado para implementaciones pequeñas, rápidas y seguras. No hay hinchazón aquí.

La administración de Alpine Linux es diferente a los sistemas Linux tradicionales y tomará algún tiempo aprender. La instalación y la gestión de paquetes son únicas incluso entre los sistemas operativos de contenedores, aunque bien pensadas. Si su taller de desarrollo tiene desarrolladores por encima del promedio que están dispuestos a hacer la inversión, Alpine Linux proporcionará una base sólida, estable y segura para las aplicaciones durante mucho tiempo.

Contenedor Linux de CoreOS

La pila de contenedores de CoreOS se basa en Etcd para almacenamiento distribuido y descubrimiento de servicios, Flannel para redes y Kubernetes para la orquestación de contenedores, y admite su propio formato de contenedor, rkt (Rocket), además de Docker. Rocket fue un intento de un formato de contenedor competitivo para abordar las deficiencias en el formato de Docker alrededor de 2015, pero con esas deficiencias abordadas, Rocket no ha tenido mucha aceptación.

Vídeo relacionado: ¿Qué es Kubernetes?

En este video de 90 segundos, conozca Kubernetes, el sistema de código abierto para automatizar aplicaciones en contenedores, de uno de los inventores de la tecnología, Joe Beda, fundador y CTO de Heptio.

CoreOS, como Project Atomic, no tiene miedo de divergir radicalmente del Linux tradicional. Al igual que el sistema operativo contenedor de Red Hat, CoreOS Container Linux crea un sistema de archivos en su mayoría inmutable, pero lo hace con un sistema de partición de disco inspirado en el sistema operativo Chromium de Google. Lo que hace esto es preservar el antiguo sistema de archivos en una partición, lo que significa que las reversiones son siempre seguras y rápidas.

Aunque la documentación es bastante buena y completa, la instalación me pareció algo engorrosa, ya que implica un proceso de dos pasos para derivar el archivo de configuración. Sin embargo, una vez instalado, CoreOS ofrece actualizaciones continuas "sin tiempo de inactividad", una característica que es posible gracias a su diseño de partición de disco único. CoreOS ha trabajado mucho aquí y la compañía ofrece varias opciones de mantenimiento que se adaptarán a la mayoría de las organizaciones, incluida la posibilidad de optar por no participar.

CoreOS, algo así como Project Atomic, es una decisión de todo o nada. Separar las piezas y usar el sistema operativo subyacente para construir su propia infraestructura de contenedores no es realmente una opción debido a todas las decisiones de diseño arquitectónico integradas en la plataforma. Si está dispuesto a aceptar esas decisiones y pagar por la distribución comercial de Kubernetes de CoreOS, Tectonic, sin duda podría realizar un trabajo muy pesado.

Rancher Labs RancherOS

RancherOS de Rancher Labs es un sistema operativo Linux compuesto enteramente por contenedores. Incluso el proceso de inicio (PID 1) es un contenedor de Docker. Esto significa que no es necesario un sistema de gestión de paquetes. Las actualizaciones (y degradaciones) del sistema operativo se gestionan con Docker, como cualquier otro contenedor.

Aunque este enfoque es tan radical como las decisiones arquitectónicas tomadas en algunas de las otras distribuciones, como Project Atomic y CoreOS, el resultado es una simplicidad sorprendente. Aunque aprender una administración de sistema completamente nueva parece abrumador al principio, debe saber que Docker administra contenedores de todos modos, así que ¿por qué no usar el mismo sistema para ambos?

RancherOS parece estar madurando rápidamente. En mi revisión, encontré que faltaba un poco de documentación, pero cualquier desarrollador o administrador familiarizado con los contenedores de Docker ya conocerá la mayor parte del sistema. RancherOS ocupa poco espacio (20 MB) y hace un uso eficiente de los recursos. Aunque las líneas entre Rancher, el sistema de administración de contenedores y Rancher, el sistema operativo, son algo borrosas, el sistema de administración de contenedores es gratuito y de código abierto, por lo que no hay razón para intentar implementar el suyo. Las organizaciones que necesitan acceso al código fuente no deberían buscar más.

La plataforma Rancher es compatible con casi todo el ecosistema de herramientas para la gestión de contenedores, incluidos Docker Swarm, Kubernetes y Mesos, y está avanzando rápidamente. Aunque es radicalmente diferente al UNIX tradicional, RancherOS parece haberse adherido más de cerca a la filosofía básica de UNIX que las otras distribuciones del SO contenedor: herramientas simples que operan juntas de una manera elegante.

Proyecto Red Hat Atomic

Project Atomic de Red Hat está firmemente en el campo de la orquestación de servicios de Kubernetes. Por lo general, este tipo de implementación está orientada a escenarios de alta disponibilidad a gran escala. La desventaja es que, esencialmente, tienes que "hacer lo que te dicen" y diseñar la aplicación por convención.

En el cuadro encontrará Flannel para redes, Etcd para almacenamiento distribuido de valor clave y OSTree para administración de host. OSTree es una forma relativamente nueva de implementar un sistema operativo a escala de manera confiable y distribuida. Atomic combina OSTree con un nuevo administrador de paquetes RPM para crear RPM-OSTree, que ofrece un sistema de archivos casi inmutable.

Encontré que Project Atomic es un desafío. Es muy ambicioso y se mueve rápido, con muchas partes móviles. RHEL, CentOS, Fedora, SELinux, Systemd, un conjunto de comandos personalizado "Docker" para controlar el host subyacente ... todos están en la mezcla, y la documentación es desorganizada y confusa. Además, en mi pequeño clúster, sin Chef, Salt o Puppet, tuve que configurar manualmente cada nodo.

La conclusión es que Project Atomic todavía necesita algo de tiempo para hornearse. Si la visión se hace realidad, entonces puede convertirse en el estándar del futuro, aunque no para los centros de datos con cientos de nodos sino miles o decenas de miles. En este sentido, la visión parece más cercana a la de Mesos que a un sistema típico de despliegue de contenedores. Si su empresa vive y respira el ecosistema de Red Hat y planea quedarse allí, probablemente valga la pena comenzar con Project Atomic.

SO VMware Photon

Photon OS de VMware es un host de contenedor Linux mínimo diseñado para ocupar un espacio reducido y adaptado a los hipervisores de VMware. Como tal, Photon OS solo se ejecuta en entornos virtuales; la implementación en hardware físico no es posible. Photon OS está personalizado para facilitar la administración de contenedores, pero no tan radicalmente como Atomic o CoreOS. Photon OS es más un paso evolutivo.

Según mis pruebas, Photo OS cumple sus promesas en el entorno virtual de VMware. (Photon OS también puede ejecutarse en otros hipervisores, así como en las nubes de Google y Amazon). Debido a que Photon OS puede hacer suposiciones sobre el hardware (virtual), el ecosistema se parece mucho a Linux estándar, lo que hace que la curva de aprendizaje sea menos empinada. Las redes y el almacenamiento son compatibles con Systemd, y hay una variedad de opciones documentadas para las redes de contenedores. La documentación de Photon OS puede ser la mejor entre los productos revisados.

VMware está tomando la iniciativa en la producción de contenedores para entornos tradicionales, y esto tiene sentido cuando se piensa en ello. ¿Con qué frecuencia se le ha pedido que describa la diferencia entre un contenedor y una máquina virtual? Con Photon OS, pronto no habrá ninguna diferencia: los contenedores serán simplemente una máquina virtual liviana, implementada y administrada con las mismas herramientas. Photon OS es compatible con prácticamente todas las piezas principales del ecosistema de contenedores: contenedores Docker y Rocket, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 y más.

De todas las distribuciones que revisé, VMware Photon OS parece ser la más visionaria y actualmente la más completa y utilizable. Si usted es un taller de VMware que está explorando la contenedorización, no pensaría en considerar nada más. Si no es una tienda de VMware, aún vale la pena echarle un buen vistazo a Photon OS.

Comparación de sistemas operativos de contenedores

Alpine Linux sustenta la mayoría de las imágenes de Docker que existen. Perfecto para aplicaciones integradas, Alpine Linux no debe considerarse una forma de ejecutar contenedores. En cambio, en cierto modo, Alpine Linux es el contenedor. Los desarrolladores familiarizados con la creación de aplicaciones en Alpine Linux escribirán mejores aplicaciones de contenedor.

CoreOS, uno de los primeros sistemas operativos de contenedores, adopta la pila de tecnología de Google. Ofrece una forma confiable, aunque obstinada, de administrar la infraestructura de contenedores. Si bien CoreOS hace que muchos de los componentes estén disponibles como código abierto, la complejidad de aprender una pila tan grande significa que los usuarios deberán comprar el sistema de orquestación patentado de Techtonic para implementaciones de producción. Si el dinero no es un problema y necesita implementar aplicaciones del tamaño de Google, CoreOS es una opción lógica.

RancherOS son contenedores puros. Si va a implementar su propia infraestructura de contenedores, o si desea una pila mínima de administración de contenedores, RancherOS es el lugar para comenzar. Con herramientas de programación y orquestación de código abierto como Docker Swarm, Kubernetes y Mesos, todas disponibles de forma gratuita, la pila de Rancher atraerá a las empresas orientadas al código abierto y que lo hagan usted mismo.

El Proyecto Atómico de Red Hat es un proyecto general que está rediseñando la forma en que las empresas implementan la infraestructura. Este ambicioso proyecto podría cambiar la forma en que las empresas piensan sobre la implementación de aplicaciones, pero el camino es largo. Project Atomic se adapta mejor a los primeros usuarios con una gran inversión existente en tecnologías Red Hat.

Photon OS de VMware lleva la tecnología y la experiencia de gestión de máquinas virtuales de ese proveedor a los contenedores. Photon OS se implementa como una máquina virtual y se administra con herramientas tradicionales de VM. VMware, tal vez viendo la escritura en la pared para las máquinas virtuales tradicionales, ha adoptado con entusiasmo la tecnología de contenedores y está avanzando rápidamente en el estado del arte. Si ahora tiene una tienda de VMware, tendrá dificultades para encontrar una plataforma de contenedores mejor que Photon OS.

Lea las reseñas de contenedores de Linux: 

  • Revisión: Alpine Linux está hecho para Docker
  • Revisión de CoreOS: Linux para contenedores y Kubernetes
  • RancherOS: un Linux más simple para los amantes de Docker
  • Revisión: Red Hat hace Docker por las malas
  • Revisión: Photon OS de VMware brilla para los contenedores Docker