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 entornoPORT
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:
- Consulta la referencia de Dockerfile para obtener información sobre la sintaxis de Dockerfile.
- Consulta los consejos de Prácticas recomendadas para escribir Dockerfiles para saber cómo se combinan los Dockerfiles.
Siguientes pasos
- Una vez que tengas el código de servicio y el Dockerfile, debes compilar una imagen de contenedor y, a continuación, seguir iterando en pruebas locales.
- Si vas a migrar una aplicación web, consulta Migrar un servicio a Knative Serving.
- Para consultar las prácticas recomendadas para diseñar, implementar, probar y desplegar un servicio en Knative Serving, consulta los consejos de desarrollo.