Conecta con nosotros

A Fondo

¿Cómo gestionas tus contenedores? Las mejores plataformas para que no se te atraganten

Publicado el

El uso de contenedores ha cambiado de forma radical la forma en la que se desarrollan, se despliegan y se gestionan todo tipo de aplicaciones. La adopción de enfoques híbridos por parte de las empresas, la necesidad de desarrollos ágiles y de ser capaz de reaccionar rápido entregando a los usuarios nuevas característica, fan facilitado la implementación de unos contenedores en los que se aíslan procesos y se construyen complejas aplicaciones de forma muy similar a la forma en la que se juntan las piezas de un puzzle.

Para que esto sea posible, contar con plataformas de orquestación de contenedores resulta fundamental. Son estas plataformas las que facilitan el automatizar todo tipo de operaciones con los contenedores, desde su despliegue, a su actualización constante, su securización o su integración con todo tipo de servicios. 

En este espacio, Kubernetes es desde luego la plataforma de orquestación más popular, sobre todo porque es la que cuenta con la colaboración de las principales compañías de software, incluyendo nombres tan pesados como Google, Microsoft, Amazon o Red Hat.  Bajo el paraguas de este Kubernetes original sin embargo, muchas de estas compañías han desarrollado otras plataformas cuyo objetivo es simplificar su uso, ampliar su alcance o mejorar su integración en otros entornos. 

En MCPRO os presentamos a continuación las principales opciones que podéis considerar y cuáles son sus características más relevantes. Finalmente, compartimos algunas recomendaciones teniendo en cuenta distintos casos de uso. 

Kubernetes

Kubernetes es la plataforma de orquestación de contenedores más popular. Solución open-source desarrollada originalmente por Google, su objetivo es automatizar las operaciones con todo tipo contenedores. Su principal ventaja es que elimina todos los procesos manuales involucrados en el despliegue y escalado de aplicaciones contenedorizadas.

Kubernetes hace posible responder rápidamente a las demandas de los consumidores desplegando sus aplicaciones de forma eficiente, escalando esas mismas aplicaciones con facilidad y desplegando nuevas funciones sin problemas, todo ello al tiempo que limita el consumo de recursos de hardware.  Algunos elementos diferenciales:

  • La plataforma despliega continuamente los cambios en la aplicación o la configuración, al mismo tiempo que vigila su estado. Si algo no va según lo previsto, revertirá el cambio.
  • La plataforma asigna a cada Pod su propia IP, así como un único nombre de sistemas de nombres de dominio (DNS) para cada grupo.
  • Gracias a la orquestación del almacenamiento, se puede trabajar con el sistema que escogemos.
  • La solución no limita la disponibilidad y coloca automáticamente las aplicaciones en contenedores en función de sus necesidades de recursos.
  • Sus capacidades de orquestación de contenedores pueden gestionar cargas de trabajo CI y por lotes, sustituyendo contenedores fallidos.
  • Permite escalar (hacia arriba o hacia bajo) de forma automática en función del almacenamiento disponible y la CPU, tanto desde la interfaz de usuario como ejecutando un comando.
  • Gracias a sus capacidades de autorreparación, Kubernetes reiniciar los contenedores que fallan, reprograma y sustituye los contenedores cuando los nodos mueren y elimina los contenedores que no responden a la comprobación del estado de la aplicación definida por el usuario.

Amazon Elastic Container Service (Amazon ECS)

Amazon ECS es una solución de orquestación de contenedores segura y completamente administrada que le ayuda a escalar, administrar e implementar aplicaciones en contenedores. El servicio se integra completamente con el resto de la plataforma de Amazon Web Services (AWS) para ofrecer una solución sencilla para ejecutar cargas de trabajo de contenedores en la nube y en las instalaciones con Amazon ECS Anywhere.  Algunos puntos clave:

  • Amazon ECS facilita el uso de herramientas de automatización CI/CD, que permiten el despliegue de contenedores a lo largo de amplio portafolio de soluciones de computación que ofrece AWS.
  • La herramienta hace uso de tecnologías serverless para ofrecer operaciones autónomas de contenedores. Esto reduce significativamente el tiempo dedicado a la seguridad, la aplicación de parches y la configuración.
  • Teniendo en cuenta que Amazon ECS puede gestionar de forma autónoma operaciones de autoescalado y el aprovisionamiento de los recursos contratados, resulta más sencillo controlar los costes de computación.
  • Amazon ECS ofrece soporte para Docker y es compatible con Windows.
  • A través de AWS Copilot CLI, se pueden desarrollar y poner en marcha contenedores listos para entornos de producción.
  • Entre sus características de administración, se incluyen la definición de tareas, control programático, recuperación automática de contenedores, actualización de nuevas versiones y herramientas para reducir el tiempo de inactividad durante la actualización de las aplicaciones. 
  • La solución proporciona un alto nivel de aislamiento a la hora de crear aplicaciones, cumpliendo con todo tipo de requisitos de seguridad y de compliance. 

Mirantis Kubernetes Engine

En 2019,  la compañía Mirantis anunciaba que se hacía con el control de Docker Enterprise, es decir las de las herramientas, soluciones y equipo humano con el que Docker ayudaba a otras empresas a implementar su estrategia de contenedores. Uno de los primeros productos que nacen de esa adquisición es el nuevo “Mirantis Kubernetes Engine”,  una herramienta de orquestación de contenedores construida sobre Swarm, el desarrollo original de Docker. Algunos puntos destacados son:

  • Facilita el desarrollo y ejecución de aplicaciones moderna a escala, ya sea en el cloud u on-premises. 
  • Los clústeres de Mirantis Kubernetes Engine pueden desplegarse o configurarse para proporcionar Kubernetes con Istio ingress y Calico networking. Puede acelerar el desarrollo con Lens, herramientas Docker de código abierto y plugins de Mirantis.
  • Las aplicaciones y los contenedores pueden desplegarse también en máquinas virtuales y ejecutarse tanto en Windows como en todo tipo de distribuciones de Linux.
  • Para reforzar su seguridad, Mirantis Kubernetes Engine está equipado con Content Trust integrado y cifrado FIPS-140-2 que evita la ejecución de cargas de trabajo en contenedores no firmados o con una firma incorrecta.
  • Se puede desplegar cualquier combinación de nodos de trabajo Mirantis Kubernetes Engine Linux y Windows dentro del mismo entorno informático.
  • Los clústeres de Mirantis Kubernetes pueden ser gestionados, desplegados y configurados de forma centralizada y consistente utilizando Mirantis Container Cloud. Además, facilita el uso de un único punto para la automatización de las operaciones, la oservabilidad integrada,  o el aprovisionamiento centralizado. 

Google Kubernetes Engine

Google Kubernetes Engine (GKE) es un entorno gestionado y orientado  a entornos de producción para la  ejecución aplicaciones en contenedores. Apostando en este caso por la sencillez, GKE permite desplegar, gestionar y escalar automáticamente entornos de Kubernetes sin demasiados problemas. Algunas características que merece la pena destacar, son las siguientes:

  • Google es el mayor colaborador del proyecto Kubernetes, por lo que resulta muy sencillo desplegar un entorno de Kubernetes sobre GKE.
  • La plataforma es segura por defecto e incluye el cifrado de datos y el escaneo de vulnerabilidad de las imágenes de los contenedores.
  • Permite escalar de cuatro formas diferentes,  de modo que elimina la sobrecarga operativa.
  • Integra las herramientas nativas CI/CD de Kubernetes para mejorar la velocidad de desarrollo de aplicaciones y reforzar su seguridad. Tiene soporte para el desarrollo de aplicaciones serverless y stateless.
  • Google Site Reliability Engineers (SREs)  supervisa de forma constante el clúster, así como los recursos de almacenamiento, red y computación.
  • GKE ofrece dos formas de trabajar: Standard y Autopilot. La primera ofrece al cliente un control completo sobre los nodos y los recursos asignados. La segunda es una solución totalmente gestionada, sin intervención alguna, que administra toda la infraestructura del clúster.
  • GKE Sandbox proporciona una mayor seguridad de las cargas de trabajo al actuar como un segundo escudo de defensa entre las cargas de trabajo en contenedores en GKE.

Red Hat OpenShift

Red Hat OpenShift es una de las plataformas empresariales de referencia en el desarrollo de Kubernetes, ya que permite a las compañías adoptar enfoques nativos de la nube al mismo tiempo que dan soporte a las aplicaciones existentes. Red Hat es además uno de los principales colaboradores del proyecto Kubernetes, por lo que es ideal para las compañías que quieran estar al día con las últimas actualizaciones del sistema. Algunos puntos a tener en cuenta son:

  • La plataforma utiliza los Operadores Kubernetes para realizar actualizaciones automáticas mediante una función específica para el host de contenedores, el clúster Kubernetes y los servicios de aplicaciones que se ejecutan en él (el clúster).
  • La solución ofrece una plataforma Kubernetes única y consistente en cualquier lugar, ejecutada en Red Hat Enterprise Linux. Puede ver y gestionar todos sus clústeres e implementar y aplicar políticas en varios equipos desde una consola fácil de usar. Esto proporciona una mayor visibilidad a través de múltiples despliegues.
  • Gracias a los flujos de trabajo fáciles de usar para los desarrolladores, como la capacidad de conversión de código fuente a imagen de Red Hat y las herramientas CI/CD, se puede pasar directamente del código de la aplicación al contenedor.
  • Las tecnologías soportadas por la plataforma incluyen Knative, Istio, Prometheus, Jenkins, Node.js, Red Hat AMQ Streams y Virtualización.
  • La plataforma está certificada por Kubernetes y garantiza la compatibilidad e interoperabilidad entre las cargas de trabajo de los contenedores. 

Cómo escoger la mejor solución

Con todas estas opciones sobre la mesa, no es fácil decantarse por una u otra solución. Todas parten de una premisa similar y dependerá en buena medida de nuestra infraestructura instalada, los conocimientos previos que tengamos e incluso nuestra relación con los partners, el que finalmente nos desplacemos a uno u otro entorno. Con todo, sí que hay algunos criterios que más allá de lo anterior, podemos tomar en consideración. 

Kubernetes por ejemplo puede resultar la más interesante para aquellos que quieren une experiencia pura del servicio, tienen grandes conocimientos técnicos y necesitan capacidades avanzadas en áreas como la automatización, el descubrimiento de servicios, equilibrios de cargas o la orquestación del almacenamiento. 

Amazon ECS es desde luego la que mejor se integra en el cloud público y si la compañía ya trabaja habitualmente con otros productos de AWS, probablemente esta sea la opción más interesante. No solo porque se integra en pocos clics con el resto de las aplicaciones de la compañía, sino porque en este enfoque, las empresas lo tienen más fácil a la hora de calcular costes.

En el caso de Mirantis, resulta una opción más que interesante para aquellas empresas que tengan experiencia en Docker. Su orientación al mundo del desarrollo de aplicaciones por otro lado, facilita una entrega muy rápida del código tanto en entornos cloud como en instalaciones on-premises, contando con soporte para un amplio catálogo de hardware especializado.

Lo interesados en una orquestación sencilla de Kubernetes tienen probablemente en Google GKE su mejor opción, especialmente gracias a un modo Autopilot que deja en manos del proveedor prácticamente todas las operaciones de despliegue, aprovisionamiento y gestión de los contenedores. 

Finalmente, aquellos más interesados en desarrollar una estrategia de cloud híbrido, pueden contar con Red Hat OpenShift, teniendo en cuenta sobre todo que desde hace años la misión de la compañía pasa precisamente por facilitar a las empresas el desarrollo y el mantenimiento sencillo de este tipo de enfoques.

Periodista tecnológico con más de una década de experiencia en el sector. Editor de MuyComputerPro y coordinador de MuySeguridad, la publicación de seguridad informática de referencia.

Lo más leído