
Vidéo de présentation de l'auteur et du cours
C'est quoi le Devops?
C'est quoi un pipeline CI/CD?
Les éléments de structure d'un pipeline Azure Devops
Dans cette session, nous allons écrire notre premier pipeline. Ce sera l'occasion d'établir un premier contact avec la syntaxe Yaml et découvrir sans trop entrer dans les détails les premiers éléments de pipeline: steps, jobs, stage, trigger...
Faisons le tour du portail Azure Devops pour découvrir notre futur milieu naturel!
Visite rapide du pipeline Classique. On le rencontre encore souvent et il faut au moins en avoir une culture générale. Ce sera la seule ambition de ce chapitre
Découvrons les éléments de structure d'un pipeline Yaml indispensables.
Les bases de la syntaxe Yaml Devops. Dans ce cours j'essaye de dégager un peu de rationalité dans la syntaxe Yaml Devops pour avoir quelques idées de base.
Elle n'est pas en soit difficile, mais parfois surprenante.
Comment écrire un pipeline avec le portail. Nous allons approfondir une démo faite dans le module d'introduction
En pratique c'est plutôt avec un IDE tel VS Code que l'on procèdera
Un badge dans le README pour marquer le statut du dernier Run du pipeline est un outil bien utile à connaître
Azure Devops Generator est un peu à la marge de ce cours. Mais il rend beaucoup de services pour vos présentations client
Présentation en détail des variables en attendant les démos
Après le cours, les démonstrations
Les variables interviennent aussi pour construire le nom des runs de pipeline. On a souvent besoin de le contrôler
Cours de présentation des paramètres et des expressions. Le sujet a été abordé en partie avec les variables. Nous allons l'approfondir et insister sur le lien de parenté entre paramètre, variable et expression
Une suite de démos indispensables au sujet des paramètres
Même chose, mais pour les expressions
Les commandes de journalisation sont peu connues, mais pourtant très utiles pour dialoguer avec l'agent de build.
Faisons en la démonstration
Sans les tasks, pas de script de build. On va commencer par une petite présentation générale avant de voir plus en détail quelques tâches parmi les plus courantes.
Les task script et bash sont des tasks fondamentales. Impossible d'en faire l'impasse
La task powerShell est une task très importante pour lancer des scripts PowerShell
AzurePowerShell donne la possibilité d'exécuter du code sur un environnement Azure. On découvrira également un service Devops important: Service Connexion qui permet de se connecter à de nombreux services externes comme Azure Devops par exemple
Cette task est une façon de transmettre des variables ou des paramètres à un script
On ne peut pas faire raisonnablement un script un minimum évolué sans être capable de contrôler la façon dont il s'exécute et le moment où il se déclenche.
Dans ce cours nous allons découvrir et expérimenter diverses techniques. Nous apprendrons qu'un pipeline a un cycle de vie, que l'on peut placer des checks. Nous apprendrons à monter un environnement et utiliser une strategy et de nombreux autres outils.
Bref un module très riche en contenu.
Les triggers (déclencheurs) contrôle le moment où le script démarre. inutile de dire que c'est par là qu'il faut commence.
On peut contrôler la façon dont les stages s'exécutent les uns par rapport aux autres. Ce cours présente les techniques.
Et celui-ci en propose des démos.
Les jobs peuvent se lancer de façon asynchrones en parallèle. Nous découvrons comment faire
Les triggers de pipeline donne la possibilité de déclencher un scripts lorsqu'un autre se termine. C'est donc un outil fort utile sur les gros projets.
Ce chapitre est très important car il va vous permettre de d'avancer d'un cran vers votre expertise Azure Devops.
On va parler template, checkout, passage de variables, utilisation de variables sécurisées.
Avec les templates nous allons découper un gros script en plusieurs scripts. Inutile de dire que c'est un outil d'importance.
Checkout est une action qui s'effectue le plus souvent de façon automatique, mais pas toujours...
Parce qu'un template, ne se trouve pas forcément dans le même repository que le script précédent, on aura souvent besoin de ressource. On examinera les types de ressources prises en charge par Yaml Devops
On va approfondir l'utilisation des templates avec un objet très mal documenté. Je ne sais même pas si je suis complet sur ce sujet, ni même si j'en ai compris toutes les subtilités!
On a externalisé une partie du script dans des templates. Mais si on a besoin de leur passer des données?
A priori il semble facile de passer des variables à des stages et des jobs. Mais c'est sans compter sur les portées
Les variables peuvent porter des données sensibles comme les mots de passe où votre coin à champignon favori.
Il est possible de les sécuriser
Les groupes de variables est un outil pour mutualiser un groupe de variables entre plusieurs scripts avec la possibilité de les sécuriser.
Il n'y a pas que les variables que l'on peut sécuriser, mais également des fichiers dans un conteneur de fichiers sécurisés.
On va donc typiquement sécuriser:
certificats de signature
profils de provsionnement Apple
Fichiers de magasins de cléfs Androïd
Des clefs SSH
Ou tout autre fichier contenant des informations sensibles.
Les artefacts sont la plupart du temps ce que produit le pipeline CI. On peut alors les passer aux scripts CD et les versionner.
Ce type d'artefact est le plus classique, mais Microsoft pousse plutôt à utiliser les artefacts de pipeline qui sont plus modernes.
Mais on doit connaître les artefacts de build car ils sont présents dans de très nombreux script.
Ce sont le type d'artefact que va produire un pipeline CI. D'où son importance
Petite présentation générale des flux et dur portail des flux dans Azure Devops. Nous retrouverons cet outil dans les démos qui suivent.
Vous pouvez héberger vos packages Nugets dans Azure Devops sous la forme d'un artefact de flux. C'est très pratique si votre PC n'a pas un accès facile vers le flux Nugets.org qui peut être bloqué par des proxies.
On peut aussi créer son propre flux Nuget dans Devops, vous verrez, c'est très simple!
Les artefacts précédents étaient tous optimisés pour un contexte particulier: flux, passage de fichiers à un pipleine.
Mais il y a des artefacts plus ordinaires. ils n'ont par exemple pas d'autres ambitions que contenir des images, des fichiers de config par exemple. les artefacts universels répondent à ce besoin.
Il a été souvent question d'agents de build au cours des modules qui précèdent. Vous vous doute pourquoi!
Dans ce module nous allons les voir plus en détail
On commence par voir comment ils sont vus par le portail Azure Devops
Les agents proposés par Microsoft ont des limitations. Il est par exemple difficile de les personnaliser. les agents auto-hébergés sont alors faits pour vous!
On a déjà en partie abordé ce sujet et parlé d'environnement. Ce fut surtout pour créer des checks.
Un environnement peut être lié à des ressources physiques comme des VM. C'est le point que nous allons aborder ici.
On a déjà vu les stratégies. Cette démo va montrer comment utiliser l'une d'entre elle. c'est la continuité de la démo qui précède.
Ce cours vous aidera à devenir un véritable expert des pipelines Yaml Azure Devops CI/CD.
Le cours aborde les thèmes suivants:
Prérequis, environnement nécessaire, démarrage
Techniques de base
Variables, paramètres, expressions
Les tasks
Contrôler l'exécution d'un pipeline
Les artefacts
Les agents de build
Déploiement dans une VM
Le cours ne fait que survoler le pipeline classique, il s'attache plutôt aux nouveau modèle: les pipelines Yaml. Plus moderne, plus puissants,. Bref la voie que Microsoft recommande pour vos nouveaux pipelines.
La plupart des sujets sont abordés:
Variables, paramètres, expressions
sécuriser des variables, les groupes de variable
les éléments de pipeline: stage, job, steps, trigger ...
les tasks
orchestration des éléments de pipeline
pipelines sophistiqués
templates, ressources, environnement
créer et comprendre les Sevices Connexion
artefacts: universels, flux ou pipeline/build
agents de build
passage de paramètres entre éléments de pipeline
trigger
environnements, check, stratégie et job de déploiement
Et bien d'autres choses.
Le cours peut ne pas être absolument complet, mais je pense vraiment ne pas en être loin et en tout cas couvrir ce qui est réellement important.
Sa principale caractéristique est d'être très orienté démo. Tout ce qui est annoncé dans le cours est démontré dans des démos faciles à réaliser vous même. En général chaque module commence par un rappel de cours. Je n'entre généralement pas dans les détails à ce stade. je préfère privilégier les démos. C'est ma marque de fabrique.
Vous aurez ainsi plusieurs heures de démos pour comprendre et expérimenter par vous même.
Ce cours part des bases et donc s'adresse aux débutants et faux débutants. Mais il intéressera aussi les utilisateurs plus expérimentés.