En esta página, se describen algunas consideraciones que debes tener en cuenta para comenzar a desarrollar un servicio para Knative serving.
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 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 la existencia de esta variable de entornoPORT
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
Knative serving te permite escribir el 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 Knative serving, 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:
- Obtén información sobre la sintaxis de Dockerfile en la referencia de Dockerfile.
- Obtén información sobre cómo se ajustan los Dockerfiles a través de las sugerencias en Prácticas recomendadas para escribir Dockerfiles.
¿Qué sigue?
- Una vez que tengas el Dockerfile y el código del servicio, debes compilar una imagen de contenedor y, luego, seguir iterando en las pruebas locales.
- Si estás migrando una aplicación web existente, consulta Migra el servicio a Knative serving.
- Si deseas conocer las prácticas recomendadas para diseñar, implementar y probar un servicio en Knative serving, consulta las Sugerencias de desarrollo.