Para tener éxito, un desarrollador debe empaquetar y transportar de forma 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 tus contenedores.
Los contenedores como servicio (CaaS) son un modelo de servicio en la nube que proporciona una plataforma gestionada y automatizada para la orquestación de contenedores. Es una forma de organizar y optimizar el funcionamiento de los clústeres.
Imagina que todos tus programas están en un espacio de oficina virtual y que hay un gestor que se encarga de que la oficina no se destruya ni se sature. Eso es la creación en contenedores. No tienes que lidiar con los problemas. A cambio, puedes centrarte en cómo se ejecuta tu código.
CaaS tiende un puente 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 centren en la lógica de las aplicaciones en lugar de en la gestión de clústeres.
CaaS funciona proporcionando un entorno gestionado y creado en torno a un motor de orquestación de contenedores. En este sentido, Kubernetes es el estándar del sector para un motor de orquestación de contenedores. El proceso crea una separación de responsabilidades entre los desarrolladores y la infraestructura básica:
Tareas de un desarrollador: en primer lugar, 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 completado, un producto de CaaS se hace cargo: después de crearse y almacenarse, lo único que queda es aplicar la gestión a través de una API o una interfaz. Un producto de CaaS como Google Kubernetes Engine puede ayudar a gestionar 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.
Después, el nuevo despliegue se gestiona automáticamente. Esto puede incluir:
CaaS es una plataforma versátil que puede servir de base para arquitecturas y prácticas de desarrollo.
Puede ser una plataforma ideal para desplegar aplicaciones y microservicios.
Puede ser una forma excelente de empaquetar aplicaciones antiguas con la modernización de esas aplicaciones.
Para las estructuras de desarrollo, una plataforma de CaaS puede ser una gran opción. Un sistema automatizado puede crear una nueva imagen de contenedor, ejecutar pruebas y desplegarla en la plataforma de CaaS sin periodos de inactividad.
CaaS automatiza las necesidades de tráfico. La plataforma puede añadir o quitar instancias de contenedor automáticamente para adaptarse a la demanda de los usuarios.
Las plataformas de CaaS creadas con estándares abiertos como Kubernetes pueden proporcionar un entorno operativo coherente en centros de datos on-premise y en varias nubes públicas. Esto ayuda a las empresas a ejecutar sus aplicaciones en contenedores en cualquier lugar sin tener que rediseñarlas.
El panorama de los recursos como servicio incluye varios modelos, cada uno de los cuales ofrece un nivel diferente de abstracción y gestión. CaaS se sitúa entre la infraestructura como servicio (IaaS) y la plataforma como servicio (PaaS).
Modelo en la nube | Qué gestionas | Nivel de abstracción | Caso práctico típico |
Infraestructura como servicio (IaaS) | Sistema operativo, middleware, entorno de ejecución, aplicación y datos. | Bajo: proporciona acceso a recursos informáticos sin procesar, como máquinas virtuales y almacenamiento. | Crear una infraestructura personalizada desde cero. |
Contenedores como servicio (CaaS) | Aplicación y configuración. | Medio: gestiona el clúster y el SO, pero te da control sobre el entorno de contenedores. | Orquestación de aplicaciones en contenedores a escala. |
Plataforma como servicio (PaaS) | Aplicaciones y datos. | Alto: gestiona casi todo; tú proporcionas el código fuente y la plataforma lo ejecuta. | Desplegar rápidamente aplicaciones web y APIs sencillas. |
Función como servicio (FaaS) (sin servidor) | Solo la función de código. | Muy alto: ejecuta funciones individuales y 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: ofrece un producto de software terminado a través de la Web. | Consumir software listo para usar, como el correo o CRM. |
Modelo en la nube
Qué gestionas
Nivel de abstracción
Caso práctico típico
Infraestructura como servicio (IaaS)
Sistema operativo, middleware, entorno de ejecución, aplicación y datos.
Bajo: proporciona acceso a recursos informáticos sin procesar, como máquinas virtuales y almacenamiento.
Crear una infraestructura personalizada desde cero.
Contenedores como servicio (CaaS)
Aplicación y configuración.
Medio: gestiona el clúster y el SO, pero te da control sobre el entorno de contenedores.
Orquestación de aplicaciones en contenedores a escala.
Plataforma como servicio (PaaS)
Aplicaciones y datos.
Alto: gestiona casi todo; tú proporcionas el código fuente y la plataforma lo ejecuta.
Desplegar rápidamente aplicaciones web y APIs sencillas.
Función como servicio (FaaS) (sin servidor)
Solo la función de código.
Muy alto: ejecuta funciones individuales y 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: ofrece un producto de software terminado a través de la Web.
Consumir software listo para usar, como el correo o CRM.
Los contenedores están pensados para distribuir tu software en cualquier lugar. Consulta más información sobre los contenedores.
Sí. De hecho, te dan acceso a muchas otras ventajas, como la separación de responsabilidades, el aislamiento de aplicaciones, el procesamiento por lotes y los despliegues en la nube híbrida.
Google Kubernetes Engine (GKE) simplifica el descubrimiento de servicios gracias a su perfecta integración con los mecanismos nativos de Kubernetes, como los objetos de servicio y el DNS. Como oferta de servicio gestionado, GKE mejora estas funciones con características como servicios multiclúster (MCS) e integración directa con Directorio de servicios.
Se puede crear y desplegar código nuevo más rápido, pero los recursos no se gestionan ni se conciben una y otra vez.
Adoptar una plataforma de CaaS puede aportar varias ventajas estratégicas a los equipos de desarrollo y operaciones de las empresas.
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 según las necesidades.
Programación rápida
Esto ayuda a mejorar las prácticas de automatización.
Mantenimiento mejorado
Si falla un componente, la plataforma se encarga de solucionarlo rápidamente para que los usuarios puedan seguir usando las funciones.
El proveedor se encarga del trabajo básico, por lo que dependes del código de tu aplicación, el acceso a la cuenta, el cortafuegos y las reglas de acceso. La seguridad en un entorno de CaaS se basa en un modelo de responsabilidad compartida. El proveedor de CaaS es responsable de proteger la infraestructura básica. Esto incluye proteger el plano de control de la orquestación de contenedores, preservar los centros de datos físicos y la red, y asegurar la integridad del propio servicio gestionado.
El cliente es responsable de la seguridad de los componentes que controla. Esto implica proteger el código de aplicación, gestionar el acceso al clúster mediante Gestión de Identidades y Accesos (IAM), configurar políticas de red para controlar el tráfico entre contenedores y, lo que es fundamental, proteger la cadena de suministro de software. Esto significa usar un registro de contenedores seguro y analizar las imágenes de contenedor para detectar vulnerabilidades conocidas antes de desplegarlas.
Responsabilidades del equipo de TI:
Google Kubernetes Engine (GKE) es la principal oferta de CaaS de Google Cloud. La configuración de un despliegue básico sigue un flujo de trabajo lógico y nativo de contenedores.
Paso 1: Crea un contenedor para tu aplicación.
Primero, escribe un archivo de texto para tu aplicación. Este sencillo archivo de texto contiene las instrucciones para crear 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.
Crea la imagen de contenedor a partir de tu archivo de texto y súbela a un registro privado y seguro. Artifact Registry es el servicio gestionado 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 mediante la consola de Google Cloud o la herramienta de línea de comandos gcloud. Si quieres una experiencia totalmente gestionada que automatice la gestión y el escalado de nodos, puedes elegir un clúster de Autopilot de GKE.
Paso 4: Define tu despliegue.
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 quieres usar, el número de réplicas que quieres y los recursos de CPU y memoria necesarios.
Paso 5: Despliega tu aplicación en el clúster.
Usa la herramienta de línea de comandos de Kubernetes, kubectl, para aplicar el 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 de trabajador del clúster.
Paso 6: Publica tu aplicación.
Para que los usuarios puedan acceder a tu aplicación a través de Internet, crea un manifiesto de servicio de Kubernetes de tipo LoadBalancer. Cuando aplicas este manifiesto, GKE aprovisiona automáticamente un balanceador de carga en la nube y le asigna una dirección IP pública, lo que permite enrutar el tráfico externo a tus contenedores en ejecución.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.