Llegamos a ustedes gracias a:



Reportajes y análisis

CaaS: Una gestión sencilla de los contenedores

[10/08/2020] Dado que las aplicaciones modernas en contenedores siguen siendo populares en las organizaciones, era solo cuestión de tiempo que los principales proveedores empezaran a ofrecer infraestructura y gestión de contenedores "como un servicio".

El uso de contenedores está en aumento en las empresas de todo el mundo. De acuerdo con el último informe 2020 State of Cloud de Flexera, el 65% de las organizaciones declaran que utilizan contenedores Docker y el 58%, el sistema de orquestación Kubernetes de alguna manera.

La falta de recursos y conocimientos técnicos son citados con frecuencia como los principales desafíos en el uso de contenedores para construir y mantener aplicaciones. Por lo tanto, no debería sorprender que los desarrolladores estén recurriendo cada vez más a la automatización que ofrecen los contenedores como servicio (CaaS), con los tres principales proveedores de cloud computing a la cabeza.

Definiendo los contenedores como servicio o CaaS

Con CaaS, los proveedores de cloud computing proporcionan un motor de orquestación de contenedores alojados -normalmente basado en el superpopular proyecto de código abierto de Kubernetes, que se originó en Google- para desplegar y ejecutar contenedores, gestionar clústeres, automatizar el escalado y la gestión de fallas, y mantener la capa de infraestructura común, con gobernanza y seguridad incluidas. 

En general, todas las funciones de interconexión, equilibrio de carga, supervisión, registro, autenticación, seguridad, autoescalado e integración continua/entrega continua (CI/CD, por sus siglas en inglés) son controladas por la plataforma CaaS.

CaaS permite a las organizaciones aprovechar los beneficios de la infraestructura en la nube, mientras que al mismo tiempo ayuda a evitar cualquier dependencia del proveedor que vendría con su típica plataforma como servicio (PaaS) -como AWS Elastic Beanstalk, Azure App Service o Google App Engine- ya que los propios contenedores permiten una portabilidad simple a través de varios entornos.

Si los contenedores son el camino que quiere seguir, entonces la diferencia entre CaaS y la ejecución en la clásica infraestructura como servicio (IaaS) se reduce a si su organización tiene los recursos y habilidades para implementar y administrar Kubernetes (u otra capa de orquestación de contenedores) por sí misma, o si se beneficiaría dejándoselo a un proveedor de nube. La decisión también puede depender de si su entorno de contenedores debe abarcar múltiples nubes y/o entornos locales. Varios proveedores ofrecen plataformas de CaaS que pueden desplegarse ya sea localmente o en la nube (vea más abajo). 

"Puede gestionar las cosas a nivel de infraestructura y configurar el orquestador usted mismo, o puede utilizar una plataforma de contenedores que maneje la infraestructura subyacente y proporcione un orquestador preinstalado listo para que despliegue y escale sus contenedores", escribió el ex desarrollador del Deutsche Bank y la BBC, Rob Isenberg, en su libro Docker for Rails Developers, publicado por O'Reilly.

Los beneficios de CaaS

Ejecutar sus contenedores en CaaS es como ejecutar sus máquinas virtuales en IaaS: los principales beneficios son la velocidad de despliegue y la facilidad de uso, así como la simplicidad del modelo de nube de pago por uso y la ya mencionada libertad de la dependencia del proveedor.

Al dejar su infraestructura de contenedores a un proveedor de nube, puede ponerse en marcha sin invertir en su propio hardware y sin construir y ejecutar sus propios clústeres de Kubernetes (u otro sistema de orquestación de contenedores). Además, al contenerizar aplicaciones, puede migrar más fácilmente las aplicaciones a diferentes entornos o ecosistemas de proveedores, lo que proporciona una mayor flexibilidad y opciones de escalabilidad.

Todo esto también tiene esas oportunidades tan importantes para la eficiencia de los costos, ya que los contenedores están mejor equipados para escalar horizontalmente según lo dicte la demanda, lo que permite a las organizaciones pagar solo por los recursos de la nube que utilizan. Los contenedores son mucho más livianos que las máquinas virtuales (VM), lo que significa que consumen menos recursos, resultando en beneficios en la velocidad y en la reducción de costos.

Otro beneficio es la coherencia de la instrumentación y el registro, ya que el aislamiento de los servicios individuales en los contenedores puede permitir una agregación de registros más eficaz y una vigilancia centralizada mediante el popular modelo de despliegue de sidecar

La migración de las aplicaciones tradicionales a los contenedores sigue siendo un obstáculo importante para su adopción, incluso cuando se ejecutan en CaaS, como lo manifiesta el 34% de los encuestados en el informe 2020 State of Cloud de Flexera. La migración a los contenedores suele implicar la división de las aplicaciones monolíticas en microservicios, algo que para las organizaciones más grandes y antiguas puede suponer un importante cambio cultural y técnico que no debe tomarse a la ligera.

Principales opciones de CaaS

La mayoría de los principales proveedores de nube tienen ofertas de CaaS, y hay varios otros que están buscando entrar en la acción.

El líder del mercado de servicios en la nube, Amazon Web Services (AWS), ha visto una fuerte adopción de su Elastic Container Service (ECS) y su Elastic Kubernetes Service (EKS). Del mismo modo, la adopción del Azure Kubernetes Service ha aumentado considerablemente según el análisis de Flexera, al igual que el de Google Kubernetes Engine (GKE).

Los tres gigantes de la nube también ofrecen ahora servicios de Kubernetes sin servidor o serverless, con AWS ECS en Fargate, Google Cloud Run en GKE y Azure Container Instances. A diferencia de EKS, AKS y GKE, estos servicios eliminan la necesidad de realizar tareas de administración de servidores y son ideales para casos de uso de consumo bajo demanda.

Gran parte de las capacidades de gestión de contenedores de Google Cloud se encuentran ahora bajo el paraguas de Anthos, que permite la gestión de aplicaciones basadas en contenedores a través de la infraestructura local y las principales nubes públicas (Google Cloud Platform y AWS, con soporte de Azure en camino). Anthos combina GKE para cargas de trabajo en la nube, GKE On-Prem y la consola Anthos Config Management, que permite centralizar la administración, las políticas y la seguridad en los despliegues híbridos y multi-nube de Kubernetes.

Aparte de los "tres grandes" proveedores de nube, IBM/Red Hat, VMware, SUSE/Rancher, Canonical, D2iQ (antes Mesosphere), Rackspace, Oracle, HPE, Alibaba, Huawei y Tencent tienen cierto sabor a una opción de CaaS gestionado. Algunas de estas ofertas pueden ser desplegadas localmente, en las nubes públicas o ambos.

¿Qué CaaS es el mejor?

La empresa consultora Gartner no tiene un cuadrante mágico para los proveedores de CaaS, pero en el último informe Competitive Landscape: Public Cloud Container Services realizado por Wataru Katsurashima, identifica a GKE de Google como la principal opción de Kubernetes gestionados.

Los analistas de Forrester colocan a AWS en el primer lugar de su más reciente New Wave for Public Cloud Enterprise Container Platforms, en el tercer trimestre del 2019, con Microsoft y Google justo detrás. Sin embargo, cabe señalar que el informe de Forrester solo consideró a siete proveedores y se centró estrictamente en los despliegues de nubes públicas.

De acuerdo con los autores de Forrester, Dave Bartoletti y Charlie Dai, AWS "lidera la manada con opciones de despliegue, seguridad e integraciones profundas". "Con una amplia gama de opciones de consumo de Kubernetes (K8s) totalmente gestionados (y serverless), y la mayoría de los contenedores desplegados directamente en su infraestructura de nube, AWS sigue innovando e integrando profundamente su plataforma de contenedores con sus principales características de seguridad y de red".

El informe de Forrester instó tanto a Microsoft como a Google a simplificar sus plataformas de contenedores. Microsoft fue elogiado por su mejor experiencia de desarrollador y alcance global, pero fue criticado por su complejidad -que era un estribillo común en el informe. Google fue aplaudido por su vasta experiencia en Kubernetes y sus esfuerzos por atravesar entornos multi-nube, pero fue igualmente criticado por su complejidad.

Dicho esto, Amazon EKS sigue siendo la plataforma de gestión de contenedores más utilizada, según el Estudio CNCF 2019, con GKE, Docker EE/CE y AKS justo detrás.

El informe 2020 State of Cloud Report de Flexerafija el uso empresarial de AWS EKS/ECS en un 55% y señala que otro 23% de las empresas encuestadas planea utilizar esas opciones de CaaS en el futuro; afirma que la adopción del Azure Kubernetes Service (AKS) alcanzó el 50% y que otro 26% planea usarlo en el futuro; e indica que Google Kubernetes Engine (GKE) alcanzó el 26% y que otro 27% de las empresas encuestadas planea utilizarlo en el futuro. Sin embargo, plantea que los Kubernetes autogestionados siguen superando a todas las opciones de CaaS en el 63% de las empresas encuestadas.

Recursos de CaaS

Las principales fuentes de información sobre CaaS son los propios proveedores, haciendo que sea más difícil realizar una elección informada e imparcial. Como se detalló anteriormente, tanto Forrester como Gartner han examinado el tema en detalle, pero su enfoque está puesto más en los proveedores que destacan que en cómo ponerse al día rápidamente con CaaS en la producción.

Tampoco hay muchos libros sobre el tema todavía, pero el Software Architect's Handbook de O'Reilly da una buena visión general.

Docker ha estado en el centro de los contenedores y de la gestión de los mismos durante años, y la empresa tiene un buen contenido de video sobre el tema, incluyendo esta sesión con Patrick Chanezon, miembro del personal técnico; y esta reseña de Sandor Klein, vicepresidente para Europa, Oriente Medio y África.