Modules Skaffold

Skaffold est un outil de ligne de commande qui facilite le développement continu pour les applications Kubernetes natives. Skaffold gère le workflow de création, de transfert et de déploiement de votre application, et fournit des composants fondamentaux pour la création de pipelines CI/CD. Skaffold est le moteur qui fait tourner Cloud Code.

Les projets Skaffold commencent généralement à l'aide d'une seule configuration skaffold.yaml qui décrit comment créer et déployer l'application. À mesure qu'un projet se développe, il peut être utile de diviser le pipeline d'application en parties distinctes.

Skaffold permet de définir plusieurs dépendances de configuration, placées ensemble dans le même fichier skaffold.yaml et séparées à l'aide des séparateurs de documents YAML (---) ou placées dans un fichier skaffold.yaml distinct et référencés à partir d'un fichier skaffold.yaml de niveau supérieur. Vous pouvez intégrer une configuration dans un module en lui attribuant un nom à l'aide du champ .metadata.name.

L'utilisation de modules vous permet de développer et de déboguer indépendamment différentes parties de l'application. Des dépendances peuvent être définies entre des fichiers de configuration et des modules spécifiques. Pour connaître les étapes d'utilisation de cette fonctionnalité, consultez la section Développer indépendamment différentes parties d'une application.

Déboguer les applications avec les modules Skaffold

Vous pouvez développer et déboguer l'ensemble de l'application ou un ensemble des modules définis de manière itérative. Skaffold gère les dépendances du module et leur ordre de déploiement.

Premiers pas avec un exemple de modules Skaffold

Pour sélectionner des modules pour votre application, consultez la page Compiler certains modules Skaffold et leurs dépendances.

Si vous n'avez pas utilisé de modules Skaffold et que vous souhaitez tester la fonctionnalité avec un exemple, consultez l'exemple de livre d'or, qui est décomposé de façon modulaiure en frontend et backend.

Pour obtenir un exemple d'application d'entreprise à grande échelle, développé à l'aide de différentes technologies et langages en utilisant des modules Skaffold, consultez l'exemple Bank of Anthos.

Cas d'utilisation courants

Cette section présente quelques cas d'utilisation courants pour différents scénarios liés au moment et à la manière d'utiliser les modules dans votre IDE.

Développement de microservices

Vous êtes un développeur frontend travaillant principalement sur le module frontend. En tant que microservice, frontend n'a pas de dépendances explicites de code ou de bibliothèque dans le dépôt backend, mais nécessite le déploiement et l'exécution de backend dans le cluster.

Vous utilisez votre projet basé sur Skaffold, qui contient une définition de module frontend, pour déployer et déboguer un IDE Cloud Code sur un cluster de développement partagé où l'équipe backend déploie également son service. L'équipe DevOps gère ce cluster partagé.

De manière générale, vous ne travaillez pas sur le code de backend et vous ne mettez pas à jour les configurations Kubernetes. Skaffold crée et déploie d'autres configurations requises par frontend. Vous configurez la configuration de déploiement Cloud Code pour effectuer une itération uniquement sur le module frontend.

Vous pouvez également déployer les clusters frontend et backend sur un cluster local pour obtenir une expérience itérative plus rapide.

Développement et débogage de microservices inter-régionaux

Lorsque plusieurs microservices doivent être débogués ensemble, vous pouvez :

  • Ouvrir le répertoire parent dans lequel se trouvent les sous-répertoires contenant le code source des modules.
  • Sélectionner le fichier skaffold.yaml racine du déploiement (configurations).
  • Configurer la configuration de déploiement Cloud Code uniquement pour les modules frontend et backend disponibles localement (et leur module de configuration Kubernetes respectif en cas de modifications).

Vous pouvez également disposer d'un fichier skaffold.yaml racine distinct qui inclut un serveur de données statique pour le développement local.

Modifier le code YAML d'un module intelligent

Vous êtes un ingénieur DevOps qui crée un dépôt de modèles pour l'équipe de développeurs de microservices qui utilise les modules Skaffold. Vous voulez vous assurer que les définitions des modules ne contiennent pas d'erreur (dépendances cycliques ou noms de modules non uniques par exemple) sans avoir à exécuter Skaffold manuellement. Vous utilisez les IDE de Cloud Code pour modifier les fichiers de configuration YAML de Skaffold.

Étape suivante