Desarrolla tu servicio

En esta página, se describen algunos aspectos que debes saber para comenzar a desarrollar un servicio destinado a la entrega de Knative.

Requisitos de código

Debes cumplir con los siguientes requisitos cuando desarrolles un servicio:

  • El servicio debe detectar las solicitudes. Puedes configurar el puerto al que se envían las solicitudes. Dentro de las instancias de contenedores de entrega de Knative, el valor de la variable de entorno PORT siempre refleja el puerto al que se envían las solicitudes. Tu código debe comprobar la existencia de esta variable de entorno PORT y, si está presente, escuchar en ella para maximizar la portabilidad.
  • Debe ser un servicio sin estado. No puede depender de un estado local persistente.
  • El servicio no debe realizar actividades en segundo plano fuera del alcance del control de solicitudes.

Puedes encontrar más información sobre estas restricciones en Contrato del entorno de ejecución de contenedores.

Compatibilidad con lenguajes de programación

La entrega de Knative te permite escribir código en el lenguaje de programación que elijas.

Usa un servidor web

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

Crea contenedores en tu código

Para implementar en la entrega de Knative, debes proporcionar una imagen de contenedor. Una imagen de contenedor es un formato de empaquetado que incluye el código, sus paquetes, cualquier dependencia binaria necesaria, el sistema operativo que se usará y todo lo que se necesite para ejecutar el servicio.

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

Los Dockerfiles suelen comenzar a partir de una imagen base (p. ej., FROM golang:1.11). Puedes encontrar imágenes base en Docker Hub, donde los creadores del SO y el lenguaje se encargan de su mantenimiento. Cloud Build revisa si hay imágenes almacenadas en caché antes de extraer desde Docker Hub. Si usas una herramienta de compilación de terceros, puedes configurar tu daemon de Docker para verificar si hay imágenes en la misma caché. También puedes buscar imágenes base administradas por Google en Google Cloud Marketplace.

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

Estos recursos proporcionan más información sobre Dockerfiles:

¿Qué sigue?