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

Para tener éxito, un desarrollador debe empaquetar y transportar de manera eficiente diferentes tipos de aplicaciones. Los contenedores como servicio (CaaS) pueden ser una forma de simplificar la implementación, las operaciones y el mantenimiento de tu infraestructura y contenedores.

Video sobre las 3 maneras principales de ejecutar contenedores en Google Cloud

Definición de contenedores como servicio (CaaS)

Los contenedores como servicio (CaaS) son un modelo de servicio en la nube que proporciona una plataforma administrada y automatizada para la organización de contenedores. Es una forma de organizar y optimizar el funcionamiento del clúster.

Imagina que todos tus programas viven en un espacio de oficina virtual, y que hay un administrador que se encarga de la oficina y evita que se destruya o se sobrecargue. De eso se trata la creación de contenedores. No tienes que lidiar con los problemas, en cambio, puedes enfocarte en cómo se ejecuta tu código.

CaaS cierra la brecha entre el contenedor terminado del desarrollador y un entorno de ejecución de nivel de producción, ya que abstrae la infraestructura subyacente y permite que los equipos se enfoquen en la lógica de la aplicación en lugar de en la administración de clústeres.

¿Cómo funciona CaaS?

CaaS funciona proporcionando un entorno administrado creado en torno a un motor de organización de contenedores, y Kubernetes es el estándar de la industria para un motor de organización de contenedores. El proceso crea una separación de responsabilidades entre los desarrolladores y la infraestructura fundamental:

El trabajo de un desarrollador: Primero, debe poder tomar todas las dependencias y su aplicación, y empaquetarlas en una imagen de contenedor. Esta imagen es un plano portátil de la aplicación.

Una vez que se completa, un producto de CaaS se hace cargo: Después de que se crea y almacena, lo único que queda es aplicar la administración a través de una API o interfaz. Un producto de CaaS como Google Kubernetes Engine puede ayudar a manejar todo lo demás. Ahora, es el momento de definir el estado del programa. ¿Necesitas tres servidores que ejecuten el mismo programa? Este servicio puede ayudarte.

Luego, la nueva implementación se maneja automáticamente. Esto puede incluir:

  • Colocar aplicaciones en nodos y administrar transferencias a través de conexiones
  • Escalar con diferentes tipos de métricas o recursos
  • Administración y reparación automática del código en acción
  • Conexión de servicios y recursos

Ejemplos y usos de CaaS

CaaS es una plataforma versátil que puede servir como base para arquitecturas y prácticas de desarrollo.

Puede ser una plataforma ideal para implementaciones de aplicaciones y microservicios.

Puede ser una excelente forma de empaquetar aplicaciones más antiguas con modernización de apps heredadas.

Para las estructuras de desarrollo, una plataforma CaaS puede ser excelente. Un sistema automatizado puede crear una nueva imagen de contenedor, ejecutar pruebas e implementarla en la plataforma CaaS sin tiempo de inactividad.

CaaS automatiza las necesidades de tráfico. La plataforma puede agregar o quitar instancias de contenedor automáticamente para satisfacer la demanda de los usuarios.

Las plataformas de CaaS basadas en estándares abiertos como Kubernetes pueden proporcionar un entorno operativo coherente en centros de datos locales y múltiples nubes públicas. Esto ayuda a las empresas a ejecutar sus aplicaciones alojadas en contenedores en cualquier lugar sin tener que rediseñarlas.

CaaS frente a otros modelos de nube

El panorama de "como servicio" incluye varios modelos, cada uno de los cuales ofrece un nivel diferente de abstracción y administración. CaaS se ubica de forma única entre la infraestructura como servicio (IaaS) y la plataforma como servicio (PaaS).

Modelo de nube

Qué administras

Nivel de abstracción

Caso de uso típico

Infraestructura como servicio (IaaS)

Sistema operativo, middleware, tiempo de ejecución, aplicación, datos

Bajo: Proporciona acceso a recursos de procesamiento sin procesar, como máquinas virtuales y almacenamiento.

Creación de infraestructura personalizada desde cero

Contenedores como servicio (CaaS)

Aplicación y configuración

Medio: Administra el clúster y el SO, pero te da control sobre el entorno del contenedor.

Organización de aplicaciones en contenedores a gran escala

Plataforma como servicio (PaaS)

Aplicación y datos

Alto: Administra casi todo; tú proporcionas el código fuente y la plataforma lo ejecuta.

Implementación rápida de aplicaciones web y APIs sencillas

Función como servicio (FaaS) (sin servidores)

Solo la función de código

Muy alto: Ejecuta funciones individuales sin estado en respuesta a eventos.

Tareas de procesamiento de datos ligeras y basadas en eventos

Software como servicio (SaaS)

Nada (eres el usuario final)

Completo: Entrega un producto de software terminado a través de la Web.

Consumo de software listo para usar, como correo electrónico o CRM

Modelo de nube

Qué administras

Nivel de abstracción

Caso de uso típico

Infraestructura como servicio (IaaS)

Sistema operativo, middleware, tiempo de ejecución, aplicación, datos

Bajo: Proporciona acceso a recursos de procesamiento sin procesar, como máquinas virtuales y almacenamiento.

Creación de infraestructura personalizada desde cero

Contenedores como servicio (CaaS)

Aplicación y configuración

Medio: Administra el clúster y el SO, pero te da control sobre el entorno del contenedor.

Organización de aplicaciones en contenedores a gran escala

Plataforma como servicio (PaaS)

Aplicación y datos

Alto: Administra casi todo; tú proporcionas el código fuente y la plataforma lo ejecuta.

Implementación rápida de aplicaciones web y APIs sencillas

Función como servicio (FaaS) (sin servidores)

Solo la función de código

Muy alto: Ejecuta funciones individuales sin estado en respuesta a eventos.

Tareas de procesamiento de datos ligeras y basadas en eventos

Software como servicio (SaaS)

Nada (eres el usuario final)

Completo: Entrega un producto de software terminado a través de la Web.

Consumo de software listo para usar, como correo electrónico o CRM

Preguntas frecuentes

Los contenedores están diseñados para entregar tu software en cualquier lugar. Aprende más sobre los contenedores.

Sí. De hecho, te dan acceso a muchos otros beneficios, como la separación de responsabilidades, el aislamiento de aplicaciones, el procesamiento por lotes y las implementaciones de nube híbrida.

Google Kubernetes Engine (GKE) simplifica el descubrimiento de servicios a través de su integración perfecta con los mecanismos nativos de Kubernetes, como los objetos Service y DNS. Como oferta de servicio administrado, GKE mejora estas capacidades con funciones como Services de varios clústeres (MCS) y la integración directa con el Directorio de servicios.

Se puede crear y, luego, implementar código nuevo más rápido, pero los recursos no se administran ni se consideran una y otra vez.

Beneficios de CaaS

Adoptar una plataforma de CaaS puede proporcionar varios beneficios estratégicos para los equipos de desarrollo y operaciones empresariales.

Portabilidad

CaaS ayuda a las cargas de trabajo. Si una aplicación basada en contenedores se ejecuta en tu framework de CaaS estándar, se puede editar fácilmente.

Escalabilidad

Puedes adaptar los recursos a lo que se necesita.

Programación rápida

Esto ayuda a mejorar las prácticas de automatización.

Mantenimiento mejorado

Si un componente falla, la plataforma lo aborda y lo corrige rápidamente para mantener la funcionalidad del usuario.

Seguridad de CaaS

El proveedor se encarga del trabajo fundamental, lo que te hace depender del código de tu app, el acceso a la cuenta, el firewall y las reglas de acceso. La seguridad en un entorno de CaaS opera con un modelo de responsabilidad compartida. El proveedor de CaaS es responsable de proteger la infraestructura fundamental. Esto incluye proteger el plano de control de la organización de contenedores, proteger los centros de datos físicos y la red, y garantizar la integridad del servicio administrado en sí.

El cliente es responsable de la seguridad de los componentes que controla. Esto implica proteger el código de la aplicación, administrar el acceso al clúster con Identity and Access Management (IAM), configurar políticas de red para controlar el tráfico entre contenedores y, de manera fundamental, proteger la cadena de suministro de software. Esto significa usar un registro de contenedores seguro y analizar las imágenes de contenedores en busca de vulnerabilidades conocidas antes de implementarlas.

Responsabilidades del equipo de TI:

  • Probar el código de la aplicación
  • Usar y controlar Identity & Access Management (IAM)
  • Seguridad de software

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.

Cómo configurar CaaS con Google Kubernetes Engine

Google Kubernetes Engine (GKE) es la principal oferta de CaaS de Google Cloud. La configuración de una implementación básica sigue un flujo de trabajo lógico y nativo del contenedor.

Paso 1: Crea un contenedor para tu aplicación 

Primero, escribe un archivo de texto para tu aplicación. Este simple archivo de texto contiene las instrucciones para compilar tu aplicación, sus dependencias y su entorno de ejecución en una imagen de contenedor estática.

Paso 2: Almacena tu imagen en un registro 

Compila la imagen del contenedor a partir de tu archivo de texto y envíala a un registro seguro y privado. Artifact Registry es el servicio administrado de Google Cloud para almacenar y controlar las versiones de tus imágenes de contenedor.

Paso 3: Crea un clúster de GKE 

Aprovisiona un clúster de Kubernetes con la consola de Google Cloud o la herramienta de línea de comandos de gcloud. Para una experiencia completamente administrada que automatiza la administración y el escalamiento de nodos, puedes elegir un clúster de GKE Autopilot.

Paso 4: Define tu implementación 

Crea un archivo de manifiesto de Kubernetes (por ejemplo, deployment.yaml). En este archivo, defines de forma declarativa el estado deseado de tu aplicación, especificando la imagen de contenedor que se usará, la cantidad de réplicas que quieres y los recursos de CPU y memoria necesarios.

Paso 5: Implementa tu aplicación en el clúster 

Usa la herramienta de línea de comandos de Kubernetes, kubectl, para aplicar tu archivo de manifiesto al clúster. El plano de control de GKE recibe la solicitud y programa los contenedores de tu aplicación para que se ejecuten en los nodos trabajadores del clúster.

Paso 6: Expón tu aplicación 

Para que tu aplicación sea accesible a los usuarios a través de Internet, crea un manifiesto de Service de Kubernetes de tipo LoadBalancer. Cuando aplicas este manifiesto, GKE aprovisiona automáticamente un balanceador de cargas en la nube y le asigna una dirección IP pública, lo que enruta el tráfico externo a tus contenedores en ejecución.

¿Qué problema intentas resolver?
What you'll get:
Guía paso a paso
Arquitectura de referencia
Soluciones previamente compiladas disponibles
Este servicio se creó con Vertex AI. Debes ser mayor de 18 años para usarlo. No ingreses información sensible, confidencial ni personal.

Recursos adicionales

  • En este video de Google Cloud Skills Boost, se proporciona una descripción general básica de los contenedores y de cómo funciona Kubernetes como motor de organización.
  • En esta útil guía, se explican las diferencias clave entre otros modelos de servicio en la nube importantes, como IaaS, PaaS y SaaS.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud