¿Qué son los contenedores como servicio (CaaS)?

Por IBM Services

Los contenedores como servicio (CaaS) es un modelo de servicio cloud que permite a los usuarios cargar, organizar, iniciar, detener, escalar y gestionar de cualquier otro modo contenedores, aplicaciones y clústeres. Habilitan estos procesos utilizando una virtualización basada en contenedores, una interfaz de programación de aplicaciones (API) o una interfaz de portal web. CaaS ayuda a los usuarios a crear aplicaciones en contenedores altamente seguros y escalables en centros de datos en local o en cloud. Los contenedores y los clústeres se utilizan como un servicio con este modelo y se despliegan en cloud o en centros de datos en el sitio. 

¿Por qué es importante CaaS?

Como modelo con una amplia aplicación, CaaS ayuda a los desarrolladores a optimizar el proceso de creación de un despliegue de aplicaciones y contenedores completamente escalado. Este modelo es perfecto para los departamentos de TI, ya que proporciona un servicio de despliegue de contenedores habilitado con control de gobierno en un entorno altamente seguro. El modelo CaaS ayuda a las empresas a simplificar la gestión de contenedores dentro de sus infraestructuras definidas por software.

Al igual que otros servicios de cloud computing, los usuarios pueden elegir y pagar solo por los recursos de CaaS que quieran. Algunos ejemplos de recursos de CaaS son instancias de cálculo, funcionalidades de planificación y equilibrio de carga.

Entre los distintos servicios de cloud computing, CaaS se considera un subconjunto de la infraestructura como servicio (IaaS) y se encuentra entre IaaS y la plataforma como servicio (PaaS). CaaS incluye contenedores como su recurso básico, al contrario que las máquinas virtuales (VM) y los sistemas de host de hardware bare metal comúnmente utilizados para entornos IaaS.

Una cualidad esencial de la tecnología CaaS es la orquestación que automatiza las funciones clave de TI. Google Kubernetes y Docker Swarm son dos ejemplos de plataformas de orquestación de CaaS. IBM, Amazon Web Services (AWS) y Google son algunos ejemplos de proveedores de CaaS de cloud público.

¿Por qué son importantes los contenedores?

Clientes de empresa de todos los sectores están percibiendo los beneficios de CaaS y la tecnología de contenedores. El uso de contenedores proporciona una mayor eficiencia a estos clientes, así como la capacidad de desplegar rápidamente soluciones innovadoras para la modernización de aplicaciones y el desarrollo nativo en cloud con microservicios. La inclusión en contenedores ayuda a estos clientes a lanzar nuevo software más rápidamente y promueve la portabilidad entre entornos híbridos y multicloud, además de reducir los costes operativos, de licencias de software e infraestructura. 

A continuación se detallan algunas de las ventajas del uso de contenedores:

  • Portabilidad: Cuando se crea una aplicación en un contenedor, la aplicación completada dispone de todo lo necesario para ejecutarse, incluyendo las dependencias y los archivos de configuración. La portabilidad permite a los usuarios finales lanzar aplicaciones de forma fiable en diferentes entornos y clouds públicos o privados. Esta portabilidad también otorga a las empresas una gran flexibilidad, acelerando el proceso de desarrollo y facilitando el cambio a otro entorno cloud o de proveedor.
  • Es altamente eficiente y reduce costes: Como los contenedores no necesitan un sistema operativo independiente, requieren menos recursos que una máquina virtual. Un contenedor a menudo solo requiere unas docenas de megabytes para ejecutarse, lo que le permite ejecutar varios contenedores en un único servidor que, de otro modo, se utilizaría para ejecutar una máquina virtual. Esta eficiencia le ayuda a reducir costes en el centro de datos. Los contenedores también pueden reducir los costes de bare metal, ya que presentan un nivel de utilización más elevado en relación con el hardware subyacente y requieren menos hardware.

Los contenedores no interactúan y están en cierto modo aislados de otros contenedores en los mismos servidores, aunque comparten los mismos recursos. Si una aplicación se detiene para un contenedor, otros contenedores pueden continuar usándola sin sufrir problemas técnicos.

  • Seguridad: El aislamiento de los contenedores sirve como característica de seguridad para minimizar riesgos. Si una aplicación está comprometida, sus efectos negativos no se extenderán a los demás contenedores.

Además, como los contenedores ejecutan procesos de aplicaciones de forma aislada del sistema operativo y no necesitan software específico para ejecutar aplicaciones, resulta más sencillo gestionar el sistema de host. Esta ventaja le permite lanzar rápidamente actualizaciones y parches de seguridad.    

  • Velocidad: Un contenedor se inicia en tan solo unos segundos, igual que para crear, replicar o destruir un contenedor, porque los contenedores no necesitan un sistema operativo completo. Esta ventaja también acelera el proceso de desarrollo, la comercialización y la velocidad operativa, y hace que la publicación de nuevas versiones o software sea simple, rápida y más fácil que antes. Esta velocidad también favorece a la experiencia del cliente, permitiendo a las empresas y desarrolladores responder rápidamente a los fallos e incorporar nuevas características tan pronto como los clientes se dirijan a ellos.
  • Escalabilidad: Los contenedores incluyen la capacidad para el escalado horizontal, lo que permite a los usuarios finales incorporar varios contenedores idénticos dentro del mismo clúster para escalar. Al utilizar el escalado inteligente y ejecutar únicamente los contenedores que necesita cuando los necesite, puede reducir drásticamente los costes e impulsar el retorno de la inversión. 
  • Desarrollo optimizado: Disponer de un canal de desarrollo efectivo y eficiente es una ventaja de la infraestructura basada en contenedores. Gracias a que los contenedores permiten que las aplicaciones funcionen y se ejecuten como si se crearan localmente, las inconsistencias ambientales se eliminan. Esta eliminación refuerza los procesos de pruebas y depuración, haciéndolos menos complicados y más rápidos. Esta característica también sirve para la actualización de aplicaciones, solo requiere que el desarrollador modifique el archivo de configuración, genere nuevos contenedores y suprima los anteriores; un proceso que debería tardar poco tiempo. 

Los servicios de contenedores gestionados y las pilas de contenedores en cloud

Los clientes de empresa que quieren reforzar su negocio con el uso de contenedores deben elegir entre dos opciones:

  1. Una plataforma CaaS y despliegue en un cloud público o en una plataforma de infraestructura en el sitio

  2. Un servicio de contenedores gestionado proporcionado por Google, Amazon o Microsoft Azure, los tres principales proveedores de cloud público adoptados

Cualquiera de estas dos opciones no es necesariamente origen de una situación de cautividad. Desde que Cloud Native Computing Foundation (CNCF) se formó a partir de la asociación con Google y Linux Foundation y lanzó el programa Kubernetes Certification, ha asegurado que todos los proveedores mantengan el estándar para la portabilidad de contenedores y la conformidad entre plataformas.    

Antes de elegir entre una plataforma de contenedores gestionado o el despliegue en el sitio, un cliente de empresa debe responder a las siguientes preguntas:

  • ¿Su contenedor requiere un despliegue en el sitio, o puede desplegarse en el cloud público?
  • ¿Su departamento de TI tiene las habilidades necesarias para diseñar, desplegar y administrar un entorno de Kubernetes? ¿Qué necesita para entrenarlos o retenerlos?
  • ¿Cuál es la plataforma de cloud público en la que necesita desplegar contenedores? Algunos ejemplos son Google, AWS o Azure.
  • ¿El uso de un plano de control de Kubernetes de multitenencia y compartido tiene alguna repercusión?

Si su empresa aún está experimentando con contenedores, los servicios de contenedores gestionados pueden ser la mejor opción. Los servicios de contenedores gestionados son un buen punto de partida que no requieren ningún gestor de clúster, suministro de recursos ni una plataforma mínima desplegada. Una gran ventaja de los servicios de contenedores gestionados es que son ideales para las pruebas iniciales de despliegue de contenedores, y posteriormente para personalizar los procesos de desarrollo y operativos.

Si su empresa ya está en una fase más establecida del despliegue de contenedores en Kubernetes o AWS, o en una plataforma en el sitio, puede optar por su propia solución CaaS. El hecho de traer su propio CaaS podría dar a su empresa una plataforma con más características, una que tenga los marcos de trabajo y los servicios necesarios para un sistema de producción.

El auge de Kubernetes

De modo similar a la guerra de Betamax contra el VHS, la guerra por el dominio de la orquestación de contenedores se pronosticó ya a finales de 2017 y concluyó a mediados de 2018. Google Kubernetes Engine, ahora conocido simplemente como Kubernetes, salió vencedor. Con un claro ganador, los proveedores y los adoptadores redoblaron sus esfuerzos y se centraron en la producción y maduración de sus despliegues para Kubernetes.

El lanzamiento de un servicio de Kubernetes gestionado y pilas de contenedores híbridos ayudó a facilitar la adopción de Kubernetes. Como GKE fue pionero en el concepto de servicios de contenedores gestionados, Kubernetes siempre ha mantenido una mayor demanda que los servicios de contenedores de sus competidores, AWS y Azure. Los lanzamientos de mediados de 2018 de Amazon Elastic Container Service for Kubernetes (Amazon EKS) y Azure Kubernetes Service (AKS) consolidaron el dominio de GKE.

Vea el vídeo

Kubernetes y la orquestación de contenedores

Kubernetes (K8s) es un sistema de orquestación de contenedores para automatizar el despliegue, la gestión y el escalado de aplicaciones. Originalmente diseñado por Google y pasado a código abierto en 2014, Kubernetes es mantenido por CNCF. El sitio web de Kubernetes describe Kubernetes como una "plataforma de código abierto portátil y extensible para la gestión de cargas de trabajo y servicios en contenedores que facilita tanto la configuración declarativa como la automatización".

Las tres funciones principales de Kubernetes en plataforma incluyen:

  • Contenedores
  • Microservicios
  • Cloud portátil

Un entorno de gestión centrado en contenedores, Kubernetes coordina la infraestructura de computación, redes y almacenamiento para las cargas de trabajo de usuario. Kubernetes incluye la misma facilidad de uso que una PaaS, junto con la maleabilidad de IaaS y la portabilidad entre los proveedores de infraestructura. 

El trayecto abierto de Kubernetes, IBM y Red Hat

Con una colaboración que se extiende durante dos décadas, IBM y Red Hat han realizado juntos el trayecto de exploración. Como defensor anticipado de Linux, IBM trabajó junto con Red Hat y ayudó a desarrollar y dar soporte a Linux empresarial. Más recientemente, esta colaboración ayudó a acercar Kubernetes y las soluciones de cloud híbrido a una amplia variedad de clientes. Kubernetes es también uno de los fundamentos de la estrategia combinada de cloud híbrido de IBM y Red Hat.

Estas innovaciones se convirtieron en las tecnologías básicas del negocio de cloud híbrido de IBM de USD 19.000 millones. Una vez finalizada la adquisición en el plazo previsto a finales de 2019, Red Hat será el último miembro y la unidad distintiva para el equipo de cloud híbrido de IBM.  

Kubernetes, IBM y Hertz

Hertz Corporation, conocida simplemente como Hertz, celebró su centenario en 2018. Lidiando con problemas de tecnología heredados, la compañía necesitaba ayuda para optimizar su tecnología y su arquitectura de negocio. Hertz se asoció con IBM Cloud Garage™ y desarrolló una arquitectura de Kubernetes que ayudó a la empresa a crear y desplegar aplicaciones basadas en microservicios en IBM Cloud™ Private e IBM Cloud Container Service.

Gracias a la colaboración con IBM, Hertz modernizó sus sistemas principales en los canales digitales, las reservas, las tarifas y otras aplicaciones utilizando arquitecturas flexibles de contenedores y microservicios. Con su amplio alcance global, Hertz garantiza que sus aplicaciones sean altamente disponibles, a escala empresarial, y se espera que reciba 1.500 millones de visitas y 30 millones de actualizaciones diarias una vez que las aplicaciones estén en producción.

Kubernetes y software de código abierto

El software de código abierto sigue ampliando su influencia, consolidando aún más la importancia del software de código abierto en el mundo de la tecnología de la información. Las soluciones de soporte de documentos técnicos de IBM Services™ para el entorno de software de código abierto indican que "el 96 por ciento de las aplicaciones comerciales tiene algún tipo de componente de código abierto" (PDF, 3,9 MB).1

En el mundo del software de código abierto, Arturo Suárez ejerce una gran influencia. Suárez creó la primera distribución comercial de la plataforma de software libre y de código abierto para cloud computing, OpenStack. En una entrevista para IT Biz Advisor en 2019, Suárez describe su experiencia con Kubernetes afirmando que "Kubernetes encabeza la carrera de la orquestación de contenedores" y que "Kubernetes evoluciona aún más rápido que OpenStack, con lanzamientos cada tres meses, y presenta un mejor modelo de gobierno y curva de adopción".2  

IBM Cloud Kubernetes Service

A mediados de mayo de 2018 y tras la inversión estratégica de IBM en Kubernetes,IBM Cloud Container cambió de nombre por IBM Cloud Kubernetes Service, un servicio que había estado disponible desde mayo de 2017.

IBM Cloud Kubernetes Service, un servicio de contenedores gestionado para la entrega rápida de aplicaciones, puede integrarse con IBM Watson®, blockchain y otros servicios avanzados. Algunas características para IBM Cloud Kubernetes Service incluyen:

  • Planificación inteligente
  • Autoreparación
  • Escalado horizontal
  • Descubrimiento de servicios
  • Equilibrio de carga
  • Despliegues y reversiones automatizados
  • Gestión de secretos y configuración

Además de las funcionalidades avanzadas para la gestión de clústeres intuitiva y la capacidad para diseñar su propio clúster, IBM Cloud Kubernetes Service también ofrece políticas de aislamiento y seguridad de contenedores, y herramientas operativas integradas para garantizar la coherencia del despliegue.

IBM Cloud Kubernetes Service actualmente cuenta con más de 10 mil clústeres de producción de pago gestionados y es utilizado por clientes como Think Research, Eurobits Technologies y The Weather Company, una empresa de IBM. Las empresas utilizan IBM Cloud Kubernetes Service para realizar las siguientes tareas:

  • Crear clústeres.
  • Desplegar una aplicación web escalable en Kubernetes.
  • Analizar registros y supervisar el estado de las aplicaciones Kubernetes.
  • Proporcionar un despliegue continuo a Kubernetes.

Para obtener más información sobre cómo los servicios de contenedores, los servicios cloud y Kubernetes pueden ayudar a su empresa, programe una reunión personal con un experto de IBM sin ningún coste. También puede registrarse en IBM Cloud Kubernetes Service para crear y desarrollar en el entorno de IBM Cloud de forma gratuita. IBM está a su disposición para ayudarle a impulsar su negocio con confianza.

Análisis en profundidad de contenedores y Kubernetes

Fuentes

  1. IBM Services. “Support solutions for your open source software environment”, IBM, 2019. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3,9 MB)
  2. Camilla Sharpe. “Q&A: How open source technology is shaking up the IT landscape”, IBM, 16 de mayo de 2019. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape