Fil Rouge DevOps - Formations Uptime
Fil Rouge DevOps - Formations Uptime
Fil Rouge DevOps - Formations Uptime
L’activité de DevOps dans une équipe est une activité de support au développement et
d’automatisation des divers éléments pratiques nécessaire au bon fonctionnement d’une
application. Elle est par nature intégrative.
Ce TP consiste donc logiquement à rassembler les aspects pratiques (éléments vus en TP)
découverts dans les modules du cursus et de les combiner autour d’une infrastrure
Kubernetes pour réaliser en particulier une CI/CD de notre application utilisant Jenkins.
Attention :
Toutes les parties ne sont pas forcément obligatoire. L’appréciation sera globale. Les
bonus sont des idées de personnalisation à réaliser si vous avez le temps et le
courage.
Les parties de la fin du cursus (Jenkins et peut-être le Monitoring et/ou AWS et/ou
Ansible) seront ajoutées par la suite.
Rendu
https://supports.uptime-formation.fr/tp-fil-rouge-devops/ 1/7
27/07/2024 11:28 Fil rouge DevOps :: Formations Uptime
On peut se servir de diapositives afin d’avoir un support oral. L’idée est de voir la
gestion du temps, l’expression orale et évidemment le côté technique. Et attention, à
la répartition de parole dans le groupe, chacun doit occuper sa place.
Objectifs
Mettre en œuvre un système d’intégration continue et de déploiement DevOps
Deux dépots de code sur Github ou Gitlab contenant pour le premier le code
d’infrastructure et pour le second l’application à déployer sur l’infrastructure.
https://supports.uptime-formation.fr/tp-fil-rouge-devops/ 2/7
27/07/2024 11:28 Fil rouge DevOps :: Formations Uptime
Dans ce TP nous allons utiliser Virtualbox pour créer un ou plusieurs serveurs (selon vos
préférences, voir bonus kubernetes installation dans la suite). Pour respecter les bonnes
pratiques de l’infrastructure as code et pouvoir partager et reproduire l’installation nous
aimerions créer ces machines virtuelles à l’aide de code descriptif. L’outil adapté pour cela
s’appelle Vagrant .
Vagrant.configure("2") do |config|
config.vm.provider :virtualbox do |v|
v.memory = 2048
v.cpus = 2
end
https://supports.uptime-formation.fr/tp-fil-rouge-devops/ 3/7
27/07/2024 11:28 Fil rouge DevOps :: Formations Uptime
Installez dans la machine virtuelle Vagrant précédente une application web flask (par
exemple celle proposée dans le tutoriel).
Rassemblez les étapes d’installation dans un script shell (à ajouter dans le dossier
d’infra).
Idée de bonus
Personnalisez votre application Flask / Python avec une ou des pages en plus ou une
fonctionnalité en plus
2 - Git
https://supports.uptime-formation.fr/tp-fil-rouge-devops/ 4/7
27/07/2024 11:28 Fil rouge DevOps :: Formations Uptime
Versionner le code de l’application précédente avec Git. Créer un dépôt sur Github ou
Gitlab.
Un-e membre du groupe crée le dépôt et ajoute ses collègues à l’application en leur
donnant le status de maintainer .
Poussez le code avec une branche develop , une branche main (production).
Chaque membre du groupe créé une branche à son nom et s’efforce de ne plus
pousser sur develop ou main dans le futur mais en utilisant sa branche.
Le code sera ensuite mergé dans la branche develop et/ou main .
Idées de bonus
Écrire à l’avance des issues (au fur et a mesure plutôt que toutes au départ) pour
décrire les prochaines étapes à réaliser.
Les merger dans main sans passer par develop (les feature branches
remplacent la branche develop ) en effectuant des pull request Github ou
merge requests Gitlab.
3 - Docker
En s’aidant du TP2 et TP4 du module Docker, et de votre script d’installation existant :
Dockeriser une application flask simple (par exemple celle de la partie précédent ou
celle du TP Docker à la place) en écrivant un Dockerfile.
(facultatif) Ajoutez un fichier docker-compose.yml . pour lancer l’application.
Ajoutez les fichiers créées à votre dépôt d’application.
Idée de bonus
https://supports.uptime-formation.fr/tp-fil-rouge-devops/ 5/7
27/07/2024 11:28 Fil rouge DevOps :: Formations Uptime
Dockeriser l’application microblog avec une base de données MySQL à mettre dans un
conteneur à part (voir le chapitre 19 du Flask Mega Tutorial et les différentes branches
du dépôt https://github.com/Uptime-Formation/microblog/).
(facultatif) Comme vu dans les TP, rajoutez une instruction HEALTHCHECK au
Dockerfile pour tester si votre app va bien.
4 - Kubernetes installation
En suivant/vous inspirant des TP kubernetes et de la partie 0.
Idées de bonus
Installez un repository d’image docker simple en vous aidant de tutoriels sur Internet
et de l’image registry:2, ou bien de solutions plus avancées
Créez un cluster de 3 noeuds k3s avec Vagrant et k3sup.
5 - Kubernetes déploiement de
l’application
Déployez une application flask dans le cluster en vous inspirant du TP déployer une
application de A à Z.
Versionnez les fichiers d’installation dans un dossier k8s du dépôt d’application.
Idée de bonus
https://supports.uptime-formation.fr/tp-fil-rouge-devops/ 6/7
27/07/2024 11:28 Fil rouge DevOps :: Formations Uptime
Déployer en plus l’application flask avec une base de donnée externe (voir
chapitre 19 du mega tutorial). Installez MySQL à l’aide d’un chart Helm.
https://supports.uptime-formation.fr/tp-fil-rouge-devops/ 7/7