Aller au contenu principal

CI/CD Java

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âcheTemps estiméTemps passéCommentaire
Estimation10m15m...
............
Total2h1h30...

Prérequis

Préparation

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
    • La Merge Request est correctement créée et dans les temps.
    • Le rapport est complet et synthétique.
  • Docker
    • Le Docker Compose est fonctionnel.
    • Les bonnes pratiques sont appliquées pour Docker & Docker Compose.
  • CI/CD
    • La pipeline CI/CD est fonctionnelle.
    • Fonctionnalités supplémentaires pour la CI/CD (code coverage, SAST, ...).
    • Les bonnes pratiques sont appliquées pour la CI/CD.
  • Kubernetes
    • Le déploiement Kubernetes est fonctionnel.
    • Les bonnes pratiques sont appliquées pour Kubernetes.
Note 1  2 2.5 3 3.5 4 4.5 5 5.5 6 
Nombre de critères validés0123456789
  • En gras : critères principaux.
  • En italique : critères secondaires.