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

  • GitHub Classroom : https://classroom.github.com/a/Y_FXjsYh
    • Rapport individuel en Markdown à rendre avant le prochain cours
    • Nom du fichier : report.md à la racine du répertoire
  • Devoir sur Cyberlearn : mettre le lien de la pull request GitLab dans le champ texte
  • Délai: 2 semaines
  • Laboratoire noté

Tâches

Estimer son travail

  • Estimez le temps nécessaire pour réaliser ce laboratoire
    • Découpez le travail en tâches pour faciliter l'estimation
  • Lorsque vous aurez terminé le laboratoire, comparez le temps estimé avec le temps réellement passé
TâcheTemps estiméTemps réelCommentaire
Estimation10m15m...
............
Total2h1h30...

Prérequis

Préparation

Application des principes DevOps

  • Conteneurisez l'application avec Docker
    • Quelle image de base ? Pourquoi ?
    • Utilisez la version 17 de Java
  • Configurez Docker Compose de sorte que docker compose up lance l'application
  • Configurez la CI/CD sur GitLab
    • Pour chaque commit sur n'importe quelle branche :
      • Vérifiez que le projet compile
      • Vérifiez que les tests passent
    • Pour chaque merge request :
      • Vérifiez que l'image Docker se construit
    • Pour chaque commit sur main :
      • Mettez à 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

  • Indiquez dans votre rapport votre démarche ainsi que les difficultés rencontrées
  • Expliquez tous les choix techniques que vous avez fait (sauf ceux indiqués)

Evaluation

CritèreMinimal (-0.5 par critère manquant)Bon (+0.15)Excellent (+0.3)
DélaiLe rendu est dans les temps
RapportLe rapport répond aux questions poséesLe rapport est complet et bien structuré
DockerLe Docker Compose est fonctionnel avec docker compose upApplication des bonnes pratiquesOptimisation
CI/CDLa pipeline CI/CD est fonctionnel (succès)Conditions correctesApplication des bonnes pratiques
KubernetesLe déploiement sur Kubernetes est fonctionnel grâce au fichier deployment.yaml (pas d'erreur)Déployé sur le cluster k8s de la classe sous le namespace {votre nom}Application des bonnes pratiques
CodeLe code est fonctionnelLe code est propreLe code est propre et bien documenté
TestAmélioration de la CI/CD avec l'unit test reportExplication de son utilisation
CoverageAmélioration de la CI/CD avec le code coverageExplication de son utilisation
SASTAmélioration de la CI/CD avec le SASTExplication de son utilisation
BonusToute autre améliorationToute autre amélioration avancée