Site icon A DevOps journey

Azure DevOps : Tour d’horizon

Les usines logicielles tel que Azure DevOps, Gitlab ou la suite Atlassian sont devenues incontournables dans le monde du développement. L’intégration d’outils de versionning (Git par exemple), de gestion de projet, l’automatisation des livraisons… Ce sont des outils puissants et faciles à utiliser ! Tout du moins dans une utilisation basique. Etant très complets, ils ne sont souvent pas exploités à leurs maximums. C’est pourquoi je vous propose de (re)voir ensemble certaines fonctionnalités proposées par Azure DevOps.

Qu’est-ce qu’une « usine logicielle »?

Si l’on devait donner une définition, ça donnerait quelque chose comme ça : « les usines logicielles (ou forges logicielles) sont des applications ou des ensembles d’applications permettant de gérer l’ensemble de la vie d’un logiciel. » Dit autrement, c’est un logiciel qui permettra à l’ensemble de l’équipe de travailler ensemble sur la solution qu’ils développent (développeurs, testeurs, et chef de projet !). Ces outils sont fortement liés aux concepts de DevOps et de DevSecOps.

Mais concrètement, comment ça se présente?

La définition est loin d’être évidente, car chaque logiciel concurrent propose des services qui lui sont propres. Cependant on retrouve certains points communs à tous :

Ces explications sont brèves et parfois incomplètes, mais nous expliciterons chaque partie un peu plus loin.

En plus de cette base, certaines usines logicielles ont donc des fonctionnalités supplémentaires pour accompagner au mieux les équipes et les projets.

Pourquoi Azure DevOps?

Parce qu’il faut bien un exemple, et que c’est l’outil que j’utilise le plus à ce jour . J’ai aussi beaucoup travaillé sur la suite Atlassian pendant des années, mais je trouve qu’Azure DevOps est une solution plus adaptée d’un point de vue fonctionnalité comme d’un point de vue sécurité. Utilisant notamment le cloud Azure, l’intégration est un avantage important pour faciliter la gestion au jour le jour. Nous verrons tout les avantages au cours de cette suite d’articles.

Qu’est-ce qu’Azure DevOps?

Azure DevOps est une usine logicielle proposée par Microsoft. Certains l’ont peut-être connu dans ses versions précédentes, qui s’appelaient alors TFS (pour Team Fundation Server). Azure DevOps est son digne successeur, avec le même socle mais amélioré.

Un des grands avantages des outils Microsoft, c’est l’intégration entre les différents outils qui est souvent très simple et efficace. Et Azure DevOps n’y fait pas exception.

Créer un nouveau projet, le mettre en place sur Azure DevOps, et le déployer se fait en quelques minutes. Mais si vous êtes dans un environnement entièrement Microsoft (Visual studio ou VS Code, et Azure), alors les tâches deviennent extrêmement simples. L’ensemble des accès étant sur votre compte Microsoft, lui-même relié à Azure AD, Azure DevOps reconnais alors directement l’ensemble des VM, app services ou Azure Function disponibles.

Vous pouvez voir un exemple de déploiement sur Azure avec Azure DevOps dans cette captation réalisée sur une session du Microsoft User Group de Montpellier.

Exemple de déploiement sur Azure avec Azure DevOps

Et si je n’utilise pas Azure / .Net?

L’outil devient alors une usine logicielle plus classique, mais continue à être extrêmement compétitive. Vous pouvez très bien développer une application Rubis ou NodeJs sur Azure DevOps, et la déployer sur AWS ou sur vos serveurs On Premise. Il n’y a aucune contre-indication à cela.

C’est le grand avantage d’Azure DevOps, à mes yeux tout du moins. L’outil est en soi très performant et complet (j’en reparlerai dans un autre article). Mais si en outre vous utilisez des technologies Microsoft, cela accentue nettement sa simplicité d’utilisation, tout en accroissant la sécurité des données de l’entreprise.

Et les fonctionnalités?

On va y retrouver de nombreuses fonctionnalités, que l’on va détailler dans des articles dédiés. Voici les principales parties :

L’écran de base d’un nouveau projet Azure DevOps

Bon, combien ça coûte?

Les coûts d’Azure DevOps sont très raisonnables, surtout en comparant à la concurrence. Le prix de votre projet Azure DevOps dépendra surtout de deux facteurs : le nombre de développeurs, et le nombre de processus de build parallélisé que vous souhaiterez afin de faire fonctionner vos pipelines en parallèle.

Licences développeurs

Côté licence, il faut savoir qu’il existe trois types de comptes sur Azure DevOps :

Les différents types d’abonnement

Ainsi, pour une entreprise fictive avec 13 développeurs répartis comme suis :

Seules 2 licences développeurs devraient être achetées (5 gratuites, 2 payantes, et 6 développeurs avec une licence embarquée dans l’abonnement Visual studio).

Licences processus de build

Par défaut, Azure DevOps est gratuit avec un process unique de 1800 minutes de build sur Azure, offert mensuellement. Vos pipelines CI/CD peuvent ainsi tourner sur un temps total cumulé de 1800 minutes. Ainsi, si votre pipeline de build dure 30mn, et votre pipeline de déploiement 10mn, vous pouvez par exemple faire 50 builds et 30 déploiements par mois (50*30 + 30*10 = 1800).

Par contre, aucune tâche ne sera parallélisée, car vous n’avez qu’un seul job disponible. L’achat de jobs supplémentaires permet de paralléliser les tâches de build et de déploiement. Ces jobs sont communs à vos différents projets sur une même organisation. Nous verrons dans la section Pipeline comment ils peuvent être organisés et gérés.

Il existe deux types de process :

Dans les deux cas, tous les process achetés ne possèdent par de limite de temps d’exécution. Le plan gratuit est quant à lui limité à 1800 minutes.

Liens utiles

Pour le tableau des prix sur Azure DevOps, vous pouvez suivre ce lien.
Pour les avantages liés aux abonnements Visual Studio, c’est ici.

Quitter la version mobile