📄️ Ce que vous apprendrez
Dans ce cours, vous apprendrez à mettre en place un pipeline CI/CD DevOps complet dans un environnement Windows/Linux. Vous utiliserez des outils essentiels tels que Jenkins, SonarQube, Nexus, Docker et Ansible pour automatiser et améliorer votre processus de développement logiciel.
📄️ Créez votre environnement de travail
Tout au long de ce cours, nous aurons besoin de 4 serveurs Linux :
📄️ Installez et configurez Docker
Installez Docker sur masterserver en suivant le lien d'installation pour Ubuntu ou en suivant les étapes suivantes :
📄️ Créez une simple application Spring Boot
Le but de ce cours est de mettre en place une démarche DevOps. Pour cela, nous allons créer une petite application Spring Boot minimaliste, capable de renvoyer un message "Hello" lorsqu'on accède au chemin /.
📄️ Installation et configuration de SonarQube et JaCoCo
Architecture de SonarQube
📄️ Conteneurisez l'application Spring Boot avec Docker
Docker est utilisé à tous les niveaux de l'infrastructure (CI / Développement / Production).
📄️ Créez un registre docker privé et un docker hub proxy avec Nexus
Au lieu de stocker nos images Docker privées générées lors des builds sur un registry public tel que Docker Hub, nous allons mettre en place un registry privé avec Nexus (docker hosted). Nous allons également en profiter pour créer un proxy vers le Docker Hub public (docker proxy). Un dépôt proxy Docker dans Nexus agit comme un intermédiaire entre notre environnement de développement (ou CI/CD) et Docker Hub. Nexus stocke localement les images Docker provenant de Docker Hub, réduisant ainsi le temps de téléchargement en cas de demandes répétées et permet aux développeurs d'accéder plus rapidement aux dépendances nécessaires à leurs projets.
📄️ Utilisez Ansible pour automatiser le déploiement de votre application
Ansible est un outil de gestion de configuration qui permet d'automatiser des tâches avec des scripts d'automatisation.
📄️ Gérez le Versioning en livraison continue
Contrôle de version sémantique (SemVer)
📄️ Construisez un pipeline CI-CD avec Jenkins
Jusqu'à présent, nous avons utilisé Maven pour construire notre application Spring Boot, Docker pour la containeriser dans un environnement isolé, SonarQube pour tester la qualité de notre code, et Nexus comme registre privé pour stocker et partager les images Docker. De plus, nous avons mis en place deux environnements, staging et production, pour déployer l'application avec Ansible.