0% ont trouvé ce document utile (0 vote)
3 vues3 pages

Dockerisation de l'Application Voting App

Le document décrit le développement d'une application cloud native, Voting App, utilisant une architecture microservices avec plusieurs composants, dont un serveur web et des bases de données. Il détaille les étapes de dockerisation des services, de déploiement via Kubernetes, et de vérification des images et des volumes créés. Enfin, il fournit des instructions pour accéder aux interfaces de vote et de résultats via des URL spécifiques.

Transféré par

di
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues3 pages

Dockerisation de l'Application Voting App

Le document décrit le développement d'une application cloud native, Voting App, utilisant une architecture microservices avec plusieurs composants, dont un serveur web et des bases de données. Il détaille les étapes de dockerisation des services, de déploiement via Kubernetes, et de vérification des images et des volumes créés. Enfin, il fournit des instructions pour accéder aux interfaces de vote et de résultats via des URL spécifiques.

Transféré par

di
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Dakar Institute of Technology (DIT) 2021 ⎯ 2022

_______________________________________________________________________________________________________________

Développement d’une Application Cloud Native

Objectif : Comprendre l’architecture basée sur les microservices. Dockerisation, déploiement et


orchestration d’une application basée sur des microservices

A. Architecture de l’application Voting App


Voting App est une application opensource maintenue par Docker. Elle est utilisée pour les démos et les
présentations. L’intérêt de cette application est qu’elle utilise l’approche microservices avec 5 services :
− voting-app : un serveur web en python qui expose l’interface de vote.
− redis : une base de données rapide mais non persistante qui va récupérer les résultats de vote.
− worker : écrit .NET et qui récupère les votes depuis redis, les consolide et les met dans une base de
données persistante.
− db : une base de données postgresql qui va stocker de manières définitive et durable les résultats de
vote.
− result-app : un serveur web en [Link] qui expose le résultat de vote.

1. Cloner le code source de l’application dans votre répertoire local avec la commande :
cd ~
git clone [Link]

B. Dockerisation de l’application Voting App


Trois des microservices de l’application possèdent du code et des configurations à intégrer dans les
images Docker à créer. Les images des bases de données sont déjà disponibles sur Dockerhub, donc pas
besoin de les créer de nouveau.
NB : dans les commandes qui vont suivre, remplacer DockerID par votre prope DockerID.
2. Se déplacer dans le répertoire voting-app, vérifier avec la commande ls si fichier Dockerfile est
bien présent. Ensuite créer l’image DockerID/vote-app:1.0 avec la commande :
cd ~/voting-app/vote-app
docker build -t DockerID/vote-app:1.0 .

3. Se déplacer dans le répertoire worker, vérifier avec la commande ls si fichier Dockerfile est bien
présent. Ensuite créer l’image DockerID/worker:1.0 avec la commande :
cd ~/voting-app/worker
docker build -t DockerID/worker:1.0 .

_____________________________________________________________________________
Dr Ousmane SADIO | [Link]@[Link]
Dakar Institute of Technology (DIT) 2021 ⎯ 2022
_______________________________________________________________________________________________________________

4. Se déplacer dans le répertoire result-app, vérifier avec la commande ls si fichier Dockerfile est
bien présent. Ensuite créer l’image DockerID/result-app:1.0 avec la commande :
cd ~/voting-app/result-app
docker build -t DockerID/result-app:1.0 .

5. Afficher les images qui viennent d’être crées :


docker images

6. Une fois les images créer, vous devez les pousser vers Dockerhub.
docker push DockerID/vote-app:1.0
docker push DockerID/worker:1.0
docker push DockerID/result-app:1.0

NB : si vous n’êtes pas authentifié à Docker, utiliser au préalable la commande docker login avant de
pousser les images vers Dockerhub.
7. Connectez-vous sur la plateforme Dockerhub et vérifiez si les images poussées y sont bien
présentes.
C. Déploiement de l’application Voting App
Le déploiement de l’application se fera par le biais de spécifications dans des fichier yaml à exécuter
avec la commande kubectl.
8. Tous les fichers yaml se trouvent dans le répertoire k8s-specifications. Accéder à ce répertoire puis
afficher son contenu.
cd ~/voting-app/k8s-specifications
ls

NB :
− Tout le déploiement se fera dans le namespace vote.
− Tous les microservices devant exposer leurs services (adresse IP, ports réseau, nom de service) ont,
en plus de leurs spécifications de Pod ou Deployment, des spécifications yaml de Service.
− Les microservices de base de données redis et db devront utiliser des volumes de stockage
nécessitant la création de PersistentVolume et PersistentVolumeClaim.
9. Indiquer dans les spécifications yaml des Pods ou Deployments des microservices dockérisés le
nom des images que vous avez poussé dans Dockerhub.
10. Créer les répertoires de volume pour les PersistentVolume de redis et db
sudo mkdir -p /mnt/data-voting-app/redis
sudo mkdir -p /mnt/data-voting-app/db

11. Créer le namespace vote à partir de la spécification du fichier [Link]


kubectl apply -f [Link]

12. Déployer les PersistentVolume et PersistentVolumeClaim des microservices concernés


kubectl apply -f [Link]
kubectl apply -f [Link]
kubectl apply -f [Link]
kubectl apply -f [Link]

_____________________________________________________________________________
Dr Ousmane SADIO | [Link]@[Link]
Dakar Institute of Technology (DIT) 2021 ⎯ 2022
_______________________________________________________________________________________________________________

13. Vérifier si les volumes crées sont opérationnels


kubectl get pv -n=vote
kubectl get pvc -n=vote

14. Déployer le vote-app et son service associé


kubectl apply -f [Link]
kubectl apply -f [Link]

15. Vérifier si les pods et les services de vote-app ont bien démarrés
kubectl get pods -n=vote
kubectl get services -n=vote

16. Refaire l’étapes 14. pour les autres microservices.


17. En se basant sur les informations des services, avec quels moyens pourra-t-on accéder aux
interfaces de vote et de résultat. Ensuite accéder ces interfaces via votre navigateur.
• vote-app : service NodePort 31000 d’où URL = [Link]:31000

• result-app : service NodePort 31000 d’où URL = [Link]:31001

_____________________________________________________________________________
Dr Ousmane SADIO | [Link]@[Link]

Vous aimerez peut-être aussi