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

Por IBM Services

Los Contenedores como servicio (CaaS) es un modelo de servicio de nube que permite a los usuarios cargar, organizar, iniciar, detener, escalar y gestionar de otro modo contenedores, aplicaciones y clústeres. Permite que estos procesos utilicen 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 desarrollar aplicaciones de contención enriquecibles y ampliables a través de centros de datos on-premises o en la nube. Los contenedores y los clústeres se utilizan como un servicio con este modelo y se implementan en la nube o en centros de datos en el sitio. 

¿Por qué es importante CaaS?

Como un modelo con una amplia aplicación, CaaS ayuda a los desarrolladores a hacer más eficiente el proceso de construcción de un contenedor a escala total y la implementación de aplicaciones. El modelo ayuda a los departamentos de TI, proporcionando un servicio de implementación de contenedor habilitado que tiene el control de gobierno en un entorno de seguridad enriquecida. 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 computación en nube, los usuarios pueden elegir y pagar sólo los recursos de CaaS que deseen. Algunos ejemplos de recursos CaaS son instancias de cómputo, capacidades de planificación y equilibrio de carga.

En la gama de los servicios de computación en nube, CaaS se considera un subconjunto de Infraestructura como servicio (IaaS) y se encuentra entre IaaS y Plataforma como servicio (PaaS). CaaS incluye contenedores como su recurso básico, contador para las máquinas virtuales (VM) y sistemas de host de hardware bare metal comúnmente utilizados para entornos IaaS.

Una calidad 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 nube pública.

¿Por qué son importantes los contenedores?

Los clientes empresariales de todas las industrias están observando los beneficios de CaaS y de la tecnología de contenedores. El uso de contenedores proporciona una mayor eficiencia y proporciona a estos clientes la capacidad de implementar rápidamente soluciones innovadoras para la modernización de aplicaciones y el desarrollo nativo de nube con microservicios. La contenedorización ayuda a estos clientes a liberar software más rápido y promueve la portabilidad entre entornos híbridos y de multinube, y reduce la infraestructura, las licencias de software y los costos operativos.  

A continuación se muestran varias de las ventajas para el cliente en el uso de contenedores:

  • Portabilidad: Cuando se crea una aplicación en un contenedor, la aplicación completada tiene todo lo que necesita para ejecutarse, incluyendo las dependencias y los archivos de configuración. Tener portabilidad permite a los usuarios finales lanzar aplicaciones de forma confiable en entornos diferentes y nubes públicas o privadas. Esta portabilidad también otorga a las empresas una gran flexibilidad, acelerando el proceso de desarrollo y haciendo que sea más fácil cambiar hacia un entorno de proveedor o de nube diferente.
  • Altamente eficiente y disminuye costos: Debido a que los contenedores no necesitan un sistema operativo separado, requieren menos recursos que una VM. Un contenedor a menudo requiere sólo unas cuantas docenas de megabytes para ejecutar, lo que le permite ejecutar varios contenedores en un solo servidor que de otro modo se utilizaría para ejecutar una máquina virtual. Esta eficiencia ayuda a reducir los costos del centro de datos. Los contenedores también pueden reducir los costos de metal bare, ya que tienen un nivel de utilización más alto en relación con el hardware subyacente y requieren menos hardware.

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

  • Seguridad: El aislamiento que los contenedores tienen unos de otros se duplica como una característica de seguridad, minimizando el riesgo. Si una aplicación está en riesgo, sus efectos negativos no se extenderán a los otros contenedores.

Además, debido a que los contenedores ejecutan procesos de aplicación en aislamiento del sistema operativo y no necesitan software específico para ejecutar aplicaciones, es más sencillo gestionar su sistema host. Esta ventaja le permite lanzar rápidamente actualizaciones y parches de seguridad.;

  • Velocidad: Solo toma segundos para iniciar un contenedor, y para crear, replicar o destruir un contenedor, porque los contenedores no necesitan un libro de sistema operativo. Esta ventaja también permite un rápido proceso de desarrollo, acelera el tiempo de lanzamiento al mercado y la velocidad operativa, y hace que el lanzamiento de nuevas versiones o software sea sencillo, rápido y más fácil que antes. Esta velocidad también ayuda con la experiencia del cliente, permitiendo a las empresas y desarrolladores responder rápidamente a los fallos e incorporar nuevas funciones tan pronto como los clientes los aborden.
  • Escalabilidad: Los contenedores cuentan con la capacidad para la escalación horizontal, lo que permite a los usuarios finales incorporar varios contenedores idénticos dentro del mismo clúster a fin de escalar. Al utilizar la escalación inteligente y ejecutar sólo los contenedores que necesita cuando los necesita, puede reducir drásticamente los costos e impulsar su retorno de la inversión. 
  • Desarrollo optimizado: Tener un canal de desarrollo eficaz y eficiente es una ventaja de la infraestructura basada en contenedores. Debido a que los contenedores permiten que las aplicaciones funcionen y se ejecuten como si se desarrollaranlocalmente, las inconsistencias en el entorno son eliminadas. Esta eliminación refuerza la prueba y la depuración, haciéndolas menos complicadas y tardadas. Esta característica también se duplica para la actualización de aplicaciones, sólo requiere que el desarrollador modifique el archivo de configuración, luego genere nuevos contenedores y suprima los anteriores; un proceso que sólo debe tomar momentos. 

Servicios de contenedor gestionado y pilas de contenedor de nube

Los clientes empresariales que pretenden reforzar su negocio mediante contenedores deben elegir entre dos opciones:

  1. Una plataforma CaaS e implementar en una nube pública o una plataforma de infraestructura onsite

  2. Un servicio de contenedor gestionado proporcionado por Google, Amazon o Microsoft Azure, los tres proveedores públicos de nube pública adoptados

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

Antes de que un cliente empresarial elija entre una plataforma de contenedor gestionado o implemente on-site, debe responder a las siguientes preguntas:

  • ¿Su contenedor requiere una implementación on-site o puede implementarse en la nube pública?
  • ¿Su departamento de TI tiene las habilidades necesarias para diseñar, implementar y administrar un entorno de Kubernetes? ¿Qué se requiere para entrenarlos o conservarlos?
  • ¿Cuál es la plataforma de nube pública en la que se necesitan implementar los contenedores? Los ejemplos son Google, AWS o Azure.
  • ¿El uso de un plano de control de Kubernetes, de múltiples inquilinos y compartido, tiene alguna repercusión?

Si su empresa aún está experimentando con contenedores, entonces los servicios de contenedores gestionados pueden ser la mejor opción. Los servicios de contenedores gestionados son un buen punto de partida que no requiere un gestor de clúster, el suministro de recursos o una plataforma mínima implementada. Un gran beneficio de los servicios de contenedores gestionados es que son magníficos para las pruebas de implementación inicial del contenedor, luego para adaptar el desarrollo y los procesos operativos.

Si su empresa ya está en una parte más establecida de la implementación de contenedor en Kubernetes o AWS, o en una plataforma on-site, puede optar por su propia solución CaaS. El hecho de traer su propio CaaS podría dar a su empresa una plataforma con mayores funcionalidades, una que tenga los marcos y los servicios necesarios para un sistema de nivel de producción.

El ascenso de Kubernetes

De modo similar a la guerra de Betamax contra el VHS, la guerra por el dominio de la orquestación de contenedores fue predicha el 4o trimestre de 2017 y concluyó el 2o trimestre de 2018. Google Kubernetes Engine, ahora conocido simplemente como Kubernetes, emergió como el vencedor. Con un ganador claro, los proveedores y los adoptadores redoblaron sus esfuerzos y se centraron en la producción y maduración de sus implementaciones para Kubernetes.

El lanzamiento de un servicio de Kubernetes gestionado y pilas de contenedores híbridos ayudó a aligerar la adopción de Kubernetes. Debido a que GKE ayudó a ser pionero en el concepto de servicios de contenedores gestionados, Kubernetes siempre mantuvo una demanda mayor 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) cimentaron el dominio de GKE.

Vea el vídeo

Kubernetes y orquestación de contenedores

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

Las tres plataformas primarias con que Kubernetes funciona son:

  • Contenedores
  • Microservicios
  • Nube portátil

Un entorno de gestión centralizado en contenedores, Kubernetes coordina la infraestructura de cómputo, red y almacenamiento para las cargas de trabajo de usuario. Los Kubernetes incluyen la misma facilidad de uso que PaaS junto con la maleabilidad de IaaS y la portabilidad entre los proveedores de infraestructura. 

Kubernetes, IBM y Red Hat

Con una colaboración que se ha extendido durante dos décadas, IBM y Red Hat han estado en un camino de exploración juntos. Como defensor anticipado de Linux, IBM trabajó junto con Red Hat y ayudó a desarrollar y dar soporte a Linux a nivel empresarial. Más recientemente, esta colaboración ayudó a llevar Kubernetes y soluciones de nube híbrida a una amplia gama de clientes. Kubernetes es también uno de los fundamentos de la estrategia combinada de nube híbrida de IBM y Red Hat.

Estas innovaciones se convirtieron en las tecnologías básicas del negocio de nube híbrida de IBM de USD 19.000 millones. Después de que la adquisición concluya como se prevé, a finales de 2019, Red Hat será el último miembro y una unidad distinta para el equipo de nube híbrida de IBM.  

Kubernetes, IBM y Hertz

Hertz Corporation, conocida simplemente como Hertz, celebró su centenario en 2018. Para lidiar con problemas de tecnología heredados, la compañía necesitaba ayuda para hacer más eficiente su arquitectura de negocios y su tecnología. Hertz se asoció con IBM Cloud Garage™ y desarrolló una arquitectura Kubernetes que ayudó a la empresa a crear e implementar aplicaciones basadas en microservicios en IBM Cloud™ Private e IBM Cloud Container Service.

Al colaborar con IBM, Hertz modernizó sus sistemas principales a lo largo de canales digitales, reservas, tasas y otras aplicaciones utilizando arquitecturas flexibles de contenedores y microservicios. Con su amplio alcance global, Hertz asegura que sus aplicaciones estén altamente disponibles a escala empresarial, y espera recibir 1.500 millones de consultas 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 continúa expandiendo su influencia, estableciendo aún más la importancia del software de código abierto en el mundo de la tecnología de la información. El documento de IBM Services™ de soluciones de soporte para su entorno de software de código abierto hace notar que "El 96 por ciento de las aplicaciones comerciales tienen algún tipo de componente de código abierto" (PDF, 3,9 MB) 1.

En el mundo de software de código abierto, Arturo Suárez tiene mucha influencia. Suárez creó la primera distribución comercial de la plataforma de software libre y de código abierto para computación en nube, OpenStack. En una entrevista en 2019 de Biz Advisor, Suárez describió su experiencia con Kubernetes diciendo "Kubernetes está ganando la carrera de orquestación de contenedores" y "Kubernetes evoluciona aún más rápido que OpenStack, con lanzamientos cada tres meses, y tiene un mejor modelo de gobierno y una mejor curva de adopción".

IBM Cloud Kubernetes Service

A mediados de mayo de 2018 y después de la inversión estratégica de IBM en Kubernetes, Renombró IBM Cloud Container Service como IBM Cloud Kubernetes Service, un servicio que había estado disponible desde mayo de 2017.

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

  • Planificación inteligente
  • Autocuración
  • Escalación horizontal
  • Descubrimiento de servicios
  • Balanceo de carga
  • Retrotracción y reversiones automatizadas
  • Gestión de secretos y configuración

Con funciones avanzadas alrededor de la gestión de clústeres fácil de usar y la capacidad de diseñar su propio clúster, este IBM Cloud Kubernetes Service también ofrece políticas de aislamiento y seguridad de contenedores, y herramientas operativas integradas para tener consistencia en la implementación.

IBM Cloud Kubernetes Service actualmente tiene 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.
  • Implementar una aplicación web escalable en Kubernetes.
  • Analizar registros y supervisar la salud de las aplicaciones de Kubernetes.
  • Proporcionar una implementación continua a Kubernetes.

Para obtener más información sobre cómo los servicios de contenedor, los servicios de nube y los Kubernetes pueden ayudar a su empresa, programe una reunión en persona con un experto de IBM sin costo alguno. También puede suscribirse a IBM Cloud Kubernetes Service para crear y desarrollar sin costo alguno en el entorno de IBM Cloud. IBM está aquí para ayudarle a hacer avanzar su negocio con confianza.

Tenga conocimiento más profundo 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