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'environnementPORT
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 :
- Découvrez la syntaxe de Dockerfile dans la documentation de référence sur Dockerfile.
- Découvrez comment les fichiers Dockerfile s'intègrent ensemble grâce aux conseils de la page Bonnes pratiques pour l'écriture de fichiers Dockerfile.
Étape suivante
- Une fois que vous avez votre code de service et votre fichier Dockerfile, vous devez créer une image de conteneur, puis continuer à effectuer des tests en local.
- Si vous migrez une application Web existante, consultez la page Migrer un service vers Knative serving.
- Pour connaître les bonnes pratiques de conception, de mise en œuvre, de test et de déploiement d'un service dans Knative serving, consultez les Conseils de développement.