La alineación optimizada de recursos y cargas de trabajo, la gestión del ciclo de vida y la seguridad son los tres primeros puntos que contribuyen a una gestión de los contenedores de alto nivel, según explicaba Andreas Neeb, Chief Architect Financial Services Vertical en Red Hat, en la anterior entrega de este artículo.

Ahora nos adentramos en los cuatro siguientes puntos que permiten aproximarnos a una gestión optimizada de los contenedores, en un momento en que esta tecnología se ha incrementado significativamente gracias a las posibilidades que ofrece.

 

4. Detección de servicios

Utilizando tecnologías y procesos como microservicios, contenedores y DevOps, los departamentos de TI pueden responder rápida y flexiblemente a los nuevos requerimientos de negocio. Los prerrequisitos para esto son proporcionados por el concepto de la arquitectura de los microservicios; las aplicaciones se dividen en pequeños y ligeramente vinculados microservicios, y se envasan como un contenedor en servidores dentro de la empresa o se colocan en la nube.

Dado que los contenedores son intrínsecamente dinámicos y volátiles y la solución de gestión de contenedores los coloca en función de la necesidad, no se puede garantizar que un único o incluso un grupo de contenedores asociados se ejecuten siempre en un servidor en particular. Por lo tanto, la solución de gestión de contenedores debe disponer de funciones de detección de servicios, de modo que los contenedores asociados también puedan ser encontrados en otros servicios, independientemente de si están instalados o se ejecutan en una nube pública.

 

5. Ampliación de aplicaciones e infraestructura

Cuando se trata de escalar un proceso que debe ser soportado por el sistema de gestión de contenedores, encontramos dos tipos diferentes:

- Escalado de instancias de contenedor con la propia aplicación; en caso de carga máxima debe asegurarse, por ejemplo, que un administrador utilizando la solución de gestión de contenedores, pueda iniciar manualmente un mayor número de instancias de contenedor para cubrir las necesidades actuales. Para lograr el escalado dinámico, es apropiado un mecanismo automático que funcione con métricas almacenadas. A este respecto, los administradores pueden especificar que, si se produce una carga de un CPU particular, se superan las capacidades de almacenamiento o se producen eventos específicos, se inicia un número predeterminado de instancias de contenedor adicionales.

- Escalado de la infraestructura del contenedor; en este sentido, debe ser posible que las aplicaciones que se ejecutan en la plataforma de contenedores se amplíen a cientos de instancias, por ejemplo, extendiendo la plataforma de contenedores a una nube pública. Esto es mucho más complejo que iniciar nuevos contenedores en servidores.

 

6. Proporcionar almacenamiento permanente

La introducción de microservicios en arquitecturas de aplicaciones también tiene un impacto en la provisión de capacidad de almacenamiento. Durante el empaquetado y despliegue, el almacenamiento debe proporcionarse como un microservicio envasado en un contenedor y se convierte en almacenamiento nativo del contenedor. Esto significa que la gestión del almacenamiento permanente (almacenamiento nativo del contenedor) para contenedores de aplicaciones también es una tarea de la solución de gestión de contenedores.

Por ejemplo, con la plataforma de contenedores Red Hat OpenShift, los administradores de infraestructura pueden proporcionar contenedores de aplicaciones y almacenamiento nativo de contenedores persistentes, que gestiona el marco de orquestación de Kubernetes. El marco de Volumen Persistente (PV) de Kubernetes proporciona un conjunto de contenedores de aplicaciones, que se ejecutan en servidores distribuidos, con almacenamiento persistente. Utilizando las Reclamaciones de Volumen Persistente (PVCs), los desarrolladores pueden solicitar recursos PV, sin necesidad de tener amplia información sobre la infraestructura de almacenamiento subyacente.

Gestionado con una solución de gestión de contenedores, el almacenamiento nativo de contenedores debe soportar la provisión dinámica de diferentes tipos de almacenamiento, como el almacenamiento de bloques, archivos y objetos, y el almacenamiento multinivel a través de etiquetas de calidad de servicio. Además, el almacenamiento persistente mejora la experiencia del usuario en el funcionamiento de aplicaciones con estado y sin estado. Por lo tanto, para los administradores es más fácil administrar el uso y la provisión de almacenamiento para las aplicaciones. Utilizando el almacenamiento nativo de contenedores, los departamentos de TI se benefician de una arquitectura definida por software altamente escalable, que se puede implementar en un data center local y en nubes públicas y, en muchos casos, es más rentable que aquellos basado en hardware tradicional o en puras soluciones de almacenamiento en la nube.

 

7. Las soluciones de código abierto ofrecen un mayor potencial en términos de innovación

Las tecnologías de contenedores, en particular los contenedores de Linux, han crecido de ser un producto nicho a convertirse en una tendencia popular en el espacio de pocos años. Los contenedores Linux basados ​​en el formato Docker han jugado un papel clave aquí. El formato Docker basado en código abierto está soportado por muchas empresas de TI líderes, que van desde Amazon, Google y Hewlett-Packard Enterprise hasta IBM, Microsoft y Red Hat. Por lo tanto, se ha creado un estándar industrial que también es valorado por las empresas de todos los sectores que utilizan contenedores Linux para el desarrollo.

Especialmente porque muchos usuarios y productores de software utilizan contenedores Linux, se ha desarrollado un mercado altamente dinámico que sigue los principios del software de código abierto. Cada vez más, las empresas están adaptando una arquitectura de microservicios y suministrando aplicaciones basadas en contenedores. Esto crea nuevos requisitos que deben implementarse lo más rápidamente posible en forma de nuevas funcionalidades. Esto no sería posible siguiendo el modelo de código cerrado y con un solo proveedor de software. Lo mismo se aplica también a las soluciones de gestión de contenedores.

Según Github, alrededor de 1.000 desarrolladores, tanto vendedores de software como sus clientes, están trabajando en el proyecto de código abierto Kubernetes, que constituye la base para la gestión de contenedores en muchas soluciones. Al suministrar nuevos lanzamientos, la innovación ocurre más rápidamente que con el software propietario. En este último caso, los ciclos de liberación de 12 a 18 meses son la norma; para Kubernetes son 3 meses. Por lo tanto, las soluciones de gestión de contenedores de código abierto tienen ventajas considerables sobre las soluciones específicas de los proveedores en términos de innovación y agilidad.