Objectifs
- Estimer son travail
- Dockeriser une application Java
- Configurer une pipeline CI/CD pour une application Java
- Configurer un déploiement sur Kubernetes pour une application Java
Rendu
- Rapport individuel en Markdown à rendre avant le prochain cours
- Délai: 2 semaines
- Laboratoire noté
Tâches
Estimer son travail
- Estimer le temps nécessaire pour réaliser ce travail.
- Découper le travail en tâches pour faciliter l'estimation.
- Une fois terminé, comparer le temps estimé avec le temps réellement passé.
Tâche | Temps estimé | Temps passé | Commentaire |
---|
Estimation | 10m | 15m | ... |
... | ... | ... | ... |
Total | 2h | 1h30 | ... |
Prérequis
Préparation
- Fork le repository suivant : https://gitlab.com/blueur/heig-vd-devops-java
- Renommer le projet en
dop-java
.
- Cloner votre repository sur votre machine.
- Empaqueter l'application avec Maven :
mvn package
- Lancer l'application :
mvn spring-boot:run
Application des principes DevOps
- Conteneuriser l'application avec Docker.
- Quelle image de base ? Pourquoi ?
- Utiliser la version 17 de Java.
- Configurer Docker Compose de sorte que
docker compose up
lance l'application sur une nouvelle machine.
- Configurer la CI/CD sur GitLab.
- Pour chaque commit sur n'importe quelle branche :
- Vérifier que le projet compile.
- Vérifier que les tests passent.
- Pour chaque merge request :
- Vérifier que l'image Docker se construit.
- Pour chaque commit sur
main
:
- Mettre à jour l'image Docker sur le registry GitLab avec le tag
latest
.
- Configurer un déploiement sur Kubernetes :
kubectl apply -f deployment.yaml
doit lancer l'application sur un cluster Kubernetes.
Rapport
- Indiquer dans votre rapport votre démarche ainsi que les difficultés rencontrées.
- Expliquer tous les choix techniques que vous avez fait (sauf ceux indiqués).
-Expliquer comment utiliser les outils de CI/CD dans GitLab (unit test report, code coverage, SAST, ...).
Evaluation
L'évaluation se porte sur les critères suivants :
- Organisation
- Docker
- CI/CD
- Kubernetes
Note | 1 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5 | 5.5 | 6 |
---|
Nombre de critères validés | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
- En gras : critères principaux.
- En italique : critères secondaires.