Département d’Informatique Projet de fin d’études Master Sciences et Techniques
Département d’Informatique Projet de fin d’études Master Sciences et Techniques Systèmes Intelligents & Réseaux Mise en place d’Ansible dans un pipeline de livraison continue LIEU DU STAGE : SQLI MAROC Réalisé par : - Hamid EDOUIKI Encadré par : - Pr. Loubna LAMRINI - Pr. Abdelali BOUSHABA - Mr. Mohamed Aïmane EL KIRA Soutenu le 13.06.2018 devant le jury composé de : - Pr. Mohamed OUZARF Faculté des Sciences et Techniques de Fès (Président) - Pr. Abderrahim BENABBOU Faculté des Sciences et Techniques de Fès (Examinateur) - Pr. Abdelali BOUSHABA Faculté des Sciences et Techniques de Fès (Encadrant) - Pr. Loubna LAMRINI Faculté des Sciences et Techniques de Fès (Encadrante) Année Universitaire 2017 – 2018 Département d’Informatique Projet de fin d’études Master Sciences et Techniques Systèmes Intelligents & Réseaux Mise en place d’Ansible dans un pipeline de livraison continue LIEU DU STAGE : SQLI MAROC Réalisé par : - Hamid EDOUIKI Encadré par : - Pr. Loubna LAMRINI - Pr. Abdelali BOUSHABA - Mr. Mohamed Aïmane EL KIRA Soutenu le 13.06.2018 devant le jury composé de : - Pr. Mohamed OUZARF Faculté des Sciences et Techniques de Fès (Président) - Pr. Abderrahim BENABBOU Faculté des Sciences et Techniques de Fès (Examinateur) - Pr. Abdelali BOUSHABA Faculté des Sciences et Techniques de Fès (Encadrant) - Pr. Loubna LAMRINI Faculté des Sciences et Techniques de Fès (Encadrante) Année Universitaire 2017 – 2018 Remerciements Je tiens à remercier toutes les personnes qui ont contribué au succès de mon stage et qui m’ont aidé lors de la rédaction de ce rapport. En premier lieu, je tiens à remercier M. Mohamed Aïmane EL-KIRA, Directeur technique de SQLI Maroc, de m’avoir accordé l’opportunité de découvrir et réaliser un projet aussi innovant. Je le suis aussi redevable des conditions privilégiées mises à mon profit tout au long de cette période de stage. Je tiens à remercier M. Anas MOUTAKI, M. Imad BOUHAMEDI et M. Yassine EL ISSAOUI, ingénieurs DevOps au sein de SQLI, pour m’avoir encadré pendant mon projet de fin d’études, et assisté au sein d’une équipe hautement professionnelle. Je tiens à exprimer mes sincères remerciements aussi à mes encadrants à La Faculté des Sciences et Techniques de Fès Pr Abdelali BOUSHABA et Pr Loubna LAMRINI pour leur assistance et leurs conseils judicieux tout au long de PFE. Je remercie Pr Mohamed OUZARF et Pr Abderrahim BENABBOU membres de jury, pour l’honneur qu’ils m’ont fait en acceptant d’examiner et juger ce travail. J’adresse également des remerciements particuliers à l’ensemble du corps professoral et administratif de La Faculté des Sciences et Techniques de Fès (FSTF), pour l’inestimable qualité de l’enseignement qu’ils assurent. Que tous ceux et celles qui ont contribué de près ou de loin à accomplissement de ce travail trouvent l’expression de mes remerciements les plus chaleureux et les mots du respect les plus distingués. Résumé Afin de réduire le délai de commercialisation et produire des logiciels de qualité, l’entreprise SQLI opte à intégrer les pratiques DevOps dans les projets de ses clients. Dans ce cadre vient ce projet pour améliorer et optimiser un pipeline de livraison continue, qui gère les changements depuis le code source jusqu’à la livraison en production, en intégrant l’outil Ansible pour la gestion de configuration et l’automatisation de déploiement. Après une étude des principales valeurs et pratiques de DevOps notamment la livraison continue et la gestion de configuration, nous avons effectué une étude comparative des outils d’automatisation de ces pratiques. Suite à l’étude comparative, une analyse des besoins et une conception de l’architecture du projet se sont apparues nécessaires, avant la mise en place du pipeline de livraison continue optimisé. Ce projet a permis de minimiser le temps de déploiement dans les différents environnements et d’avoir une résilience contre les pannes d’infrastructures. Mots clés : Agile, DevOps, Livraison Continue, Gestion de configuration, Ansible. Abstract In order to reduce time to market and produce quality software, SQLI opts to integrate DevOps practices into its clients' projects. In this context, this project aims to improve and optimize a continuous delivery pipeline, which manages changes from source code to delivery of a release in production, with the integration of the tool Ansible, for configuration management and automation of deployments. After a study of the main values and practices of DevOps including continuous delivery and configuration management, we performed a comparative study of automation tools for these practices. Following the comparative study, an analysis of the different needs and a design of the project architecture appeared necessary, before the implementation of the optimized continuous delivery pipeline. This project allows to minimize the time of deployments in the different environments, and to have resilience against infrastructure failures. Key words: Agile, DevOps, Continuous Delivery, Configuration management, Ansible. Table des matières Table des matières Remerciements .................................................................................................................................... III Résumé ................................................................................................................................................. IV Abstract ................................................................................................................................................. V Liste des tableaux ............................................................................................................................... IX Liste des figures .................................................................................................................................... X Introduction générale ........................................................................................................................... 1 Chapitre 1 : Cadre générale du projet ................................................................................................ 2 Introduction ....................................................................................................................................... 3 1. Entreprise d'accueil ...................................................................................................................... 3 1.1. Le groupe SQLI ...................................................................................................................... 3 1.2. Clients SQLI ............................................................................................................................ 4 1.3. Partenaires SQLI .................................................................................................................... 4 1.4. Organisation SQLI Maroc ..................................................................................................... 5 1.5. Projet AMC ............................................................................................................................. 6 2. DevOps chez SQLI ....................................................................................................................... 7 2.1. Pourquoi DevOps? ................................................................................................................ 7 2.2. Comment démarrer une transformation DevOps ? .......................................................... 9 3. Etude de l’existant ...................................................................................................................... 11 3.1. Fonctionnement actuel ........................................................................................................ 11 3.2. Critique de l'existant ........................................................................................................... 12 4. Solution proposée ....................................................................................................................... 13 5. Démarche adoptée ...................................................................................................................... 13 5.1. Méthode adopté ................................................................................................................... 13 5.2. Planification du projet ......................................................................................................... 14 Conclusion ....................................................................................................................................... 15 Chapitre 2: Etude comparative des outils DevOps........................................................................ 17 Introduction ..................................................................................................................................... 18 1. Démarche de l’étude comparative ........................................................................................... 18 2. Outils de gestion de code source .............................................................................................. 18 2.1. Choix des critères ................................................................................................................ 19 2.2. Analyse .................................................................................................................................. 19 Table des matières 2.3. Comparaison et synthèse .................................................................................................... 20 3. Outils d’intégration continue .................................................................................................... 20 3.1. Choix des critères ................................................................................................................ 21 3.2. Analyse .................................................................................................................................. 21 3.3. Comparaison et synthèse .................................................................................................... 22 4. Outils de qualimétrie logiciels .................................................................................................. 22 4.1. Choix des critères ................................................................................................................ 23 4.2. Analyse .................................................................................................................................. 23 4.3. Comparaison et synthèse .................................................................................................... 24 5. Outils de gestion de dépôt d’objets binaires ........................................................................... 24 5.1. Choix des critères ................................................................................................................ 25 5.2. Analyse .................................................................................................................................. 25 5.3. Comparaison et synthèse .................................................................................................... 26 6. Outils de gestion de configuration et automatisation ........................................................... 26 6.1. Choix des critères ................................................................................................................ 27 6.2. Analyse .................................................................................................................................. 27 6.3. Comparaison et synthèse .................................................................................................... 28 7. Synthèse et choix ........................................................................................................................ 29 Conclusion ....................................................................................................................................... 29 Chapitre 3: Analyse et Conception .................................................................................................. 30 Introduction ..................................................................................................................................... 31 1. Objectifs du projet ...................................................................................................................... 31 2. Analyse des besoins ................................................................................................................... 31 2.1. Besoins fonctionnels ............................................................................................................ 31 2.2. Besoins non fonctionnels .................................................................................................... 31 3. Identification des acteurs ........................................................................................................... 32 4. Cas d’utilisation global du pipeline ......................................................................................... 32 5. Architecture physique globale du pipeline ............................................................................ 34 6. Architecture physique des environnements du projet AMC ............................................... 35 6.1. Architecture Déploiement Hybris ..................................................................................... 35 6.2. Environnement d’intégration ............................................................................................ 36 6.3. Environnement de test ....................................................................................................... 37 6.4. Environnement de préparation et production ................................................................ 38 Table des matières Conclusion ....................................................................................................................................... 39 Chapitre 4 : Réalisation ...................................................................................................................... 40 Introduction ..................................................................................................................................... 41 1. Mise en place du pipeline .......................................................................................................... 41 1.1. GitLab .................................................................................................................................... 43 1.2. Jenkins ................................................................................................................................... 44 1.3. SonarQube ............................................................................................................................ 45 1.4. Nexus ..................................................................................................................................... 46 1.5. Ansible .................................................................................................................................. 47 2. Tâche pipeline dans Jenkins ...................................................................................................... 50 2.1. Pipeline as Code .................................................................................................................. 50 2.1. Jenkinsfile ............................................................................................................................. 50 2.2. Jenkinsfile Projet AMC ....................................................................................................... 50 3. Gestion de configuration et Automatisation déploiement avec Ansible ............................ 53 3.1. Architecture Ansible ........................................................................................................... 53 3.2. Automatisation Déploiement SAP Hybris e-commerce plateforme ............................ 54 3.3. Gestion de configuration des environnements ............................................................... 58 Conclusion ....................................................................................................................................... 60 Conclusion Générale .......................................................................................................................... 61 Bibliographie et Webographie .......................................................................................................... 62 Liste des tableaux Liste des tableaux Table. 1 : Liste des sprints avec descriptions .................................................................................. 15 Table. 2 : Récapitulatif de comparaison des outils de gestion de code source .......................... 20 Table. 3 : Récapitulatif de comparaison des outils d’intégration continue ................................ 22 Table. 4 : Récapitulatif de comparaison des outils de qualimétrie logicielle ............................. 24 Table. 5 : Récapitulatif de comparaison des outils de gestion de dépôt d’objets binaires ....... 26 Table. 6 : Récapitulatif de comparaison des outils de gestion de configuration et automatisation .................................................................................................................................... 28 Table. 7 : Tableau récapitulatif des outils choisis ........................................................................... 29 Table. 8 : Description des cas d’utilisations .................................................................................... 33 Table. 9 : Description du rôle de chaque composant ..................................................................... 36 Liste des figures Liste des figures Figure. 1 : Répartition des agences SQLI dans le monde ................................................................ 3 Figure. 2 : Quelques clients du groupe SQLI .................................................................................... 4 Figure. 3 : Quelques partenaires de SQLI ......................................................................................... 4 Figure. 4 : Organigramme ISC Maroc ................................................................................................ 5 Figure. 5 : Page d’Accueil e-steel ArcelorMittal ............................................................................... 6 Figure. 6 : La possibilité de livrer plus fréquemment avec DevOps ............................................. 8 Figure. 7 : Différence entre une méthode agile sans et avec DevOps ........................................... 8 Figure. 8 : Vision DevOps chez SQLI ................................................................................................. 9 Figure. 9 : Modèle de maturité de livraison continue ................................................................... 10 Figure. 10 : Interaction entre les composants du pipeline initiale ............................................... 11 Figure. 11 uploads/Ingenierie_Lourd/ mise-en-place-d-x27-ansible-dans-u-hamid-edouiki-4995.pdf
Documents similaires










-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 21, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 2.0856MB