Desarrollar un servicio

En esta página se describen algunos aspectos que debes tener en cuenta para empezar a desarrollar un servicio para Knative Serving.

Requisitos del código

Debe cumplir los siguientes requisitos al desarrollar un servicio:

  • El servicio debe escuchar las solicitudes. Puedes configurar el puerto en el que se envían las solicitudes. En las instancias de contenedor de Knative Serving, el valor de la variable de entorno PORT siempre refleja el puerto al que se envían las solicitudes. Tu código debe comprobar si existe esta variable de entorno PORT y, si está presente, debe usarla para maximizar la portabilidad.
  • El servicio debe ser sin estado. No puede depender de un estado local persistente.
  • El servicio no debe realizar actividades en segundo plano que no estén relacionadas con la gestión de solicitudes.

Puedes consultar más información sobre estas restricciones en el contrato de tiempo de ejecución de contenedores.

Compatibilidad con lenguajes de programación

Knative Serving te permite escribir código en el lenguaje de programación que prefieras.

Usar un servidor web

Puedes usar un servidor web para escuchar en el puerto necesario y para procesar y enrutar las solicitudes entrantes. Por ejemplo, los desarrolladores de Node.js pueden usar Express.js, los de Python pueden usar Flask y los de Ruby pueden usar Sinatra, entre otros.

Contenerización del código

Para desplegar en Knative Serving, debes proporcionar una imagen de contenedor. Una imagen de contenedor es un formato de empaquetado que incluye tu código, sus paquetes, las dependencias binarias necesarias, el sistema operativo que se va a usar y cualquier otro elemento necesario para ejecutar tu servicio.

Se suele usar un archivo llamado Dockerfile para declarar cómo compilar la imagen de contenedor.

Los Dockerfiles suelen empezar con una imagen base (por ejemplo, FROM golang:1.11). Puedes encontrar imágenes base mantenidas por los autores de SO y lenguajes en Docker Hub. Cloud Build comprueba si hay imágenes almacenadas en caché antes de extraerlas de Docker Hub. Si usas una herramienta de compilación de terceros, puedes configurar tu daemon de Docker para que busque imágenes en la misma caché. También puedes encontrar imágenes base gestionadas por Google en Google Cloud Marketplace.

Si usas tus propios archivos binarios, asegúrate de que estén compilados para Linux ABI x86_64.

En estos recursos encontrarás más información sobre los archivos Dockerfile:

Siguientes pasos