Le processus de déploiement de votre application Web PHP, depuis la machine du développeur jusqu'à Azure Kubernetes Service (AKS), suit un flux étape par étape. Voici comment cela fonctionne :
Étape 1 : Commit du Code vers GitHub
Le développeur écrit et modifie le code de l'application Web PHP sur sa machine locale.
Une fois les modifications terminées, le développeur fait un commit du code vers le référentiel GitHub. Cela peut être fait en utilisant des commandes Git ou des outils visuels.
Étape 2 : Construction et Push de l'Image Docker
Lorsqu'un nouveau code est commit vers le référentiel, le pipeline Azure DevOps est automatiquement déclenché.
Le pipeline commence par récupérer le code depuis le référentiel GitHub et le fichier Dockerfile. Le Dockerfile contient les instructions pour construire l'image Docker de l'application.
Le pipeline utilise le Dockerfile pour construire l'image Docker. Cette image inclut le code de l'application, les dépendances et les configurations nécessaires.
Une fois que l'image est construite, elle est poussée (pushée) vers Azure Container Registry (ACR). ACR est un registre de conteneurs sécurisé qui stocke les images Docker.
Étape 3 : Déploiement vers AKS
Avec l'image Docker stockée dans ACR, le pipeline configure AKS pour déployer l'application.
Le pipeline crée ou met à jour les ressources AKS nécessaires, telles que les pods et les services.
AKS récupère l'image Docker depuis ACR et déploie l'application à l'intérieur des pods. Chaque pod contient une instance de l'application.
AKS gère automatiquement le dimensionnement, la haute disponibilité et la gestion des pods.
À ce stade, l’application Web PHP est déployée et fonctionne sur AKS. Tout le processus, depuis le commit du code jusqu'au déploiement sur AKS, est automatisé grâce au pipeline Azure DevOps. Cela garantit un déploiement rapide, cohérent et reproductible de votre application, avec la possibilité de mettre à jour facilement en faisant des commits de nouvelles versions du code vers GitHub.
Étape 1 : Configuration des ressources Azure
Installez et connectez-vous à Azure CLI :
Vous pouvez télécharger Azure CLI depuis le site officiel ou en utilisant une ligne de commande sur la machine client windows
winget install -e --id Microsoft.AzureCLI
Ouvrez un terminal ou une invite de commande et exécutez az login pour vous connecter à votre compte Azure.
Sélectionnez l'ID d'abonnement où déployer les ressources Azure
az account set --subscription <nom ou ID>
Créez un cluster Azure Kubernetes Service (AKS) :
Utilisez la commande suivante pour créer un groupe de ressources :
az group create --name VotreNomDeGroupeDeRessources --location VotreEmplacement
Remplacez VotreNomDeGroupeDeRessources par un nom unique pour votre groupe de ressources et VotreEmplacement par votre région Azure souhaitée.
Maintenant, créez le cluster AKS au sein du groupe de ressources
:
az aks create --resource-group VotreNomDeGroupeDeRessources --name VotreNomDeClusterAKS --node-count 1 --generate-ssh-keys --location westus --kubernetes-version 1.26.4
Étape 2 : Configuration du référentiel GitHub
Créez un nouveau référentiel GitHub avec un accès privé ou public.
Sur votre machine locale, créez un répertoire pour l'application, puis accédez-y en utilisant la commande cd. Clonez le contenu du dépotoir GitHub dans ce répertoire, créez ensuite un
fichier index.php à l'intérieur de ce répertoire, et remplacez le contenu du fichier index.php
dans le répertoire de l'application par le code suivant de l'application Web PHP :
Exemple d'application Web PHP (index.php) :
<?php echo "Bonjour, le monde ! Ceci est une application Web PHP s'exécutant dans un conteneur Docker situé a l’intérieur d’un POD."; ?>
FROM php:7.4-apache
# Copy the PHP application code to the container's webroot
COPY index.php /var/www/html/
Étape 3 : Valider le code PHP sur GitHub
Dans votre terminal, accédez au répertoire du code de l'application.
Initialisez le répertoire de l'application :
git init
Ajoutez les modifications à la zone de staging :
git add index.php
Validez les modifications avec un message de validation significatif :
git commit -m "Mise à jour du code de l'application Web PHP"
Envoyez le code à la branche principale de votre référentiel GitHub :
git push origin main
Étape 4 : Créer un projet Azure DevOps
Accédez à Azure DevOps (https://aex.dev.azure.com/) et connectez-vous avec votre compte Azure.
Créez un nouveau projet et donnez-lui un nom significatif.
Note : Si vous avez déjà créé une organisation, vous pouvez la sélectionner à partir de cette page et y accéder, ou changer le répertoire dans lequel l'organisation sur laquelle vous voulez travailler est située ou doit être créée.
Étape 5 : Créer un pipeline Azure
Dans votre projet Azure DevOps, accédez à Pipelines > Pipelines > Nouveau pipeline.
Choisissez GitHub comme source de votre référentiel de code et autorisez Azure DevOps à accéder à votre compte GitHub.
Sélectionnez GitHub en tant que source de votre référentiel de code et autorisez Azure DevOps à accéder à votre compte GitHub.
Autorisez Azure DevOps à accéder à votre référentiel.
Sélectionnez le référentiel contenant le code de votre application Web PHP.
Choisissez le modèle de pipeline qui correspond à vos besoins. Ici, nous choisirons "Déploiement vers le service Azure Kubernetes".
Lorsque vous le faites, on vous demandera de choisir un abonnement Azure sur lequel vous souhaitez déployer votre application.
Sélectionnez l'abonnement sur lequel vous souhaitez déployer l'application, puis saisissez l'adresse e-mail de la personne qui possède les autorisations nécessaires sur l'abonnement pour accomplir cette tâche.
Choisissez le nom du cluster, l'espace de noms dans lequel l'application sera déployée dans l'AKS et le registre de conteneurs Azure où l'image Docker sera poussée.
Le port de service correspond au port sur lequel l'adresse IP associée au POD de l'application.
Un code prédéfini est alors généré correspondant au modèle de déploiement choisi.
Maintenant, cliquez sur le bouton bleu "Exécuter" pour lancer le pipeline et déployer l'application Web.
Avant de le faire, on vous demandera d'entrer le message de validation afin de déployer le fichier YAML qui définit le code du pipeline sur votre référentiel d'application GitHub.
Dans cet exemple, nous effectuons une validation sur la branche principale sur laquelle le pipeline a un déclencheur activé.
Maintenant, notre pipeline est en attente pour démarrer la tâche et déployer l'application.
Étape 6 : Déclencher le pipeline
Validez et envoyez toutes les modifications apportées au code de votre application Web PHP et au fichier Dockerfile vers votre référentiel GitHub pour déclencher le pipeline Azure.
Le pipeline construira automatiquement l'image Docker, la poussera vers ACR (Azure Container Registry) et déploiera l'application Web PHP vers AKS (Azure Kubernetes Service).
Étape 7 : Vérifier le déploiement
Une fois que le pipeline a été exécuté avec succès, accédez à votre portail Azure.
Trouvez votre cluster AKS, accédez à la section "Workloads" et vérifiez que les pods de votre application Web PHP sont en cours d'exécution.
Accédez à votre application Web PHP en trouvant l'adresse IP externe de votre service AKS et en visitant l'application dans votre navigateur web.