Deployer une application php simple vers Azure Kubernetes Service avec Azure DevOps



Dans cet article, je vais vous expliquer comment déployer une application Web PHP en utilisant Azure DevOps et Azure Kubernetes Service (AKS). Nous allons parcourir ensemble les étapes nécessaires pour configurer un pipeline de déploiement, construire une image Docker, la stocker dans Azure Container Registry (ACR), et déployer votre application sur AKS.


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."; ?>




Vous devez aussi créer un Dockerfile qui contiendra le code suivant nécessaire a la création d'une image docker de l'application.


# Use the official PHP image as the base image
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.



Enregistrer un commentaire

Plus récente Plus ancienne