El modelo Container as a Service (CaaS) facilita pla­ta­fo­r­mas de co­n­te­ne­do­res como solución completa alojada en la nube. Te ex­pli­ca­mos en qué consiste este servicio y pre­se­n­ta­mos cuatro de las pla­ta­fo­r­mas de CaaS más populares. Además, te mostramos cómo utilizar servicios de co­n­te­ne­do­res en la nube en un contexto co­r­po­ra­ti­vo.

¿Qué es CaaS?

Acrónimo de Container as a Service (co­n­te­ne­dor como servicio), CaaS es un modelo de negocio por el cual los pro­vee­do­res de co­mpu­tación en la nube ofrecen pre­s­ta­cio­nes en torno a la vi­r­tua­li­za­ción basada en co­n­te­ne­do­res como servicio online escalable, lo que permite utilizar co­n­te­ne­do­res sin tener que instalar la in­frae­s­tru­c­tu­ra necesaria para ello. El término es propio del marketing y toma como re­fe­re­n­cia otros modelos de servicios en la nube, como In­fra­s­tru­c­tu­re as a Service (IaaS, In­frae­s­tru­c­tu­ra como servicio), Platform as a Service (PaaS, Pla­ta­fo­r­ma como servicio) y Software as a Service (SaaS, Software como servicio), que se explicará más adelante.

¿Qué se conoce por servicios de co­n­te­ne­do­res?

Cuando un proveedor de cloud computing ofrece un servicio con el que los usuarios pueden de­sa­rro­llar, probar y ejecutar software en los llamados co­n­te­ne­do­res de apli­ca­cio­nes o di­s­tri­bui­r­los más allá de la in­frae­s­tru­c­tu­ra de TI, se habla de servicios de co­n­te­ne­do­res. Los co­n­te­ne­do­res de apli­ca­cio­nes tienen su origen en el entorno Linux y permiten la vi­r­tua­li­za­ción a nivel del sistema operativo. Esto significa que las apli­ca­cio­nes, junto con todas sus de­pe­n­de­n­cias (bi­blio­te­cas y archivos de co­n­fi­gu­ra­ción), se ejecutan como in­s­ta­n­cias en­ca­p­su­la­das aisladas las unas de las otras. Este método permite gestionar de forma paralela varias apli­ca­cio­nes que cuentan con distintos re­que­ri­mie­n­tos en un único sistema operativo, así como de­s­ple­gar­las en sistemas di­fe­re­n­tes.

Por lo general, un CaaS comprende un entorno completo de co­n­te­ne­do­res que incluye he­rra­mie­n­tas de or­que­s­ta­ción, un catálogo de imágenes (el de­no­mi­na­do Registry), un software de gestión de clústeres así como un juego de he­rra­mie­n­tas para de­sa­rro­lla­do­res y diversas API (Ap­pli­ca­tion Pro­gra­m­mi­ng In­te­r­fa­ces o in­te­r­fa­ces de pro­gra­ma­ción de apli­ca­cio­nes).

Di­fe­re­n­cias con otros servicios en la nube

Desde mediados de los años 2000, tanto empresas como pa­r­ti­cu­la­res cuentan con la co­mpu­tación en la nube como al­te­r­na­ti­va a la asi­g­na­ción de recursos de TI en suelo propio, es decir, on premises. Además de CaaS, existen tres modelos de servicio es­pe­cia­l­me­n­te populares:

  • IaaS (In­fra­s­tru­c­tu­re as a Service): comprende la provisión de recursos virtuales de hardware como potencia de cálculo, espacio en disco y capacidad de red, co­m­po­ne­n­tes fu­n­da­me­n­ta­les de toda in­frae­s­tru­c­tu­ra de TI, en forma de máquinas virtuales (VM) o redes virtuales de área local (VLAN).

  • PaaS (Platform as a Service): situado en un nivel in­te­r­me­dio del modelo te­c­no­ló­gi­co en la nube, un servicio de PaaS facilita pla­ta­fo­r­mas de pro­gra­ma­ción y entornos de de­sa­rro­llo online. Una PaaS se erige sobre una IaaS.

  • SaaS (Software as a Service): el nivel superior del modelo en la nube es un mero nivel práctico, porque el llamado software como servicio permite utilizar software de apli­ca­cio­nes desde Internet. Los programas que se ofrecen por medio de este modelo de negocio no se ejecutan en el hardware del co­n­su­mi­dor, sino en el servidor del proveedor.

Imagen: Descripción de los modelos de servicio en la nube: IaaS, PaaS y SaaS
Co­m­pa­ra­ti­va de los modelos de servicio en la nube IaaS, PaaS y SaaS frente a la provisión de recursos en la propia empresa (on premises)

En este clásico esquema, CaaS podría situarse a medio camino entre una in­frae­s­tru­c­tu­ra como servicio (IaaS) y una pla­ta­fo­r­ma como servicio (PaaS), di­fe­re­n­ciá­n­do­se de estos dos modelos por un concepto de vi­r­tua­li­za­ción fu­n­da­me­n­ta­l­me­n­te diferente como es la te­c­no­lo­gía de co­n­te­ne­do­res.

De­fi­ni­ción

Container as a Service es una forma de vi­r­tua­li­za­ción basada en co­n­te­ne­do­res en la cual un proveedor de servicios de cloud computing su­mi­ni­s­tra el entorno de tiempo de ejecución, las he­rra­mie­n­tas de or­que­s­ta­ción y los recursos in­frae­s­tru­c­tu­ra­les fu­n­da­me­n­ta­les.

¿Cómo funciona CaaS?

Container as a Service tiene como base un clúster de or­de­na­do­res accesible en la nube que los usuarios pueden alquilar pa­r­cia­l­me­n­te para subir, crear, gestionar y ejecutar apli­ca­cio­nes en la nube. Para in­ter­ac­tuar con el entorno de co­n­te­ne­do­res basado en la nube, el usuario puede utilizar una interfaz gráfica de usuario (GUI) o llamadas a API. El tipo de te­c­no­lo­gía de co­n­te­ne­do­res di­s­po­ni­ble para el usuario varía en función del proveedor, aunque el núcleo de toda pla­ta­fo­r­ma CaaS lo co­n­s­ti­tu­ye una he­rra­mie­n­ta de or­que­s­ta­ción (también llamado or­que­s­ta­dor) que permite la gestión de ar­qui­te­c­tu­ras de co­n­te­ne­do­res más complejas, como son las apli­ca­cio­nes mu­l­ti­co­n­te­ne­dor. Aquí tienen re­le­va­n­cia las si­guie­n­tes funciones:

  • Di­s­tri­bu­ción de co­n­te­ne­do­res por varios hosts
  • Agru­pa­ción de los co­n­te­ne­do­res en unidades lógicas
  • Escalado de co­n­te­ne­do­res
  • Balanceo de carga
  • Asi­g­na­ción de capacidad de memoria
  • Puntos de contacto entre co­n­te­ne­do­res
  • Service Discovery (de­s­cu­bri­mie­n­to de servicios)

El or­que­s­ta­dor es el que determina las funciones con las que cuenta el usuario. En la ac­tua­li­dad, las he­rra­mie­n­tas de or­que­s­ta­ción que dominan el mercado de la vi­r­tua­li­za­ción con co­n­te­ne­do­res son las si­guie­n­tes: Docker Swarm, Ku­be­r­ne­tes, OpenShift y Amazon Elastic Container Service (ECS).

Consejo

En la Digital Guide en­co­n­tra­rás una de­s­cri­p­ción detallada de las he­rra­mie­n­tas de or­que­s­ta­ción y he­rra­mie­n­tas de Docker más populares, así como una co­m­pa­ra­ti­va exhau­s­ti­va entre OpenShift y Ku­be­r­ne­tes.

¿Qué define a un buen proveedor de CaaS?

Estas preguntas pueden ayudar a perfilar la elección de un servicio de CaaS em­pre­sa­rial:

  • ¿Qué he­rra­mie­n­tas de or­que­s­ta­ción ofrece?
  • ¿Qué formatos de archivos soporta para apli­ca­cio­nes-co­n­te­ne­dor?
  • ¿Permite gestionar apli­ca­cio­nes mu­l­ti­co­n­te­ne­dor?
  • ¿Cómo gestiona los clústeres para el fu­n­cio­na­mie­n­to de los co­n­te­ne­do­res?
  • ¿Qué funciones de red y de al­ma­ce­na­mie­n­to soporta?
  • ¿Ofrece el proveedor un registro privado para imágenes de co­n­te­ne­dor?
  • ¿Cómo está integrado el entorno de tiempo de ejecución de co­n­te­ne­do­res con otros servicios en la nube del proveedor?
  • ¿Qué modelos de fa­c­tu­ra­ción ofrece?

¿Qué pro­vee­do­res ofrecen CaaS?

La te­c­no­lo­gía de co­n­te­ne­do­res se encuentra en plena expansión, así como también la oferta de servicios de CaaS, hasta el punto de que hoy se en­cue­n­tran servicios de vi­r­tua­li­za­ción a nivel del sistema operativo en los porfolios de casi todos los pro­vee­do­res de servicios en la nube. También Amazon, Microsoft y Google, bien situados entre los pri­n­ci­pa­les actores del mercado de CaaS, han ampliado sus pla­ta­fo­r­mas en la nube con una solución para co­n­te­ne­do­res basada en Docker.

Nota

Docker es la pla­ta­fo­r­ma de co­n­te­ne­do­res más conocida y relevante en la ac­tua­li­dad. Su formato de co­n­te­ne­dor, una evolución del co­n­te­ne­dor de Linux (LXC), está am­plia­me­n­te extendido y cuenta con el soporte de todos los pro­vee­do­res de CaaS.

Amazon Elastic Container Service (ECS)

Desde abril de 2015, el gigante digital Amazon también ofrece so­lu­cio­nes de vi­r­tua­li­za­ción basadas en co­n­te­ne­do­res bajo el nombre de Amazon Elastic Container Service (ECS) en su pla­ta­fo­r­ma en la nube AWS (Amazon Web Service). ECS solo soporta el formato Docker para los co­n­te­ne­do­res.

FnFvpIsBrog.jpg Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

El ECS de Amazon incluye diversas in­te­r­fa­ces que permiten gestionar en la Amazon Elastic Compute Cloud (EC2) las apli­ca­cio­nes aisladas en co­n­te­ne­do­res Docker. Este servicio de CaaS se fu­n­da­me­n­ta té­c­ni­ca­me­n­te en los si­guie­n­tes recursos de la nube:

  • In­s­ta­n­cias de Amazon EC2: Amazon EC2 consiste en capacidad co­mpu­tacio­nal escalable del servicio de cloud computing de Amazon que puede al­qui­lar­se en forma de las llamadas “in­s­ta­n­cias”.
  • Amazon S3 (Amazon Simple Storage): se trata de una pla­ta­fo­r­ma de al­ma­ce­na­mie­n­to de objetos basada en la nube.
  • Amazon EBS (Amazon Elastic Block Store): Amazon EBS facilita volumen de al­ma­ce­na­mie­n­to de bloques altamente di­s­po­ni­ble para in­s­ta­n­cias EC2.
  • Amazon RDS (Amazon Re­la­tio­nal Database Service): Amazon RDS es un servicio de base de datos que se utiliza para gestionar los motores re­la­cio­na­les Amazon Aurora, Po­s­t­gre­S­QL, MySQL, MariaDB, Oracle y Microsoft SQL Server.

En la co­n­fi­gu­ra­ción estándar de ECS, los co­n­te­ne­do­res se ad­mi­ni­s­tran por medio de un or­que­s­ta­dor pro­pie­ta­rio que actúa como master y se comunica con los agentes en cada uno de los nodos del clúster que se gestiona. Como al­te­r­na­ti­va ofrecen el módulo de código abierto Blox, que permite integrar en ECS sche­du­le­rs de creación propia así como he­rra­mie­n­tas de terceros como Mesos.

Una de las fo­r­ta­le­zas del Amazon EC2 Container Service es su in­te­gra­ción con otros servicios de Amazon, como la he­rra­mie­n­ta de gestión de permisos “AWS Identity and Access Ma­na­ge­me­nt (IAM)”, el ba­la­n­cea­dor de carga en la nube “Elastic Load Balancing” o el servicio de monitoreo “Amazon Clou­d­Wa­t­ch”.

Una de­s­ve­n­ta­ja del servicio de co­n­te­ne­do­res de Amazon es que se limita a in­s­ta­n­cias EC2 y no ofrece soporte para in­frae­s­tru­c­tu­ras de TI ajenas a AWS, ni física ni vi­r­tua­l­me­n­te. De esta forma, los es­ce­na­rios de nube híbrida, son tan poco posibles como combinar los recursos de TI de di­fe­re­n­tes pro­vee­do­res de nube pública (mu­l­ti­cloud). Esto guarda relación con el modelo de negocio con el cual Amazon ofrece su servicio de CaaS, y es que EC2 está di­s­po­ni­ble en la AWS de forma gratuita; los usuarios solo pagan por el su­mi­ni­s­tro de la in­frae­s­tru­c­tu­ra de co­mpu­tación en la nube, por ejemplo, para un clúster de in­s­ta­n­cias EC2 que ha de fu­n­da­me­n­tar la gestión de apli­ca­cio­nes-co­n­te­ne­dor.

Ventajas In­co­n­ve­nie­n­tes
In­te­gra­ción completa con otros productos AWS El de­s­plie­gue de co­n­te­ne­do­res se limita a in­s­ta­n­cias EC2 de Amazon
Uso gratuito (la in­frae­s­tru­c­tu­ra tiene costes) Or­que­s­ta­dor pro­pie­ta­rio

Google Ku­be­r­ne­tes Engine (GKE)

Con la Google Ku­be­r­ne­tes Engine (GKE) Google también ha integrado en la nuble pública un servicio de co­n­te­ne­do­res alojado cuyo co­m­po­ne­n­te central lo co­n­s­ti­tu­ye la he­rra­mie­n­ta de or­que­s­ta­ción Ku­be­r­ne­tes.

pQ87vVMZK-A.jpg Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

La GKE utiliza los recursos de la Google Compute Engine (GCE) y permite a los usuarios ad­mi­ni­s­trar apli­ca­cio­nes basadas en co­n­te­ne­do­res en clústeres de la nube de Google. No obstante, la in­frae­s­tru­c­tu­ra de la nube de Google no limita a los usuarios a la GKE, sino que el Cluster Fe­de­ra­tion System de Ku­be­r­ne­tes po­si­bi­li­ta la agru­pa­ción de los recursos de di­fe­re­n­tes clústeres de or­de­na­do­res en una fe­de­ra­ción lógica e implantar es­ce­na­rios de nube híbrida o mu­l­ti­cloud si fuera necesario.

Cada clúster creado con la GKE está compuesto por un nodo-maestro (master) en el que se ejecuta el servidor API de Ku­be­r­ne­tes y un número in­de­fi­ni­do de nodos-tra­ba­ja­do­res (worker) que sirven las consultas REST del servidor API y ejecutan los servicios ne­ce­sa­rios para soportar los co­n­te­ne­do­res Docker. El Container as a Service de Google también soporta el extendido formato Docker y para la rea­li­za­ción de imágenes Docker los usuarios disponen de un registro privado. Una sintaxis basada en JSON ofrece la opción de definir los servicios de co­n­te­ne­do­res como pla­n­ti­llas.

La in­te­gra­ción de Ku­be­r­ne­tes en GKE provee las si­guie­n­tes funciones para la or­que­s­ta­ción de apli­ca­cio­nes-co­n­te­ne­dor:

  • Automatic bi­n­pa­c­ki­ng: basándose en reglas y re­qui­si­tos, Ku­be­r­ne­tes coloca los co­n­te­ne­do­res de modo que se aproveche la capacidad del clúster al máximo.

  • Chequeos de salud con función auto-repair: con los health checks au­to­má­ti­cos, Ku­be­r­ne­tes asegura que todas las cuentas y todos los co­n­te­ne­do­res funcionan bien.

  • Escalado ho­ri­zo­n­tal: con Ku­be­r­ne­tes se pueden escalar apli­ca­cio­nes hacia arriba o hacia abajo.

  • Service discovery y balanceo de carga: Ku­be­r­ne­tes ofrece dos modos para el de­s­cu­bri­mie­n­to de servicios: por variables de entorno y por registros DNS. El balanceo de carga entre co­n­te­ne­do­res tiene lugar por medio de di­re­c­cio­nes IP y nombres DNS.

  • Or­que­s­ta­ción de la memoria: Ku­be­r­ne­tes también permite el montaje au­to­má­ti­co de diversos sistemas de al­ma­ce­na­je.

La política de precios de Google para su servicio de CaaS es diferente a la de Amazon. En la edición básica gratuita, se puede consumir un crédito mensual de 74,40 dólares por cuenta de fa­c­tu­ra­ción, que se aplica a clústeres zonales y Autopilot. En las ediciones de Ku­be­r­ne­tes, se paga por hora y por vCPU o clúster. Los costes de la edición Compute se basan en los precios de Compute Engine.

Ventajas In­co­n­ve­nie­n­tes
In­te­gra­ción completa con otros productos de Google Curva de apre­n­di­za­je pro­nu­n­cia­da
In­te­ro­pe­ra­bi­li­dad Puede volverse costoso rá­pi­da­me­n­te

Microsoft Azure Ku­be­r­ne­tes Service (AKS)

AKS es un entorno de alo­ja­mie­n­to op­ti­mi­za­do para la pla­ta­fo­r­ma Azure de co­mpu­tación en la nube de Microsoft que permite a sus usuarios de­sa­rro­llar apli­ca­cio­nes basadas en co­n­te­ne­do­res e im­pla­n­tar­las en clústeres de or­de­na­do­res es­ca­la­bles. El servicio de CaaS de Microsoft se apoya para ello en una versión op­ti­mi­za­da para Azure de he­rra­mie­n­tas de co­n­te­ne­dor de código abierto y permite gestionar co­n­te­ne­do­res Linux y Windows en formato Docker.

Imagen: Página de Microsoft Azure Kubernetes (AKS)
Captura de pantalla de Microsoft Azure Ku­be­r­ne­tes Service (AKS); Fuente: https://azure.microsoft.com/es-es/pricing/purchase-options/azure-account/

Las funciones que pueden utilizar los usuarios del AKS a la hora de operar apli­ca­cio­nes-co­n­te­ne­dor en la nube de Microsoft dependen sobre todo del or­que­s­ta­dor que se utilice. Los or­que­s­ta­do­res más populares que se admiten son Ku­be­r­ne­tes, DC/OS y Docker Swarm. En la versión Docker Swarm, AKS se apoya en la pila Docker y utiliza las mismas te­c­no­lo­gías open source que en Dockers Universal Control Plane, un co­m­po­ne­n­te fu­n­da­me­n­tal del centro de datos Docker. Im­ple­me­n­ta­do en el servicio CaaS de Azure, Docker Swarm ofrece el siguiente espectro de funciones para orquestar y escalar apli­ca­cio­nes-co­n­te­ne­dor:

  • Docker Compose: la solución de Docker para apli­ca­cio­nes mu­l­ti­co­n­te­ne­dor permite conectar varios co­n­te­ne­do­res entre sí y eje­cu­tar­los con un solo comando.

  • Control por líneas de comando: la interfaz de líneas de comando de Docker, Docker CLI, y el programa para apli­ca­cio­nes mu­l­ti­co­n­te­ne­dor, Docker Compose, permiten gestionar los clústeres de co­n­te­ne­do­res con líneas de comando.

  • API REST: la API remota de Docker permite acceder a diversos programas externos del eco­si­s­te­ma de Docker.

  • De­s­plie­gue basado en reglas: la di­s­tri­bu­ción de los co­n­te­ne­do­res en el clúster puede ad­mi­ni­s­trar­se por medio de etiquetas y reglas.

  • Service discovery: Docker Swarm ofrece diversas funciones de de­s­cu­bri­mie­n­to de servicios.

Microsoft ha ampliado el AKS con funciones CI/CD (in­te­gra­ción y de­s­plie­gue continuos) para apli­ca­cio­nes mu­l­ti­co­n­te­ne­dor de­sa­rro­lla­das con Visual Studio, Visual Studio Team Services o la he­rra­mie­n­ta open source Visual Studio Code.

La gestión de identidad y acceso (IAM) está regulada por el Active Directory, cuyas funciones fu­n­da­me­n­ta­les están di­s­po­ni­bles gra­tui­ta­me­n­te hasta un límite de 500.000 objetos di­re­c­to­rio. Como en Amazon ECS, en el servicio de Microsoft el uso de las he­rra­mie­n­tas también es gratuito y solo se paga por utilizar la in­frae­s­tru­c­tu­ra su­b­ya­ce­n­te.

Ventajas In­co­n­ve­nie­n­tes
Co­m­ple­ta­me­n­te integrado en la nube Azure Selección limitada de sistemas ope­ra­ti­vos
Co­m­pa­ti­ble con las he­rra­mie­n­tas de or­que­s­ta­ción más ha­bi­tua­les
Ir al menú principal