Un contenedor es más liviano que una máquina virtual (VM) porque cada VM lleva su propio sistema operativo invitado (OS), mientras que un contenedor comparte un SO host con otros contenedores. Sin embargo, por esa misma razón, los contenedores son menos estables que las VM. Cuando se ejecuta una gran cantidad de contenedores simultáneamente, algunos de ellos pueden fallar debido a recursos insuficientes del SO. Además, otros problemas que afectan al SO host pueden comprometer la confiabilidad y la estabilidad del contenedor.
Aquí se utiliza como ejemplo Kubernetes (K8s), la plataforma de contenedores más común en la industria. Kubernetes es un orquestador de contenedores de código abierto que automatiza varios procesos manuales involucrados en la implementación, la gestión y el escalado de aplicaciones en contenedores.
Como el desarrollo de software de código abierto no está orientado a las empresas, la mayoría de este software no puede ofrecer la confiabilidad y facilidad de mantenimiento que requieren las aplicaciones de clase empresarial. Kubernetes no es una excepción.
A pesar de su gran popularidad, esta plataforma de contenedores adolece de un grave defecto que puede provocar muchas dificultades a la hora de implementarla en los sistemas informáticos de las empresas. Este defecto es la falta de estabilidad operativa. A pesar de las claras deficiencias en materia de estabilidad operativa, las plataformas de contenedores como Kubernetes no ofrecen ninguna solución eficaz. Por este motivo, tan pocos clientes utilizan plataformas de contenedores como infraestructura para sus servicios principales.
¿Cómo cubre el almacenamiento profesional las deficiencias en confiabilidad de los contenedores?
Aunque Kubernetes no ha proporcionado una solución, el anfitrión del proyecto Kubernetes, Cloud Native Computing Foundation (CNCF), tomó medidas.
CNCF cambió su enfoque de la tecnología de contenedores al almacenamiento, con la esperanza de utilizar capacidades de almacenamiento profesionales, como alta disponibilidad y recuperación ante desastres, para compensar las desventajas de la plataforma de contenedores. Esto culminó con la introducción del innovador complemento Container Storage Interface (CSI) en el lanzamiento de Kubernetes 1.9.
Con CSI, los datos de las aplicaciones en contenedores se pueden guardar en un almacenamiento externo de alta fiabilidad y protegerse mediante el uso de métodos como instantáneas y clones. De esta manera, incluso si un contenedor falla, sus datos se pueden mantener intactos. Una vez que las aplicaciones en contenedores se restauran después de una falla, pueden seguir accediendo a los datos y evitar problemas inesperados que surjan de la pérdida de datos.
La introducción de CSI indica que la arquitectura de almacenamiento y computación desacoplada se reconoce oficialmente como la arquitectura estándar para contenedores, lo que hace que el almacenamiento profesional sea una de las mejores opciones como base para los datos de contenedores.
¿Por qué NAS?
A medida que la tecnología de contenedores madura, un número cada vez mayor de aplicaciones empresariales están adoptando la contenedorización. Para que una plataforma de contenedores sirva como infraestructura para los servicios básicos de una empresa, debe ser capaz de proporcionar una continuidad de servicio excepcional, un rendimiento excelente y una gestión conveniente. Para cumplir con los requisitos anteriores, la plataforma de contenedores debe, como mínimo, superar las siguientes deficiencias:
Capacidades de recuperación de errores insuficientes: la plataforma de contenedores no puede recuperarse automáticamente de un error en un nodo, un almacenamiento o un sitio. Cuando un contenedor ejecuta aplicaciones con estado críticas para la misión, como una base de datos, la disponibilidad de la aplicación puede verse comprometida.
Riesgos de inconsistencia de datos: la mayoría de las aplicaciones en contenedores utilizan una arquitectura distribuida, lo que puede generar riesgos de inconsistencia de datos. Sin embargo, la plataforma de contenedores no ofrece una solución correspondiente.
Falta de agilidad en el aprovisionamiento de almacenamiento: la mayoría de las aplicaciones contenedorizadas son reconstruidas por microservicios y están compuestas por pequeños programas de aplicación transportados por docenas de contenedores. Por lo tanto, iniciar una aplicación significa iniciar docenas de contenedores simultáneamente y asignar los recursos de almacenamiento respectivos. Sin embargo, en la mayoría de los casos, la capacidad del sistema de almacenamiento para asignar recursos en lotes es insuficiente para los contenedores.
Huawei se ha comprometido a abordar esos desafíos y a construir una base óptima de almacenamiento en contenedores para los servicios básicos de las empresas. En la era de la nube nativa, Huawei se ha decidido por el almacenamiento conectado a la red (NAS), un protocolo de almacenamiento de archivos creado hace 40 años. Después de una amplia cooperación con clientes y socios, Huawei ha explorado una solución de almacenamiento en contenedores basada en NAS. Las razones para elegir NAS como base de almacenamiento en contenedores son las siguientes:
1. Fácil de usar con diversas funciones: se puede acceder fácilmente a los recursos de almacenamiento NAS mediante el montaje directo. Además, NAS ofrece varias funciones (como multiusuario, cuotas y QoS) que son necesarias para los servicios en la nube, lo que elimina la necesidad de una construcción adicional y reduce la complejidad del sistema. NAS también ofrece varias funciones de cumplimiento de seguridad como protección contra ransomware, antivirus y auditorías de registros, todas ellas fundamentales para controlar los riesgos de manera eficaz. La simplicidad es una razón clave para la popularidad de las plataformas de contenedores, por lo que el almacenamiento en contenedores también debería ser simple.
2. Uso compartido de datos y amplia compatibilidad: a diferencia del almacenamiento SAN, NAS está diseñado para permitir que varios servidores compartan y accedan a los mismos datos. Aparte de las bases de datos, la mayoría de las aplicaciones en contenedores requieren el uso compartido de datos. Por ejemplo: las aplicaciones web requieren varios servidores para compartir recursos de páginas web; las aplicaciones de análisis de registros requieren recursos de registro; y las aplicaciones de integración continua requieren recursos de código. Además, a excepción de algunos programas comerciales convencionales, pocas aplicaciones pueden administrar de forma proactiva los recursos de almacenamiento SAN. Por el contrario, NAS es compatible con casi todos los tipos de aplicaciones. Con estas ventajas, NAS es adecuado para la mayoría de las aplicaciones en contenedores.
3. Funcionamiento estable y recuperación rápida: los contenedores tienen una importante característica de tolerancia a fallos conocida como conmutación por error de pod. Esta característica permite que las aplicaciones en contenedores que se ejecutan en un servidor se migren a otro servidor en buen estado si el servidor original se daña. NAS admite el acceso a datos compartidos, lo que elimina la necesidad de realizar comprobaciones de coherencia de datos y mapeo de servidores. Una vez que la aplicación se monta en el nuevo servidor, se necesitan solo 40 segundos para recuperar el servicio utilizando NAS, mientras que se requieren 6 minutos utilizando SAN.
NAS se ha convertido en la solución de almacenamiento en contenedores más popular. Según las estadísticas, el 74 % de los usuarios utilizan NAS como base para los contenedores.
En el pasado, todos los líderes de TI se planteaban migrar sus servicios a la nube. Ahora, independientemente de quién esté preparado, ha llegado la era de los servicios multicloud. Afortunadamente, ya no tenemos que elegir entre la nube pública elástica y la implementación local privada, porque podemos usar contenedores para crear una nube local que combine las ventajas de ambas.
En la actualidad, determinar cómo construir una plataforma de contenedores que pueda utilizarse como infraestructura para los servicios básicos de la empresa se está convirtiendo en un tema de investigación importante para los líderes de TI. Esperamos que más proveedores cooperen ampliamente con sus clientes y socios y que, gradualmente, encuentren formas viables de superar las deficiencias de las plataformas de contenedores. De esta manera, más empresas pueden obtener oportunidades para desarrollarse y lograr el éxito comercial en la era de los contenedores multicloud.