Développer votre service

Cette page décrit quelques éléments à connaître pour commencer à développer un service pour Knative serving.

Exigences relatives au code

Lorsque vous développez un service, vous devez répondre aux exigences suivantes :

  • Le service doit écouter les requêtes. Vous pouvez configurer le port sur lequel sont envoyées les requêtes. Dans les instances de conteneur Knative serving, la valeur de la variable d'environnement PORT correspond toujours au port auquel les requêtes sont envoyées. Votre code doit vérifier l'existence de cette variable d'environnement PORT et, si elle est présente, écouter le port correspondant afin de maximiser la portabilité.
  • Le service doit être sans état. Il ne peut pas reposer sur un état local persistant.
  • Le service ne doit pas effectuer d'activités en arrière-plan qui sortent du cadre du traitement des requêtes.

Vous trouverez plus de précisions sur ces contraintes dans le contrat d'exécution du conteneur.

Compatibilité avec les langages de programmation

Knative serving vous permet d'écrire du code dans le langage de programmation de votre choix.

Utiliser un serveur Web

Vous pouvez utiliser un serveur Web pour écouter le port requis, ainsi que pour traiter et acheminer les requêtes entrantes. Par exemple, les développeurs en Node.js peuvent utiliser Express.js, les développeurs en Python, Flask, les développeurs en Ruby, Sinatra, etc.

Intégrer le code à un conteneur

Pour déployer sur Knative serving, vous devez fournir une image de conteneur. Une image de conteneur est un format de package qui inclut votre code, ses packages, les dépendances binaires nécessaires, le système d'exploitation à utiliser et tout autre élément nécessaire à l'exécution de votre service.

Un fichier nommé Dockerfile est couramment utilisé pour déclarer comment construire l'image du conteneur.

Les fichiers Dockerfile démarrent très souvent à partir d'une image de base (par exemple, FROM golang:1.11). Vous pouvez trouver des images de base gérées par les auteurs de systèmes d'exploitation et de langages sur Docker Hub. Cloud Build vérifie s'il existe des images mises en cache avant de les extraire de Docker Hub. Si vous utilisez un outil de compilation tiers, vous pouvez configurer votre daemon Docker afin qu'il vérifie l'existence des images dans le même cache. Vous pouvez également trouver des images de base gérées par Google dans Google Cloud Marketplace.

Si vous utilisez vos propres fichiers binaires, assurez-vous qu'ils sont compilés pour Linux ABI x86_64.

Ces ressources fournissent des informations supplémentaires sur les fichiers Dockerfile :

Étape suivante