Vous êtes sur la page 1sur 31

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

Année universitaire : 2021-2022


Réalisé par : Eskander JGUIRIM
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 Prometheus

-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 :
Présentation -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.

-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
Fonctionnalités 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 :
10

-Le moteur de l’application qui


sert à ordonnancer les tâches de
supervision écrit en C.
Architecture
-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.

Avantages -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.

Inconvénients -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. La supervision
1.1 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. Prometheus :
2.1 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, qui instancie une base de données temporelle. Prometheus inspecte
périodiquement Pushgateway et récupère les mesures stockées par ce dernier.
 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.

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
12 2020-2021

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
15 2020-2021

3. Environnement de travail

 Vscode est un éditeur de GitLab est un logiciel libre de Trello est un outil de gestion de projet en
forge basé sur git proposant les ligne, lancé en septembre 2011 et inspiré
scripts multiplateforme de par la méthode Kanban de Toyota. Il repose
fonctionnalités de wiki, un sur une organisation des projets en
Microsoft. Avec
système de suivi des bugs, l’ planches listant des cartes, chacune
l’extension powershell, il intégration continue et la représentant des tâches. Les cartes sont
fournit une expérience livraison continue. assignables à des utilisateurs et sont
mobiles d'une planche à l'autre, traduisant
d’édition de script riche et leur avancement
interactive, ce qui facilite
l’écriture de scripts
PowerShell fiables.
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.

Vous aimerez peut-être aussi