Démarrage rapide : Développement en équipe dans Kubernetes avec Azure Dev SpacesQuickstart: Team development on Kubernetes - Azure Dev Spaces

Dans ce guide, vous allez apprendre à :In this guide, you will learn how to:

  • Configurer Azure Dev Spaces sur un cluster Kubernetes managé dans Azure.Set up Azure Dev Spaces on a managed Kubernetes cluster in Azure.
  • Déployer une vaste application avec plusieurs microservices dans un espace de développement.Deploy a large application with multiple microservices to a dev space.
  • Tester un microservice unique dans un espace de développement isolé dans le contexte de l’application complète.Test a single microservice in an isolated dev space within the context of the full application.

Développement en équipe d’Azure Dev Spaces

PrérequisPrerequisites

Créer un cluster Azure Kubernetes ServiceCreate an Azure Kubernetes Service cluster

Vous devez créer un cluster AKS dans une région prise en charge.You must create an AKS cluster in a supported region. Les commandes ci-dessous créent un groupe de ressources nommé MyResourceGroup et un cluster AKS nommé MyAKS.The below commands create a resource group called MyResourceGroup and an AKS cluster called MyAKS.

az group create --name MyResourceGroup --location eastus
az aks create -g MyResourceGroup -n MyAKS --location eastus --disable-rbac --generate-ssh-keys

Activer Azure Dev Spaces sur votre cluster AKSEnable Azure Dev Spaces on your AKS cluster

Utilisez la commande use-dev-spaces pour activer Dev Spaces sur votre cluster AKS et suivez les invites.Use the use-dev-spaces command to enable Dev Spaces on your AKS cluster and follow the prompts. La commande ci-dessous active Dev Spaces sur le cluster MyAKS dans le groupe MyResourceGroup et crée un espace de développement appelé dev.The below command enables Dev Spaces on the MyAKS cluster in the MyResourceGroup group and creates a dev space called dev.

Notes

La commande use-dev-spaces installe également l’interface CLI Azure Dev Spaces si celle-ci n’est pas déjà installée.The use-dev-spaces command will also install the Azure Dev Spaces CLI if its not already installed. Vous ne pouvez pas installer l’interface CLI d’Azure Dev Spaces dans Azure Cloud Shell.You cannot install the Azure Dev Spaces CLI in the Azure Cloud Shell.

az aks use-dev-spaces -g MyResourceGroup -n MyAKS --space dev --yes

Obtenir l’exemple de code d’applicationGet sample application code

Dans cet article, vous utilisez l’exemple d’application de partage de vélos Azure Dev Spaces pour illustrer l’utilisation d’Azure Dev Spaces.In this article, you use the Azure Dev Spaces Bike Sharing sample application to demonstrate using Azure Dev Spaces.

Clonez l’application à partir de GitHub, puis accédez à son répertoire :Clone the application from GitHub and navigate into its directory:

git clone https://github.com/Azure/dev-spaces
cd dev-spaces/samples/BikeSharingApp/

Récupérez HostSuffix pour devRetrieve the HostSuffix for dev

Utilisez la commande azds show-context pour afficher HostSuffix pour dev.Use the azds show-context command to show the HostSuffix for dev.

$ azds show-context

Name                ResourceGroup     DevSpace  HostSuffix
------------------  ----------------  --------  -----------------------
MyAKS               MyResourceGroup   dev       fedcab0987.eus.azds.io

Mettre à jour le graphique Helm avec votre HostSuffixUpdate the Helm chart with your HostSuffix

Ouvrez charts/values.yaml et remplacez toutes les instances de <REPLACE_ME_WITH_HOST_SUFFIX> par la valeur HostSuffix récupérée précédemment.Open charts/values.yaml and replace all instances of <REPLACE_ME_WITH_HOST_SUFFIX> with the HostSuffix value you retrieved earlier. Enregistrer vos modifications et fermez le fichier.Save your changes and close the file.

Exécutez l’exemple d’application dans KubernetesRun the sample application in Kubernetes

Les commandes pour l’exécution de l’exemple d’application sur Kubernetes font partie d’un processus existant et ne dépendent pas des outils Azure Dev Spaces.The commands for running the sample application on Kubernetes are part of an existing process and have no dependency on Azure Dev Spaces tooling. Dans ce cas, Helm représente les outils utilisés pour exécuter cet exemple d’application, mais d’autres outils pourraient être utilisés pour exécuter votre application complète dans un espace de noms au sein d’un cluster.In this case, Helm is the tooling used to run this sample application but other tooling could be used to run your entire application in a namespace within a cluster. Les commandes Helm ciblent l’espace de développement nommé dev que vous avez créé précédemment, mais cet espace de développement est également un espace de noms Kubernetes.The Helm commands are targeting the dev space named dev you created earlier, but this dev space is also a Kubernetes namespace. Par conséquent, comme les autres espace de noms, les espaces de développement peuvent être ciblés par d’autres outils.As a result, dev spaces can be targeted by other tooling the same as other namespaces.

Vous pouvez utiliser Azure Dev Spaces pour le développement en équipe lorsqu’une application est en cours d’exécution dans un cluster, quels que soient les outils utilisés pour le déployer.You can use Azure Dev Spaces for team development after an application is running in a cluster regardless of the tooling used to deploy it.

Utilisez les commandes helm init et helm install pour configurer et installer l’exemple d’application sur votre cluster.Use the helm init and helm install commands to set up and install the sample application on your cluster.

cd charts/
helm init --wait
helm install -n bikesharing . --dep-up --namespace dev --atomic 

Notes

Si vous utilisez un cluster où RBAC est activé, veillez à configurer un compte de service pour Tiller.If you are using an RBAC-enabled cluster, be sure to configure a service account for Tiller. Sinon, les commandes helm échoueront.Otherwise, helm commands will fail.

La commande helm install peut prendre plusieurs minutes.The helm install command may take several minutes to complete. La sortie de la commande affiche l’état de tous les services qu'elle a déployés sur le cluster lors de son exécution :The output of the command shows the status of all the services it deployed to the cluster when completed:

$ cd charts/
$ helm init --wait
...
Happy Helming!

$ helm install -n bikesharing . --dep-up --namespace dev --atomic

Hang tight while we grab the latest from your chart repositories...
...
NAME               READY  UP-TO-DATE  AVAILABLE  AGE
bikes              1/1    1           1          4m32s
bikesharingweb     1/1    1           1          4m32s
billing            1/1    1           1          4m32s
gateway            1/1    1           1          4m32s
reservation        1/1    1           1          4m32s
reservationengine  1/1    1           1          4m32s
users              1/1    1           1          4m32s

Après avoir installé l’exemple d’application et activé Dev Spaces sur votre cluster, utilisez la commande azds list-uris pour afficher les URL de l’exemple d’application dans le dev actuellement sélectionné.After the sample application is installed on your cluster and since you have Dev Spaces enabled on your cluster, use the azds list-uris command to display the URLs for the sample application in dev that is currently selected.

$ azds list-uris
Uri                                                 Status
--------------------------------------------------  ---------
http://dev.bikesharingweb.fedcab0987.eus.azds.io/  Available
http://dev.gateway.fedcab0987.eus.azds.io/         Available

Accédez au service bikesharingweb en ouvrant l’URL publique à partir de la commande azds list-uris.Navigate to the bikesharingweb service by opening the public URL from the azds list-uris command. Dans l’exemple ci-dessus, l’URL publique pour le service bikesharingweb est http://dev.bikesharingweb.fedcab0987.eus.azds.io/.In the above example, the public URL for the bikesharingweb service is http://dev.bikesharingweb.fedcab0987.eus.azds.io/. Sélectionnez Aurelia Briggs (client) en tant qu’utilisateur.Select Aurelia Briggs (customer) as the user. Vérifiez que vous voyez le texte Bonjour Aurelia Briggs | Se déconnecter en haut.Verify you see the text Hi Aurelia Briggs | Sign Out at the top.

Exemple d'application Azure Dev Spaces Bike Sharing

Créer des espaces de développement enfantsCreate child dev spaces

Utilisez la commande azds space select pour créer deux espaces enfants sous dev :Use the azds space select command to create two child spaces under dev:

azds space select -n dev/azureuser1 -y
azds space select -n dev/azureuser2 -y

Les commandes ci-dessus créent sous dev deux espaces enfants nommés azureuser1 et azureuser2.The above commands create two child spaces under dev named azureuser1 and azureuser2. Ces deux espaces enfants représentent des espaces de développement distincts destinés à être utilisés par les azureuser1 et azureuser2 des développeurs pour apporter des modifications à l’exemple d’application.These two child spaces represent distinct dev spaces for the developers' azureuser1 and azureuser2 to use for making changes to the sample application.

Utilisez la commande azds space list pour répertorier tous les espaces de développement et confirmer que dev/azureuser2 est sélectionné.Use the azds space list command to list all the dev spaces and confirm dev/azureuser2 is selected.

$ azds space list
   Name            DevSpacesEnabled
-  --------------  ----------------
   default         False
   dev             True
   dev/azureuser1  True
*  dev/azureuser2  True

Utilisez azds list-uris pour afficher les URL de l’exemple d’application dans l’espace actuellement sélectionné, à savoir dev/azureuser2.Use the azds list-uris to display the URLs for the sample application in the currently selected space that is dev/azureuser2.

$ azds list-uris
Uri                                                             Status
--------------------------------------------------              ---------
http://azureuser2.s.dev.bikesharingweb.fedcab0987.eus.azds.io/  Available
http://azureuser2.s.dev.gateway.fedcab0987.eus.azds.io/         Available

Confirmez que les URL affichés par la commande azds list-uris ont le préfixe azureuser2.s.dev.Confirm that the URLs displayed by the azds list-uris command have the azureuser2.s.dev prefix. Ce préfixe confirme que l’espace actuellement sélectionné est azureuser2, qui est un enfant de dev.This prefix confirms that the current space selected is azureuser2, which is a child of dev.

Accédez au service bikesharingweb pour l’espace de développement dev/azureuser2 en ouvrant l’URL publique à partir de la commande azds list-uris.Navigate to the bikesharingweb service for the dev/azureuser2 dev space by opening the public URL from the azds list-uris command. Dans l’exemple ci-dessus, l’URL publique pour le service bikesharingweb est http://azureuser2.s.dev.bikesharingweb.fedcab0987.eus.azds.io/.In the above example, the public URL for the bikesharingweb service is http://azureuser2.s.dev.bikesharingweb.fedcab0987.eus.azds.io/. Sélectionnez Aurelia Briggs (client) en tant qu’utilisateur.Select Aurelia Briggs (customer) as the user. Vérifiez que vous voyez le texte Bonjour Aurelia Briggs | Se déconnecter en haut.Verify you see the text Hi Aurelia Briggs | Sign out at the top.

Mettre à jour le codeUpdate code

Ouvrez BikeSharingWeb/components/Header.js avec un éditeur de texte et modifiez le texte dans l’élément Span avec userSignOut className.Open BikeSharingWeb/components/Header.js with a text editor and change the text in the span element with the userSignOut className.

<span className="userSignOut">
    <Link href="/devsignin"><span tabIndex="0">Welcome {props.userName} | Sign out</span></Link>
</span>

Enregistrer vos modifications et fermez le fichier.Save your changes and close the file.

Créer et exécuter le service bikesharingweb mis à jour dans l’espace de développement dev/azureuser2Build and run the updated bikesharingweb service in the dev/azureuser2 dev space

Accédez au répertoire BikeSharingWeb/ et exécutez la commande azds up.Navigate to the BikeSharingWeb/ directory and run the azds up command.

$ cd ../BikeSharingWeb/
$ azds up

Using dev space 'dev/azureuser2' with target 'MyAKS'
Synchronizing files...2s
...
Service 'bikesharingweb' port 'http' is available at http://azureuser2.s.dev.bikesharingweb.fedcab0987.eus.azds.io/
Service 'bikesharingweb' port 80 (http) is available at http://localhost:54256
...

Cette commande crée et exécute le service bikesharingweb dans l’espace de développement dev/azureuser2.This command builds and runs the bikesharingweb service in the dev/azureuser2 dev space. Ce service s’exécute en plus du service bikesharingweb en cours d’exécution dans dev et est utilisé uniquement pour les requêtes avec le préfixe d’URL azureuser2.s.This service runs in addition to the bikesharingweb service running in dev and is only used for requests with the azureuser2.s URL prefix. Pour plus d’informations sur le routage entre des espaces de développement parents et enfants, consultez Fonctionnement et configuration d’Azure Dev Spaces.For more information on how routing works between parent and child dev spaces, see How Azure Dev Spaces works and is configured.

Accédez au service bikesharingweb pour l’espace de développement dev/azureuser2 en ouvrant l’URL publique affichée dans la sortie de la commande azds up.Navigate to the bikesharingweb service for the dev/azureuser2 dev space by opening the public URL displayed in the output of the azds up command. Sélectionnez Aurelia Briggs (client) en tant qu’utilisateur.Select Aurelia Briggs (customer) as the user. Vérifiez que vous voyez le texte mis à jour en haut à droite.Verify you see the updated text in the upper right corner. Vous devrez peut-être actualiser la page ou effacer le cache de votre navigateur si vous ne voyez pas immédiatement cette modification.You may need to refresh the page or clear your browser's cache if you do not immediately see this change.

Exemple d'application Azure Dev Spaces Bike Sharing mis à jour

Notes

Quand vous accédez à votre service pendant l’exécution de azds up, les traces des requêtes HTTP sont également affichées dans la sortie de la commande azds up.When you navigate to your service while running azds up, the HTTP request traces are also displayed in the output of the azds up command. Ces traces peuvent vous aider à résoudre les problèmes liés à votre service et à le déboguer.These traces can help you troubleshoot and debug your service. Vous pouvez désactiver ces traces à l’aide de --disable-http-traces lors de l’exécution de azds up.You can disable these traces using --disable-http-traces when running azds up.

Vérifiez que les autres espaces de développement n’ont pas été modifiésVerify other Dev Spaces are unchanged

Si la commande azds up est toujours en cours d’exécution, appuyez sur Ctrl+C.If the azds up command is still running, press Ctrl+c.

$ azds list-uris --all
Uri                                                             Status
--------------------------------------------------              ---------
http://azureuser1.s.dev.bikesharingweb.fedcab0987.eus.azds.io/  Available
http://azureuser1.s.dev.gateway.fedcab0987.eus.azds.io/         Available
http://azureuser2.s.dev.bikesharingweb.fedcab0987.eus.azds.io/  Available
http://azureuser2.s.dev.gateway.fedcab0987.eus.azds.io/         Available
http://dev.bikesharingweb.fedcab0987.eus.azds.io/               Available
http://dev.gateway.fedcab0987.eus.azds.io/                      Available

Accédez à la version dev de bikesharingweb dans votre navigateur, choisissez Aurelia Briggs (client) en tant qu’utilisateur et vérifiez que vous voyez le texte d’origine en haut à droite.Navigate to the dev version of bikesharingweb in your browser, choose Aurelia Briggs (customer) as the user, and verify you see the original text in the upper right corner. Répétez ces étapes avec l’URL dev/azureuser1.Repeat these steps with the dev/azureuser1 URL. Notez que les modifications sont appliquées uniquement à la version dev/azureuser2 de bikesharingweb.Notice the changes are only applied to the dev/azureuser2 version of bikesharingweb. Cette isolation des modifications apportées à dev/azureuser2 permet à azureuser2 d’apporter des modifications sans affecter azureuser1.This isolation of changes to dev/azureuser2 allows for azureuser2 to make changes without affecting azureuser1.

Pour que ces modifications soient répercutées dans dev et dev/azureuser1, vous devez suivre le flux de travail existant ou le pipeline CI/CD de votre équipe.To have these changes reflected in dev and dev/azureuser1, you should follow your team's existing workflow or CI/CD pipeline. Par exemple, ce flux de travail peut impliquer de valider vos modifications dans votre système de contrôle de version et de déployer la mise à jour à l’aide d’un pipeline CI/CD ou d’outils tels que Helm.For example, this workflow may involve committing your change to your version control system and deploying the update using a CI/CD pipeline or tooling such as Helm.

Nettoyer vos ressources AzureClean up your Azure resources

az group delete --name MyResourceGroup --yes --no-wait

Étapes suivantesNext steps

Découvrez comment Azure Dev Spaces vous aide à développer des applications plus complexes sur des conteneurs multiples, et comment il vous est possible de simplifier le développement collaboratif en utilisant différentes versions ou branches de votre code dans différents espaces.Learn how Azure Dev Spaces helps you develop more complex apps across multiple containers, and how you can simplify collaborative development by working with different versions or branches of your code in different spaces.