Azure Dev Spaces : ou comment simplifier le développement Kubernetes

Le service cloud de Microsoft permet aux équipes de développement de mettre au point leur Web API sous Azure Kubernetes Services de manière souple.

Comme vous le savez, Microsoft offre de nombreux outils utiles au quotidien des développeurs : Azure, Docker, tout y passe et l’utilisation de Kubernetes y est simplifiée.

On parle de plus en plus de DevOps, des problématiques qui vont avec et forcément on nous parle énormément de Docker et de Kubernetes. Et Microsoft, grâce à Azure a voulu simplifier la vie aux développeurs en leur proposant une offre alliant Azure et le développement Kubernetes : Azure Dev Spaces.

Mais qu’est-ce qu’Azure Dev Spaces ?

C’est un service qui va se lier à un cluster reposant sur le service Azure Kubernetes Services (AKS) afin de simplifier l’utilisation de Kubernetes. Il va donc nous permettre de déployer et de déboguer plus facilement votre application dans AKS tout en ayant une configuration la plus optimisée et minimale possible sans aucune réplication ou simulation des dépendances.

Qu’est-ce que ça offre ?

Ici, on va parler d’équipes, de simplification des développements et d’itérations rapides. De quoi intéresser tous les chefs de projets et tous les développeurs en quête de solutions rapides et efficaces.

On parle d’applications avec une architecture en micro-services où l’on peut mettre à jour de façon indépendante certaines parties du code sans affecter le reste du cluster AKS ou d’autres membres de l’équipe de développement. Les principaux avantages : 

  • Réduit temps de configuration pour les nouveaux dev intégrant l’équipe,
  • Accélère le travail d’une équipe via une itération plus rapide,
  • Supprime la nécessite de répliquer ou de simuler des dépendances.
© Infeeny

Comme on peut le voir sur l’image ci-dessus, l’équipe de développement travaille sous le même namespace, ce qui facilite grandement les différentes opérations, à savoir le développement de différentes fonctionnalités. Chacun des collaborateurs va pouvoir travailler sur sa partie, la compiler et la tester sans impacter le reste de son équipe de développement. C’est grâce à cela que les itérations sont plus rapides et plus courtes. Le projet possède différentes ramifications qui en font une force de proposition notable.

Mais en pratique ?

On peut dire grossièrement qu’ADS est découpé en deux parties :

  • La partie contrôleur
  • Les outils client.

Voici un schéma récapitulant le fonctionnement d’ADS

© Infeeny

Tips : il faut utiliser la commande use-dev-spaces pour activer Dev Spaces sur votre cluster AKS

Le côté client va permettre à l’utilisateur de communiquer avec le contrôleur mais aussi générer les fichiers nécessaires au bon fonctionnement d’AKS :

  • Dockerfile,
  • Helm,
  •  Config ADS pour notre application.

Tous ces fichiers vont être associés à votre projet et ces informations regroupées vont être transmises au contrôleur. Le contrôleur quant à lui va communiquer avec AKS. Son rôle principal étant de compiler, synchroniser, déployer l’application sur AKS et de récupérer les informations puis de les retransmettre au client (qui va récupérer les différentes sorties de l’application).

Le débogage ?

Azure Dev Spaces peut être lié à plusieurs environnements de développement différents (ici nous nous sommes basés sur Visual Studio Code qui comprend un plugin permettant de lier ADS directement).

Lors du débogage Azure Dev Spaces va recompiler le code de manière incrémentielle au sein du conteneur existant afin d’accélérer la boucle de modification/débogage. Cette opération se fait à l’instar d’une régénération et d’un redéploiement d’une image de conteneur à chaque modification de code effectuée, ces étapes nécessitant un temps considérable contrairement à ce que fait Azure Dev Spaces.