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 des fichiers skaffold.yaml
distincts et référencés à partir d'un fichier skaffold.yaml
de niveau supérieur. Vous pouvez transformer une configuration en 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 racine
skaffold.yaml
pour le déploiement (configurations) - Configurer la configuration de déploiement Cloud Code uniquement pour les modules
frontend
etbackend
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
- Développer des parties d'une application de manière indépendante
- Déboguer une application Kubernetes
- Exécuter une application Kubernetes