Implementación de Cloud Run: Serverless y Contenedores en Google Cloud

Clase 13 de 48Entrenamiento de Google Cloud Platform

Resumen

¿Qué es el cómputo sin administración o serverless?

El cómputo sin administración, también conocido como serverless, es un paradigma que ofrece una forma innovadora de administrar aplicaciones en la nube. Este enfoque elimina la necesidad de gestionar infraestructura directa, ya que en su lugar, la infraestructura es administrada por un proveedor de servicios cloud. Los tres pilares fundamentales de este modelo son:

  • No manejar infraestructura: El usuario no debe preocuparse por los detalles de la infraestructura física.
  • Seguridad administrada: Se mantiene una responsabilidad compartida sobre ciertos aspectos de seguridad.
  • Pago por uso: Solo se paga por los recursos realmente utilizados.

¿Cómo se diferencian serverless y contenedores?

Históricamente, serverless y contenedores parecían conceptos opuestos. Sin embargo, serverless es mucho más que funciones; se basa en la ejecución de servicios en respuesta a eventos. Los contenedores permiten escribir código en cualquier lenguaje y con cualquier librería. Se han convertido en un estándar de la industria; de hecho, se estima que para el 2022, más del 75% de las organizaciones ejecutarán aplicaciones contenerizadas, según Gartner. La idea de combinar la portabilidad de los contenedores con los beneficios serverless resulta en una plataforma más flexible y eficiente.

¿Qué beneficios ofrece Google Cloud Run?

Google Cloud Run es un servicio diseñado para ejecutar contenedores de forma totalmente administrada. Entre sus beneficios destacan:

  1. Activación y escalado automático: Se activa con los requests de usuarios y se apaga cuando no hay actividad, ahorrando en costos.
  2. Administración de revisiones de código y configuración: Permite un rollback rápido, lo que mejora la seguridad y la eficiencia del desarrollo.
  3. Soporte para dominios y certificados SSL: Proporcionando un canal seguro HTTPS.
  4. Facilidad de operación: Es sencillo de usar, ideal para equipos pequeños o principiantes.

Cloud Run se fundamenta en KNative, un proyecto open source respaldado por Google, que permite correr contenedores sin preocuparse por la complejidad de la infraestructura subyacente.

¿Cómo se despliega un servicio en Google Cloud Run?

El proceso para desplegar un servicio en Cloud Run es directo y eficiente. A continuación, se explica cómo realizarlo:

  • Crear un servicio: Desde la consola de Cloud Run, elige "Compute Options" como nombre del servicio y selecciona la región donde se desplegará.
  • Configurar acceso externo: Para permitir la accesibilidad desde internet.
  • Seleccionar la imagen de contenedor: Puede ser una ya desplegada en App Engine o un demo disponible en Cloud Run.
  • Desplegar y manejar tráfico: Una vez desplegada la nueva versión, distribuye el tráfico entre distintas versiones si es necesario.

Cloud Run simplifica el manejo de versiones y autentificación, presentando una URL protegida y permitiendo administrar el tráfico fácilmente entre diferentes versiones de una aplicación.

Ejemplo de YAML para configuración en Cloud Run

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: example
spec: 
  template:
    metadata:
      name: example-00001
    spec:
      containers:
      - image: gcr.io/example/image:latest

Con este YAML, se define cómo está implementado el servicio dentro de un clúster de Kubernetes, que a su vez es administrado por Google.

¿Qué ofrece el despliegue híbrido con Cloud Run?

Cloud Run no solo es útil en ambientes cloud; también permite el despliegue híbrido. Esto implica desplegar contenedores desde Cloud Run en un clúster que el usuario maneja o incluso en instalaciones locales (on-premise). Esta capacidad híbrida democratiza aún más el acceso a soluciones serverless, permitiendo la integración de soluciones en cualquier infraestructura existente.

Este conocimiento sobre el cómputo sin administración y el uso de Google Cloud Run abre muchas oportunidades. Ya sea para desarrolladores que buscan eficiencia, o empresas que desean optimizar sus costos y recursos, serverless se presenta como una opción robusta y adaptable para el futuro del desarrollo tecnológico.

¡Sigue explorando y aprendiendo sobre estas herramientas para maximizar tu éxito en el mundo del desarrollo cloud!