Rappport de Stage Esprit [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

1

Stage d’immersion en entreprise 2020-2021

RAPPORT DE STAGE D’IMMERSION EN ENTREPRISE

PLATEFORME INTELLIGENTE DE GESTION DES PFE

Informatique

Réalisé par : MEDDEB Mariem Proposé par : ESPRIT Encadré par : Tayari Iskander

Réalisé par : Eskander JGUIRIM Année universitaire : 2021-2022 Encadré par : Linda OUERFELLI

SOMMAIRE INTRODUCTION générale..............................................................4 CHAPITRE 1 : PRESENTATION DU PROJET......................................5 Introduction..............................................................................................5 Description du projet............................................................................... 5

Etude de l’existant...........................................................6 Choix méthodologiques............................................................................6

CHAPITRE 2 : ANALYSE ET SPECIFICATION DES BESOINS.................8 Introduction..............................................................................8 Identification des acteurs..........................................................8 Spécification des besoins fonctionnels.....................................8 Spécifications des besoins non fonctionnels..........................10 Diagrammes des cas d’utilisation générale.......................10 CHAPITRE 3 : CONCEPTION Introduction..........................................................................14 Diagramme de classe détaillé...............................................14 Architecture physique...........................................................................15 Architecture logique..............................................................................15

Conclusion..............................................................................15 CHAPITRE 4 : REALISATION….................................................17 Introduction............................................................................................ 17 Framework et technologies utilisés........................................................17 Environnement de travail...................................................................... 18 Base de données.....................................................................................19 Interfaces graphiques

CONCLUSION GENERALE ET PERSPECTIVES..................................24

4

4

Stage d’immersion en entreprise 2020-2021

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. Je voudrais dans un premier temps adresser mes sincères remerciements à M. Iskander Tayari de m’avoir orienté et encouragé à réaliser ce travail ainsi que la confiance qu’il m’a accordée pour avoir accepté de m’encadrer dans ce stage et pour avoir su me faire confiance. J’aimerais aussi le remercier pour l’autonomie qu’il m’a accordée, et pour ses précieux conseils qui m’ont permis de mener ce travail.

Je remercie aussi tout le corps enseignant et la direction de l’ESPRIT pour leurs dévouements dans notre formation et encadrement durant cette année, merci à tous.

5

Introduction Générale Actuellement toutes les entreprises sont équipées d’un réseau local au minimum, et de réseaux de longues distances pour les plus importantes d’entre elles. Leurs parcs informatiques englobent une dizaine voir une centaine d’équipements, engendrés par des serveurs de bases de données et des serveurs de traitements. Vu que ces systèmes informatiques sont au cœur des activités des entreprises, leur maitrise devient primordiale. Ils doivent fonctionner pleinement et en permanence pour garantir la fiabilité et l’efficacité exigées, et surtout travailler à réduire les problèmes de défaillances, les pannes, les coupures et les différents problèmes techniques qui peuvent causer des pertes considérables. De ce fait, les administrateurs réseau font appel à des logiciels de surveillance et de supervision de réseaux afin de vérifier l'état du réseau en temps réel de l'ensemble du parc informatique sous leur responsabilité. Et être aussi informés automatiquement (par email, par SMS) en cas de problèmes. Grâce à un tel système, les délais d'interventions sont fortement réduits et les anomalies peuvent être aussitôt prises en main avant même qu’un utilisateur peut s’en apercevoir. Ainsi, la supervision des réseaux s’avère nécessaire et indispensable. Elle permet entre autre d’avoir une vue globale du fonctionnement et des problèmes pouvant survenir sur un réseau mais aussi d’avoir des indicateurs sur la performance de son architecture. Dans ce cadre, le présent rapport se base sur trois axes principaux : Présenter les notions de base de la supervision informatique et de ses logiciels les plus utilisés actuellement. Etudier la solution choisie parmi plusieurs en énumérant ses fonctionnalités et apports. - la réalisation, et la mise en place de cette solution.

6

Chapitre 1 : Présentation du cadre de stage

Ce chapitre se focalise sur la présentation de l‟entreprise accueillante et l‟étude détaillée de l‟existant où on cernera la problématique de mon sujet et on présentera la solution adoptée pour ce dernier. 1. Présentation de la société Filiale du groupe WEVIOO et PGH, ADACTIM est un opérateur de services managés, ERP et Cloud. Elle accompagne ses clients tout au long des cycles de transformation de l’entreprise (audit, conseil, intégration, infogérance, roll out). Historique :  OXIA est un groupe international crée en 1998 qui accompagne ses clients dans leurs projets d’innovation, d’amélioration de la performance et de développement à l’international a changé de nom pour devenir WEVIOO en Février 2016.  ADACTIS, créée en Janvier 2015 afin de fédérer ses activités, a décidé de changer de nom pour devenir ADACTIM en Mars 2016, nouvelle marque-ombrelle regroupant toutes ses filiales à Tunis, Paris, Alger et Dubaï et Abidjan et Ouagadougou. Expertise :

7

Valeur ajoutée : ADACTIM accompagne ses clients dans leurs projets de transformation métier et technologique. ADACTIM les aide à optimiser et à simplifier leur processus de gestion ainsi que l’exploitation de leur système d’information, ainsi que leur infrastructures et services. L’équipe dirigeante ADACTIM :

6

2. Etude de l’existant Ayant un très grand nombre de serveurs à gérer, l’administrateur est incapable de vérifier leurs disponibilité (en ligne ou pas), de déterminer la qualité des services qu’ils offrent, ni détecter la défaillance des équipements (charge CPU, Etat mémoire, surcharge du disque…), ni les surcharges et pénurie temporaire des ressources. Le seul moyen de détecter ces anomalies ne peut se faire que par la réception des différentes plaintes et réclamations des clients. Se souciant de sa réputation et concerné par la satisfaction et le confort de ses clients, la société veut à tout prix éviter la confrontation à des clients mécontents d’où éviter le risque de les perdre, et ce en travaillant à offrir une meilleure qualité de services à ses clients en anticipant les pannes et en évitant les arrêts de longue durée gênant les services qui peuvent causer de lourdes conséquences aussi bien financières qu’organisationnelles. Le but de ce projet est donc de trouver une solution optimale pour la gestion des serveurs et le monitoring de ses équipements en premier lieu, offrir la possibilité de devenir « pro actif » face aux problèmes rencontrés en un second lieu, et finalement et le plus important, de pouvoir détecter et interpréter en un simple coup d’œil les causes et origines des problèmes rencontrés afin de les fixer le plus rapidement possible.

3. Solution proposée La gestion des serveurs distants et le monitoring de ses équipements étant le plus grand souci de l’administrateur, j’ai jugé nécessaire de mettre en évidence un outil pour contrôler le fonctionnement du réseau, d’étudier les données collectées et de définir des seuils d’alertes qui peuvent servir pour le déclenchement des alertes lors de détection des problèmes. Il s’agit donc et sans doute d’une mise en place d’un système de supervision qui pourra grâce aux différentes fonctionnalités qu’il offre, anticiper les pannes en suivant méticuleusement le fonctionnement du système et en surveillant le statut des serveurs, des divers services réseaux et d’offrir des renseignements supplémentaires voir charge CPU, espace disque, mémoire disponible, etc. Un système de supervision offrira à l’administrateur la possibilité de réagir le plus rapidement possible face aux pannes qui peuvent intervenir afin d’éviter un arrêt de production de trop longue durée

10

4. Etude de choix De nombreuses plateformes de supervision existent aujourd’hui. Certaines se contentent de gérer à temps réels l’état du réseau et préserve une vue globale sur le fonctionnement de son architecture, d’autres permettent également de connaître l’état des différents services, et d’autres qui offrent la possibilité de ressortir de nombreuses statistiques du réseau permettant une analyse assez fine.  Les offres libres Il existe des solutions de supervision libres et professionnelles. Parmi les plus répandues, reconnues du moment nous pouvons citer Nagios, Zabbix, BigBrother2 et OpenNMS. L’avantage de ces logiciels libres est la gratuité, la disponibilité du code source et la liberté d’étudier et de modifier le code selon nos besoins et de le diffuser. De plus, il existe une communauté importante d’utilisateurs et de développeurs qui participent à l’amélioration des logiciels et apportent une assistance par la mise en ligne des documentations et les participations aux forums.  Choix du logiciel Les différentes solutions commerciales déjà présentées (HPOpenview, Patrol, BigBrother, etc..) nécessitent un investissement important pour leur mise en place, et pour des raisons propres à l’entreprise, toutes ces solutions sont à écarter de mon liste de choix. Parmi les solutions les plus connues, recommandées et surtout Libres, on citera Nagios et Prometheus. Voici un tableau comparatif des deux logiciels.

10

Nagios

Présentation

-Open source, Libre. -Conçu pour les plateformes Unix. -Modulaire. -Moteur en C, perl, sharp, interface web en PHP, base de données SQL. -Configuration plus ou moins complexe Peut monitorer de 3 manières : -L’utilisation des journaux d’exploitation par l’envoie des évènements issus des fichiers log en temps réel vers un serveur centrale offrant les informations nécessaires à la supervision. -Supervision active des services et infrastructure qui nous permet de garder l’historique des performances.

Fonctionnalités

-Offre une interface web basée sur les CGL avec gestion des droits pour la consultation. -Génère des rapports de surveillance. -Il a la possibilité de monitorer à distance à travers un firewall. -Il peut définir des serveurs esclaves qui prennent le relais si le serveur maitre tombe en panne. -Surveillance des ressources des serveurs (CPU, mémoire…) -Surveillance des services réseaux. -Arrêt temporaire de la supervision locale ou globale. -Génère des graphes par l’interfaçage avec RRDTools. Architecture généralement basée sur :

Prometheus

10

Architecture

Avantages

Inconvénients

-Le moteur de l’application qui sert à ordonnancer les tâches de supervision écrit en C. -Une interface web réalisée à l’aide des GCI, décrivant la vue d’ensemble su système et les anomalies possibles. -Plusieurs plugins qui peuvent être complétés en fonction des besoins. -Des plugins qui étendent les possibilités de Nagios. -Une très grande communauté qui participe activement au développement. -Un moteur performant -solution complète permettant le reporting, la gestion des pannes et d’alarmes, gestion des utilisateurs… -Des plugins permettent aux utilisateurs de développer facilement ses propres vérifications de services. -Possibilité de repartir la supervision entre plusieurs administrateurs. -Offre la possibilité de développer ses propres modules. -Configuration complexe mais peut s‟améliorer en ajoutant Centreon. -Interface peu ergonomique et intuitive

A la différence de Nagios dont les sondes envoient des données au serveur de supervision en mode push, Prometheus endosse une approche plus dynamique. A l'inverse, c'est le serveur Prometheus qui requêtera les applications à surveiller, en mode pull, avec un modèle d'extraction HTTP.

Conclusion : Ce chapitre a été conçu pour familiariser l’environnement du travail en présentant l’entreprise d’accueil et l’architecture réseau dont elle dispose. Les problèmes que rencontre la société se sont imposés suite à l’étude de l’existant et à sa critique, ce qui m’a permis de cerner la problématique de mon projet. J’ai par la suite proposé des solutions et leur étude à mon gérant et finalement nous avons posé notre choix sur la solution que nous jugeons la plus convenable à la société et à la formation que nous estimons acquérir qui est le logiciel de supervision libre « Prometheus ». Le chapitre suivant attaquera une étude approfondie de la solution choisie.

10

Chapitre 2 : Analyse et spécifications des besoins Introduction

Dans ce présent chapitre, Je commence par définir la notion de la supervision et ses objectifs ensuite, analyser de près les fonctionnalités de la solution proposée, son architecture, et les différents services qu’elle offre et finir par énumérer les différents fichiers de configurations sur quoi se base cette solution.

1.1

1. La supervision

Définition

La supervision de réseaux peut être définie comme l’utilisation de ressources réseaux adaptées dans le but d’obtenir des informations (en temps réel ou non) sur l’utilisation ou la condition des réseaux et de leurs éléments afin d’assurer un niveau de service garanti, une bonne qualité et une répartition optimale et de ceux-ci. La mise en place d’une supervision réseau, a donc pour principale vocation de collecter à intervalle régulier les informations nécessaires sur l’état de l’infrastructure et des entités qui y sont utilisés, de les analyser et de les rapporter.

1.2

Objectifs

L’objectif d’une supervision de réseaux peut ainsi se résumer en trois points :  Etre réactif en alertant l’administrateur (e-mail ou sms) en cas de dysfonctionnement d’une partie du système d’information.  Etre pro actif en anticipant les pannes possibles.  Cibler le problème dès son apparition afin d’agir rapidement de la façon la plus pertinente possible.

2.1

2. Prometheus :

Présentation :

Prometheus est un logiciel de supervision open-source créé par SoundCloud. En 2013, SoundCloud a décidé d'utiliser Prometheus pour ses infrastructures de Production et a publié la version 1.0 en Juillet 2016. Prometheus, écrit en GO, s'impose depuis comme la solution de référence pour superviser une infrastructure de type Cloud, SaaS/Openstack, OKD, K8S. Chaque solution offre ses avantages et ses inconvénients. Prometheus est fourni par défaut comme outil de supervision pour OKD et K8S.

C’est une solution modulaire, se situant à mi-chemin entre supervision et métrologie.Plus qu’un simple logiciel, l’écosystème Prometheus regroupe plusieurs composantes complémentaires, écrites principalement en Go :

10



Le serveur principal : chargé du scraping et stockage des données en séries temporelles.



Manager d’alertes : pour créer et gérer les différentes alertes.



Bibliothèques clients : pour l’instrumentation du code source des applications.



Une passerelle push : pour suivre les applications à durée courte.



Interface Web : pour filtrer et visualiser les données.

. Orienté cloud, il facilitera la supervision de clusters Kubernetes, Docker Swarm, ou clouds publiques. Polyvalent, il saura collecter ses métriques depuis tout type de service ou équipement.

2.2

Pourquoi utiliser Prometheus ?

Le monitoring système est une tâche cruciale pour toute équipe de développement, IT ou DevOps. Et si les solutions de monitoring ne sont pas rares, Prometheus se distingue comme une solution de choix.  

Il est en effet open source et gratuit. 



Il s’intègre facilement avec les bases de données et ERP populaires.



Il extrait la data directement du système pour une précision optimale.



Il met à jour la data en temps réel pour ne présenter que les données pertinentes.



Il est très populaire et utilisé par les plus grandes entreprises, dans tous les domaines d’activité

10

2.3

Architecture de Prometheus

Notre architecture utilise quatre composants différents :



un script Bash qui envoie périodiquement ses mesures vers Pushgateway ;



Pushgateway : un cache qui agrège les mesures. Les scripts l'utiliseront comme destination de leurs mesures ;



Prometheus,



Grafana : un outil pour créer des dashboards et qui pourra présenter les données en exécutant des requêtes PromQL sur l’instance Prometheus.

qui instancie une base de données temporelle. Prometheus inspecte périodiquement Pushgateway et récupère les mesures stockées par ce dernier.

Pour ceux qui ne sont pas familiers avec Prometheus, vous savez déjà que Prometheus inspecte via des appels HTTP les mesures exposées par les instances compatibles. Dans notre cas, le script Bash a une durée de vie limitée et il n’expose pas directement ces mesures pour Prometheus. C’est la raison pour laquelle nous allons utiliser le Pushgateway : conçu pour les processus à durée de vie faible, Pushwgateway met les mesures en cache et les expose à Prometheus par la suite.

10

3.3

Comment fonctionne Prometheus ?

Après installation et configuration de Prometheus et des différents outils qui composent son écosystème, il se met à extraire les données en utilisant l’une des 3 techniques.



L’instrumentation : cela veut dire que l’application en question va révéler la métrique cible dans une URL.

Prometheus ira la scanner au moment T.

10



Exporters : Prometheus dispose d’une grande collection d’exporters pour les différentes

technologies disponibles sur le marché. 

Push gateaway: utilisées plus rarement, notamment quand l’application cible n’offre pas de moyens

directs d’accéder à ces données. Ces données sont stockées et contrôlées depuis le serveur principal Prometheus. Elles vont ensuite être transférées vers un outil de visualisation qui s’intègre à Prometheus, comme Grafana.

11

Chapitre 3 : Conception 1. Introduction Nous allons à présent aborder une étape primordiale pour le développement de notre application, la conception. Elle a pour objectif de permettre de formaliser les étapes préliminaires du développement de notre système afin de rendre ce développement plus fidèle aux besoins du client. 2. Diagramme de classe

Stage d’immersion en entreprise 2020-2021

12

3. Architecture physique Notre plateforme va reposer sur une architecture 3-tiers. Nous aurons un serveur pour la Base de données, un serveur Web pour traiter les requêtes du client et un serveur client.

Architecture physique 4. Architecture logique Architecture logique back end Le back-end sera utilisé pour toutes les manipulationsetcommunicationsdes différents composants de notre système.  La couche Web est la couche supérieure d’une application Web. Elle est responsable du traitement entré par l’utilisateur et lui renvoi la bonne réponse. La couche web gère également les exceptions levées par les autres couches vu qu’elle est l’entrée point de notre plateforme.  La couche service réside sous la couche Web. Elle agit comme une frontière de transaction et contient à la fois des services d’application et d’infrastructure  La couche repository est la couche la plus basse d’une application Web. Elle est responsable de communiquer avec le stockage de données utilisé.  La couche Modèle est le couche qui constitue les modelés et

les relations entre les entités

13

Architecture logique front end

Le modèle MVC (Model-View-Controller) est un modèle architectural qui sépare une application en trois composants logiques principaux : le modèle, la vue et le contrôleur. Chacun de ces composants est conçu pour gérer les aspects de développement spécifiques d’une application.

Architecture logique front end 5. Conclusion Au cours de ce chapitre, nous avons dressé le diagramme de classe général qui nous a permis de construire les classes et les interfaces des systèmes ainsi que les différentes relations entre celles-ci, dans le but de comprendre la fonctionnalité de chaque classe de cette application. Dans le chapitre suivant, on étudiera la partie concernant le stockage : base de données du projet.

14

Stage d’immersion en entreprise 2020-2021

Chapitre 4 : Réalisation 1. Introduction L’étape finale, qui englobe toute les étapes précédentes, est bien évidemment la réalisation du projet. Au cours de ce chapitre, nous allons présenter les principales étapes, en décrivant l’environnement de travail et les technologies utilisées pour la mise en place de notre plateforme ainsi que les différents supports. Et pour finir, nous présenterons quelques captures d’écran de la plateforme.

2. Framework et technologies utilisés

SYMFONY 6 Symfony est un ensemble de composants PHP ainsi qu'un framework MVC libre écrit en PHP. Il fournit des fonctionnalités modulables et adaptables qui permettent de faciliter et d’accélérer le développement d'un site web.

Angular 14 Angular (communément appelé "Angular 2+" ou "Angular v2 et plus") est un framework côté client, open source, basé sur TypeScript, et codirigé par l'équipe du projet « Angular » à Google et par une communauté de particuliers et de sociétés. Angular est une réécriture complète d'AngularJS, cadriciel construit par la même équipe. Il permet la création d’applications Web et plus particulièrement d'applications web monopage : des applications web accessibles via une page web unique 

14

Stage d’immersion en entreprise 2020-2021

API Platform API-Platform est une distribution Symfony qui permet de créer rapidement et simplement de puissantes API REST, au moyen de quelques annotations sur nos Entités.

BOOTSTRAP Bootstrap est une collection d'outils utiles à la création du design de sites et d'applications web. C'est un ensemble qui contient des codes HTML et CSS, des formulaires, boutons, outils de navigation et autres éléments interactifs, ainsi que des extensions JavaScript en option.

Stage d’immersion en entreprise 2020-2021

15

3. Environnement de travail

 Vscode est un éditeur de scripts multiplateforme de Microsoft. Avec l’extension powershell, il fournit une expérience d’édition de script riche et interactive, ce qui facilite l’écriture de scripts PowerShell fiables.

GitLab est un logiciel libre de forge basé sur git proposant les fonctionnalités de wiki, un système de suivi des bugs, l’ intégration continue et la livraison continue.

Trello est un outil de gestion de projet en ligne, lancé en septembre 2011 et inspiré par la méthode Kanban de Toyota. Il repose sur une organisation des projets en planches listant des cartes, chacune représentant des tâches. Les cartes sont assignables à des utilisateurs et sont mobiles d'une planche à l'autre, traduisant leur avancement

Postman est une application permettant de tester des API, créée en 2012 par Abhinav Asthana, Ankit Sobti et Abhijit Kane 2 à Bangalore pour répondre à une problématique de test d'API partageable.

Enterprise Architect est un logiciel de modélisation et de conception UML, édité par la société australienne Sparx Systems. Couvrant, par ses fonctionnalités, l'ensemble des étapes du cycle de conception d'application, il est l'un des logiciels de conception et de modélisation les plus reconnu

16

Stage d’immersion en entreprise 2020-2021

.

4. Base de données

Une base de données, permet de stocker et de retrouver l'intégralité de données brutes ou d'informations en rapport avec un thème ou une activité ; celles-ci peuvent être de natures différentes et plus ou moins reliées entre elles. Dans ce projet, on a utilisé le langage SQL pour notre base de données. Pour cela nous avons utilisé MySQL. MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il est distribué sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public (applications web principalement) que par des professionnels.

17

Stage d’immersion en entreprise 2020-2021

Aperçu de l’interface PhpMyAdmin et des tables créée pour ce projet

5. Interfaces graphiques Page d’authentification

18

Stage d’immersion en entreprise 2020-2021

Page d’accueil de l’administrateur

Page de gestion des enseignants pour l’administrateur

19

Stage d’immersion en entreprise 2020-2021

Page d’ajout d’un responsable par l’administrateur

Page d’accueil du responsable

20

Stage d’immersion en entreprise 2020-2021

Page de gestion des sociétés par le responsable

Page d’ajout d’un encadrant de société parmi les sociétés enregistrées dans le système

21

Stage d’immersion en entreprise 2020-2021

Page de gestion des PFEs

Page de l’interface de l’enseignant qui affiche les étudiants à sa charge

22

Stage d’immersion en entreprise 2020-2021

Page de l’interface de l’enseignant qui affiche le suivi des étudiants

Page de recommandations intelligentes de PFE à encadrer pour les enseignants

23

Stage d’immersion en entreprise 2020-2021

Conclusion générale et perspective Nous voilà arriver à la fin de ce rapport. L’objectif de mon stage était de développer une application web permettant la gestion des Certificats en faisant appel aux connaissances que j’ai acquis durant mon parcours. En effet ce projet m’a permis d’appliquer mes connaissances et d’approfondir mon travail et mes recherches. J’ai procédé à la réalisation de celui-ci, qu’après avoir étudié minutieusement les besoins et les exigences de notre cahier de charge. Ces processus ont été soigneusement illustrés tout au long de ce rapport. Ma persévérance, l’aide précieuse et les conseils de Mrs Hajji Saifeddine m’ont permis de finaliser cette application dans les délais, et de créer un produit fini à la hauteur de nos attentes. Il conviendra, cependant de penser dans le futur à de nouvelles améliorations de la plateforme au fur et à mesure que le volume de données augmentera.