Option A - Cas d’entreprise - Assurez le déploiement des applications et de l'infrastructure dans le cadre d'une stratégie DevOps
Vous devez participer à l'optimisation des processus CD au sein de votre entreprise. Vous analysez les besoins, concevez une solution, et la mettez en place.
Nous exigeons la stack Docker - Kubernetes ainsi l'utilisation de Terraform et d'Ansible. Si votre entreprise ne dispose pas d'un des outils, vous pouvez utiliser un outil équivalent. Vous devez rédiger une explication brève afin que l'évaluateur puisse valider votre maîtrise de la compétence avec l'autre outil.
Pour les autres outils (comme les pipelines CI), nous vous laissons le choix (ou bien à votre entreprise).
Option B - Scénario fictif - Assurez le déploiement des applications et de l'infrastructure dans le cadre d'une stratégie DevOps
Vous devez contribuer à l'amélioration des processus CD dans une entreprise fictive, CréaLogiciels. Votre directeur DevOps, Hasan, vous a attribué un projet de gestion d'IAC. Vous devez analyser les besoins du projet, concevoir un processus CD amélioré, ensuite mettre en œuvre le CD avec les outils de conteneurisation, d'orchestration et du déploiement de l'IaC.
Identifiez les forces et les faiblesses de chaque composant de la stack. Évaluez les besoins du processus de Continuous Deployment (CD) en collaboration avec les parties prenantes. Documentez les résultats de cette analyse dans un rapport détaillé.
Sur la base des résultats de l'analyse précédente, concevez une Infrastructure-as-Code (IaC) adaptée. Identifiez les technologies et outils nécessaires pour la mise en place de cette IaC. Documentez un plan d'action et proposez des solutions pour les défis identifiés et/ou possibles.
Terraform - https://www.terraform.io Ansible - https://www.ansible.com
Mettez en place l’infrastructure et l’architecture pour le déploiement. Utilisez Docker pour conteneuriser les applications de l'entreprise. Créez des fichiers Dockerfile pour chaque application et configurez les conteneurs. Testez tous les conteneurs pour vérifier leur bon fonctionnement. Documentez l’architecture et la conteneurisation dans le plan de la CD.
Pour l'option B scénarisé, conteneurisez cette application : https://github.com/OpenClassrooms-Student-Center/Gerez-un-projet-collaboratif-en-int-grant-une-demarche-CI-CD
Utilisez les Helm charts présent dans le présent repo pour les ajouter à l'infrastructure (optionnel)
Docker - https://www.docker.com
Utilisez Kubernetes pour orchestrer ces conteneurs à grande échelle. Déployez et gérez vos conteneurs avec Kubernetes pour assurer la scalabilité et la résilience.
Kubernetes - https://kubernetes.io Helm - https://helm.sh
Adoptez Helm pour gérer les applications Kubernetes. Créez des charts Helm pour automatiser les déploiements et gérer les configurations. Testez les charts pour assurer leur bon fonctionnement et simplifier les déploiements futurs.
Kubernetes - https://kubernetes.io Helm - https://helm.sh
Utilisez Terraform pour définir l'infrastructure et Ansible pour automatiser le déploiement. Configurez les fichiers Terraform pour créer les ressources nécessaires. Utilisez Ansible pour provisionner et configurer les serveurs. Testez le déploiement pour assurer son bon fonctionnement.
Terraform - https://www.terraform.io Ansible - https://www.ansible.com
Bonus: utilisez external-secret en gérant vos secrets dans Gitlab CI Variables
Réalisez des tests unitaires pour valider le code. Effectuez des tests de déploiement pour vérifier le bon fonctionnement des applications et des infrastructures. Documentez les résultats des tests, y compris des captures d’écran, et identifiez les éventuels problèmes.
Helm - https://helm.sh Junit - https://junit.org Selenium - https://www.selenium.dev
Rédigez un guide des bonnes pratiques pour le déploiement contenu (CD). Revoyez tout votre travail pour assurer que tout conforme au guide.