Browse Source

Almost finish the report

master
Skia 4 years ago
parent
commit
a0d4e4ec02
3 changed files with 307 additions and 110 deletions
  1. +307
    -110
      Rapport.tex
  2. BIN
      pix/repartition_faurecia_monde.png
  3. BIN
      pix/repartition_vente_faurecia.png

+ 307
- 110
Rapport.tex View File

@@ -10,7 +10,7 @@
%packages
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{graphicx}\graphicspath{{pictures/}}
\usepackage{graphicx}\graphicspath{{pix/}}
\usepackage{float}
\usepackage[T1]{fontenc}
\usepackage{color}
@@ -44,12 +44,52 @@
\includepdf[pages={1}]{Couvertures.pdf}

\tableofcontents
\listoffigures

\chapter*{Introduction}
\addcontentsline{toc}{chapter}{Introduction}
\par
Le cursus UTBM que je suis me mène à devoir partir en stage, et celui-ci est mon deuxième. Le premier était un simple
stage ouvrier d'un mois, mais celui-ci, le ST40, s'étend sur un semestre, tout comme le dernier que j'aurai à effectuer
au Printemps 2017.
\par
Lorsque j'ai postulé auprès de plusieurs entreprises pour décrocher un stage au Printemps dernier, \textbf{Faurecia} est une de
celles à m'avoir répondu. J'ai donc eu un entretien avec M. Jean-Noël Gueutal, qui s'était très bien passé, et le sujet
m'avait alors beaucoup interessé. Mais très peu de temps après, le sujet a du changer pour de multiples raisons, et je
restais quelque peu sceptique quant à l'interêt de ce stage. Les procédures étant engagées, j'ai tout de même signé ma
convention, et le 7 Septembre 2015, je me suis présenté au Centre Technique de Seloncourt pour débuter ma période de stage
qui devait durer jusqu'au 19 Février 2016.
\par
C'est Jean-Noël qui m'a accueilli, et lorsque Mme Murielle Mathieu, ma tutrice, m'a pris en charge, j'ai alors commencé
à découvrir ce qu'on attendait de moi au travers du sujet que l'on m'avait proposé. Cela s'annoncait peu technique, mais
toutefois fort enrichissant, car j'allais découvrir les dessous du fonctionnement de l'informatique d'une grande
entreprise, dont le domaine d'activité est tout autre que ce que je connaissais.
\par
Par la suite, j'ai donc eu à m'intégrer entre plusieurs équipes afin d'accomplir en premier lieu un travail enrichissant
pour ma connaissance de l'entreprise, et dans un second temps une tâche très épanouissante d'un point de vue technique.
\vskip 1em
\par
C'est cette double mission qui va donc être détaillée dans ce rapport.

\chapter*{Remerciements}
\addcontentsline{toc}{chapter}{Remerciements}
\par
Je tiens avant tout à addresser mes remerciements aux nombreuses personnes avec qui j'ai travaillé pendant ces derniers
mois.
\par
Plus spécifiquement, je tiens à remercier Mme. Murielle Mathieu pour avoir été ma tutrice tout au long de ce stage, et
pour m'avoir fait confiance dans les missions qu'elle a pu me confier.
\par
Je remercie également M. Jean-Noël Gueutal pour m'avoir proposé ce stage, et pour m'avoir fait découvrir l'entreprise
durant mes débuts chez \textbf{Faurecia}. Son équipe, avec entre autre Vincent et Yves m'a également permis d'avoir un
environnement de travail sous GNU/Linux avec lequel j'ai pu être efficace très rapidement, doit également être
remerciée.
\par
Merci aussi à Mohamed, pour m'avoir aidé dans ma mission concernant le monitoring, et merci à Joël pour ses conseils
des plus utiles sur le développement de \textbf{Sappin}.
\par
Enfin, merci à tous les collègues avec qui j'ai pu passer des bons moments pendant les pauses de midi, notamment
l'équipe du PLM avec qui j'ai pu tous les jours aller boire un thé en échangeant sur les sujets les plus variés.

\chapter{Faurecia}
\section{Un groupe mondial}
@@ -81,6 +121,12 @@ se renouveler, et se maintenir à la pointe dans chacun de leur domaine d'expert
\par
Il peut être interessant de voir quelques chiffres pour mieux se représenter l'impact de \textbf{Faurecia} au niveau
mondial dans le secteur de l'automobile.
\begin{figure}[H]
\centering
\includegraphics[width=1\linewidth]{repartition_faurecia_monde.png}
\caption{Repartition des sites de \textbf{Faurecia}}
Janvier 2015
\end{figure}
\par
Présent dans 34 pays, avec plus de 330 sites de production, la société n'a pas de mal à traiter directement avec des
constructeurs du monde entier.
@@ -116,6 +162,12 @@ secteurs en pleine expansion:
\item 27 sites de production / 3 centres de R\&D
\end{itemize}
\end{description}
\begin{figure}[H]
\centering
\includegraphics[width=1\linewidth]{repartition_vente_faurecia.png}
\caption{Repartition des ventes de \textbf{Faurecia}}
Mars 2015
\end{figure}

\subsection{Présentation des activités}
\par
@@ -175,34 +227,34 @@ Cette activité est présente dans 9 pays avec 32 sites de production et 9 centr
\section{Le centre technique de Seloncourt}
\par
Construit en 1998, le Centre Technique de Seloncourt servait à l'origine comme plateforme de tests des différents
produits Faurecia. On y trouvait entre autre une catapulte pour tester les sièges, mais aussi du benchmarking et de
produits \textbf{Faurecia}. On y trouvait entre autre une catapulte pour tester les sièges, mais aussi du benchmarking et de
l'analyse de la concurrence.
\par
En 2001, le site devient un centre informatique, accueillant plusieurs services, dont le Centre de Support Informatique
de \textbf{Faurecia} jusqu'en 2014, mais aussi les équipes Système, Application de Production, Applications
Just-In-Time, ou encore des Centres de Compétence Windows, et même AS/400!
Just-In-Time, ou encore des Centres de Compétence \emph{Windows}, et même \emph{AS/400}!

\section{Mon service: Global Infrastructure and Systems Operations}
\subsection{Un service de GIS}
\subsection{Un service de \textbf{GIS}}
\par
L'informatique est, au sein de \textbf{Faurecia}, un service transversal et central. Tout les autres services en ont
besoin, et cela permet de maintenir une cohérence entre les différents Business Groups au niveau des méthodes et des
outils informatiques.
\par
Ce service global est assuré par GIS (Group Information System), qui est composé de plus de 1100 personnes réparties au
travers le monde, pour assurer une disponibilité 24H/24. Deux types de services existent et collaborent au sein de GIS:
Ce service global est assuré par \textbf{GIS} (Group Information System), qui est composé de plus de 1100 personnes réparties au
travers le monde, pour assurer une disponibilité 24H/24. Deux types de services existent et collaborent au sein de \textbf{GIS}:
les services centraux et les services locaux.
\par
Les services locaux sont en charge de l'informatique sur chaque site. En revanche, les services centraux peuvent être
répartis sur plusieurs sites, et sont en charge de la gestion, l'exploitation, le support, et tout ce qui grative autour
des applications utilisées à grande échelle par le groupe, comme les réseaux, la messagerie, l'ERP, les applications de
des applications utilisées à grande échelle par le groupe, comme les réseaux, la messagerie, l'\textbf{ERP}, les applications de
finance, de gestion des programmes clients, ou encore de la sécurité.

\subsection{Rôle dans Faurecia}
\subsection{Rôle dans \textbf{Faurecia}}
\par
GISO (Global Infrastructure and Systems Operations) est le service dont je dépendais pendant mon stage. Il est
\textbf{GISO} (Global Infrastructure and Systems Operations) est le service dont je dépendais pendant mon stage. Il est
responsable de la disponibilité des applications centrales, et de leur sécurité, c'est à dire que les applications dont
GISO est en charge doivent être toujours opérationnelles, sans aucune défaillance visible pour les utilisateurs.
\textbf{GISO} est en charge doivent être toujours opérationnelles, sans aucune défaillance visible pour les utilisateurs.
\par
Il doit aussi fournir un support pour ces applications en permanence, tout en étant prêt à réagir en cas de problème, ou
que ce dernier soit dans l'infrastructure. C'est donc une tâche relativement lourde de responsabilité, car cela a des
@@ -210,51 +262,51 @@ répercussion sur l'ensemble de la production mondiale de \textbf{Faurecia}.

\subsection{Activités}
\par
Le service GISO est divisé en trois équipes:
Le service \textbf{GISO} est divisé en trois équipes:
\begin{description}
\item[Monitoring] qui assure la surveillance des machines et applications via des outils de monitoring tel
\emph{Nagios}.
\item[Systems] qui gère les infrastructures mise en œuvre pour supporter les applications centrales. Cela comporte
par exemple les serveurs, physiques ou virtuels, les systèmes de clusters, le réseaux, etc...
\item[Applications] qui gère les applications que les utilisateurs des sites de production et R\&D vont utiliser,
comme par exemple l'ERP \emph{SAP}.
comme par exemple l'\textbf{ERP} \emph{SAP}.
\end{description}

\chapter{Context du stage}
\section{SAP}
\subsection{Qu'est-ce qu'un ERP?}
\subsection{Qu'est-ce qu'un \textbf{ERP}?}
\par
Un ERP (Enterprise Resource Planning) est un progiciel, c'est à dire un ensemble de logiciels n'en constituant qu'un
Un \textbf{ERP} (Enterprise Resource Planning) est un progiciel, c'est à dire un ensemble de logiciels n'en constituant qu'un
seul, et capable de répondre au besoin d'une entreprise dans autant de domaines qu'il a de modules. Les plus courants de
ces modules sont généralement les achats, les stocks, la production, les ventes, la distribution, les salaires, la
comptabilité, les finances et la trésorerie.
\par
Pour faire simple, l'ERP est l'application centrale entre les très nombreux et divers services d'une entreprise. Les
Pour faire simple, l'\textbf{ERP} est l'application centrale entre les très nombreux et divers services d'une entreprise. Les
ouvriers sur les chaînes de fabrication, les comptables, les ingénieurs de recherche et développement, et beaucoup
d'autre personnes sont amené à utiliser l'ERP pour synchroniser toutes les informations à partir d'un outil unique et
d'autre personnes sont amené à utiliser l'\textbf{ERP} pour synchroniser toutes les informations à partir d'un outil unique et
global.
\par
SAP (Systems, Applications and Products for data processing) est un des ERP les plus connus. Son architecture modulaire
\textbf{SAP} (Systems, Applications and Products for data processing) est un des \textbf{ERP} les plus connus. Son architecture modulaire
et multi-fonctionnelle en font un outil d'une grande flexibilité pouvant s'adapter à la majorité des entreprises. De
plus, si des fonctionnalités viennent à manquer il est toujours possible de les développer à l'aide de son environnement
de développement et du language ABAP qu'il intègre.
de développement et du language \emph{ABAP} qu'il intègre.

\subsection{SAP chez Faurecia}
\subsection{SAP chez \textbf{Faurecia}}
\subsubsection{Déploiement et historique}
\par
Le déploiement de SAP au sein de Faurecia remonte à 2009, avec le lancement du projet FCS (Faurecia Core System).
Le déploiement de \textbf{SAP} au sein de \textbf{Faurecia} remonte à 2009, avec le lancement du projet \textbf{FCS} (Faurecia Core System).
L'application est mise en place dans un centre de données informatiques en Allemagne, à Hagenbach (HGB). L'entreprise
bénéficie alors d'un ERP commun à toutes les usines, soit plus de 183 sites à travers le monde, pour environ 41500
bénéficie alors d'un \textbf{ERP} commun à toutes les usines, soit plus de 183 sites à travers le monde, pour environ 41500
utilisateurs quotidiens.
\par
Les conséquences de l'utilisation de SAP sont nombreuses, en bien comme en mal. Il apporte certes, entre autre,
Les conséquences de l'utilisation de \textbf{SAP} sont nombreuses, en bien comme en mal. Il apporte certes, entre autre,
l'avantage d'être centralisé, c'est à dire que tout le monde a le même outil, et on évite ainsi les problèmes de
synchronisation de production, mais en revanche, cela apporte un point très critique pour la gestion informatique de cet
ERP. En effet, la moindre indisponibilité ralenti, voir stoppe la production, ce qui empêche alors de livrer les
\textbf{ERP}. En effet, la moindre indisponibilité ralenti, voir stoppe la production, ce qui empêche alors de livrer les
clients, et a donc des conséquences financières directes.
\subsubsection{Architecture}
\par
La quasi totalité des modules SAP existants sont utilisés chez Faurecia:
La quasi totalité des modules \textbf{SAP} existants sont utilisés chez \textbf{Faurecia}:
\begin{description}
\item[ECC] logistique, gestion comptable et ressources humaines
\item[PI/PO] échange de fichiers (clients/fournisseurs en interne et en externe)
@@ -277,7 +329,7 @@ De plus, pour chaque module, plusieurs environnements, c'est à dire plusieurs i
(physique, applicative et données) identique à l’environnement de production
\item[Production] permet de délivrer les fonctionnalités aux utilisateurs
\end{description}
% TODO ajouter landscape SAP en annexe
% TODO ajouter landscape \textbf{SAP} en annexe
\vskip 3mm
L'environnement de production étant utilisé en permanence par les utilisateurs finaux, c'est celui qui est le plus
critique, contrairement aux autres, qui ne servent globalement que pour des tests.
@@ -286,42 +338,42 @@ critique, contrairement aux autres, qui ne servent globalement que pour des test
\subsection{Origine}
\par
\textbf{FCS Business Continuity} (FCS BC) est le projet sur lequel j'ai travaillé pendant mon stage. Il a été démarré en Juin 2015,
à la suite de plusieurs incidents au niveau de SAP. Ces incidents étaient d'ordre technique, liés principalement aux
à la suite de plusieurs incidents au niveau de \textbf{SAP}. Ces incidents étaient d'ordre technique, liés principalement aux
serveurs, et la versions des logiciels utilisés dessus. La décision fût donc prise de mettre en place une sécurisation
de l'ERP, et le projet FCS BC fûr confié à Murielle.
de l'\textbf{ERP}, et le projet \textbf{FCS BC} fûr confié à Murielle.

\subsection{Objectifs du projet}
\par
Il a pour but de supprimer les activités informatiques centrales du site de Hagenbach pour les transférer à Marcoussis
(EDC), et de sécuriser les environnements SAP. Cela passe par plusieurs points critiques:
(EDC), et de sécuriser les environnements \textbf{SAP}. Cela passe par plusieurs points critiques:
\begin{itemize}
\item Transférer les environnements SAP hébergés à Hagenbach dans le Data Center de Marcoussis
\item Transférer les environnements \textbf{SAP} hébergés à Hagenbach dans le Data Center de Marcoussis
\item Mettre en place une séparation physique et logique des environnements transférés entre les différentes régions
géographiques de Faurecia (Europe/Asie/Amérique/Central)
\item Déplacer les environnements SAP hors production dans le nouveau Data Center de Clichy (depuis HGB et/ou depuis
géographiques de \textbf{Faurecia} (Europe/Asie/Amérique/Central)
\item Déplacer les environnements \textbf{SAP} hors production dans le nouveau Data Center de Clichy (depuis HGB et/ou depuis
EDC)
\end{itemize}
\vskip 3mm
\par
Ce projet apporte plusieurs avantages non négligeables:
\begin{itemize}
\item Éviter de perdre tous les modules SAP de toutes les régions en cas de problème en les séparant tant
\item Éviter de perdre tous les modules \textbf{SAP} de toutes les régions en cas de problème en les séparant tant
physiquement que logiquement
\item Réduire les impacts pour les sites de production FAURECIA:
\item Réduire les impacts pour les sites de production \textbf{Faurecia}:
\begin{itemize}
\item Limite du périmètre affecté en cas de problème
\item Être capable de planifier des opérations plus facilement région par région
\end{itemize}
\item Standardiser les serveurs et solutions informatiques SAP quelque soit la région géographique qu'ils supportent
\item Sécuriser la production FAURECIA avec une solution de reprise d'activité disponible dans un Data Center distant
\item Standardiser les serveurs et solutions informatiques \textbf{SAP} quelque soit la région géographique qu'ils supportent
\item Sécuriser la production \textbf{Faurecia} avec une solution de reprise d'activité disponible dans un Data Center distant
\item Libérer le site d'Hagenbach des contraintes liées à un Data Center
\end{itemize}

\subsection{Ma position dans FCSBC}
\subsection{Ma position dans \textbf{FCS}BC}
\par
Mon rôle dans le projet Business Continuity a été d'assurer le suivi du monitoring pendant les phases de déplacement (ou
\emph{move}) des environnements SAP. J'étais une sorte de point central entre Murielle, qui coordonnait le projet,
l'équipe système qui s'occupait de déplacer les machines, l'équipe SAP qui déplacait les applications une fois que les
\textbf{move}) des environnements \textbf{SAP}. J'étais une sorte de point central entre Murielle, qui coordonnait le projet,
l'équipe système qui s'occupait de déplacer les machines, l'équipe \textbf{SAP} qui déplacait les applications une fois que les
nouvelles machines étaient en place, et l'équipe monitoring, qui s'occupait de la configuration de \emph{Nagios}.

\section{Nagios}
@@ -335,7 +387,7 @@ qui tournent sur ces dernières.
Surveiller, c'est une chose, mais le rôle du monitoring est aussi beaucoup de prévenir, lorsque quelque chose ne va pas.
Dans ce cas, des mails sont généralement envoyés automatiquement, mais on peut aussi faire beaucoup plus, comme par
exemple déclancher des scripts qui vont tenter d'autoréparer le système.
\subsection{Nagios chez Faurecia}
\subsection{Nagios chez \textbf{Faurecia}}
\subsubsection{Nagios}
\par
\emph{Nagios} est une solution libre et open-source de monitoring apparut en 1996, et qui a depuis fait ses preuves dans
@@ -366,8 +418,8 @@ J'ai été équipé d'un laptop de prêt au début, installé avec \emph{Windows
accéder à ma messagerie fonctionnant avec \emph{Outlook} exclusivement. J'ai gardé ce laptop jusqu'à la fin de mon stage
uniquement pour la messagerie.\\
En revanche, j'ai rapidement demandé à être équipé d'un système \emph{Linux}, et j'ai donc dès le deuxième jour récupéré
la tour d'un ancien stagiaire sur laquelle j'ai pu installer Ubuntu 14.04 avec Awesome WM. Deux mois plus tard, j'ai pu
troquer cette tour contre un laptop beaucoup plus récent, celui d'un salarié qui quittait Faurecia, sur lequel j'ai pu
la tour d'un ancien stagiaire sur laquelle j'ai pu installer \emph{Ubuntu 14.04} avec \emph{Awesome WM}. Deux mois plus tard, j'ai pu
troquer cette tour contre un laptop beaucoup plus récent, celui d'un salarié qui quittait \textbf{Faurecia}, sur lequel j'ai pu
remettre ce même système.
\par
En bref, j'ai pu travailler avec un environnement et une suite logiciel que j'ai pu choisir à 100\%, totalement libre et
@@ -383,7 +435,7 @@ open-source, en ayant juste la contrainte d'un second laptop sous \emph{Windows}
\par
Tel était le sujet marqué dans la fiche réponse, et pour lequel une convention a été signée. C'est en réalité assez
vague, mais cela représente tout de même assez bien la réalité, puisque l'ensemble des tâches qui m'ont été attribuées
tournaient autour de ce fameux outil, SAP, hormis les trois premières semaines.
tournaient autour de ce fameux outil, \textbf{SAP}, hormis les trois premières semaines.

\subsection{Les débuts}
\par
@@ -398,7 +450,7 @@ Il m'a principalement été demandé d'automatiser une procédure de génératio
collecter des données diverses pour en faire des statistiques et des graphiques utilisables, le tout très rapidement.
C'est un travail qui est réalisé une fois par mois, et qui permet de présenter au management un résumé chiffré des
actions des 30 derniers jours. Ce travail est fastidieux, car on a besoin de se connecter à de nombreuses pages Web, et
d'en extraire des données sous la forme en général de tableaux Excel. La contrainte était de ne pas avoir aux bases de
d'en extraire des données sous la forme en général de tableaux \emph{Excel}. La contrainte était de ne pas avoir aux bases de
données de façon direct, et l'on devait alors simuler les actions de l'utilisateur dans le naviguateur, ce que j'ai
réalisé à l'aide de la bibliothèque \emph{Selenium}, et de son module pour \emph{Python}.
\par
@@ -412,63 +464,64 @@ J'ai eu à personnaliser la page d'accueil de l'instance de \emph{Etherpad}, un
une instance venait d'être déployée.
\par
J'ai également réalisé deux petits scripts \emph{Python} à l'aide de \emph{Fabric}, une bibliothèque elle aussi libre servant à lancer
facilement des commandes shells depuis \emph{Python}, que ce soit sur la machine locale, ou bien à distance à l'aide d'SSH. Ces
facilement des commandes shells depuis \emph{Python}, que ce soit sur la machine locale, ou bien à distance à l'aide d'\emph{SSH}. Ces
scripts servaient à automatiser la création de machines virtuelles dans \emph{VirtualBox} et de les convertir en environnement
\emph{Vagrant}, afin de pouvoir rapidement réaliser des fichiers d'environnement virtuels à jour lors de la sortie de nouvelles
versions des systèmes \emph{Ubuntu} et \emph{Cent OS}.

\subsection{Première mission à long terme}
\par
Lorsque Murielle m'a pris en charge, j'ai commencé à travailler sur ma première mission à long terme. Il s'agissait de
servir de point centrale entre trois équipe.
Premièrement, celle qui gérait le projet FCS Business Continuity, c'est à dire Murielle elle même, entre autres.
Venaient ensuite les équipes systèmes qui gèraient les machines ciblées par le projet FCS.
Lorsque Murielle m'a pris en charge, fin Septembre, j'ai commencé à travailler sur ma première mission à long terme. Il
s'agissait de servir de point centrale entre trois équipe.
Premièrement, celle qui gérait le projet \textbf{FCS} Business Continuity, c'est à dire Murielle elle même, entre autres.
Venaient ensuite les équipes systèmes qui gèraient les machines ciblées par le projet \textbf{FCS}.
Enfin, il y avait les équipes monitoring, basées en Chine, mais dont le responsable était mon voisin de bureau, et dont
le rôle était de gérer la configuration de l'outil Nagios afin d'assurer le monitoring de ce que le système mettait en
le rôle était de gérer la configuration de l'outil \emph{Nagios} afin d'assurer le monitoring de ce que le système mettait en
place.
\par
Mon rôle là dedans était d'observer ce que Nagios monitorait réellement, de me renseigner sur ce qu'il y avait à
Mon rôle là dedans était d'observer ce que \emph{Nagios} monitorait réellement, de me renseigner sur ce qu'il y avait à
monitorer et qui ne l'était pas, et de faire réagir les bonnes personnes en conséquence. En général, le schéma était
toujours le même. Je constatais que quelque chose n'était pas monitoré, ou était mal monitoré. Je contactais donc la
personne du système en charge de cette machine afin soit qu'elle me transmettre les informations manquantes, et je
créais ensuite un ticket pour les équipes chinoises, soit qu'elle fasse elle-même le ticket dans le cas où il y aurait
des informations trop complexes pour être relayées correctement.
\par
Cette première mission me familiarisa beaucoup avec ce qu'était SAP, et l'environnement gigantesque qui en découlait. Je
Cette première mission me familiarisa beaucoup avec ce qu'était \textbf{SAP}, et l'environnement gigantesque qui en découlait. Je
découvrais aussi les différents problèmes qui faisaient perdre beaucoup de temps, notamment le manque cruel d'un
inventaire des machines, commun aux différentes équipes. C'est ce qui m'a mené par la suite à faire évoluer un peu le
sujet de mon stage.

\subsection{Seconde mission à long terme}
\par
Lorsque j'ai eu passé un certain temps dans l'interface de Nagios, à traquer les défauts, les manques, et les surplus
Lorsque j'ai eu passé un certain temps dans l'interface de \emph{Nagios}, à traquer les défauts, les manques, et les surplus
d'informations, j'ai commencé à chercher comment je pourrais automatiser tout cela. Je me suis déjà renseigné à propos
d'une interface qui me permettrait de faire des requêtes dans la base de donnée du monitoring, et on m'a dirigé vers
Livestatus, un module pour Nagios qui fourni une API semblable à du SQL, et que je pouvais requêter comme je le
\emph{Livestatus}, un module pour \emph{Nagios} qui fourni une API semblable à du \emph{SQL}, et que je pouvais requêter comme je le
souhaitais.
\par
J'ai donc commencé par un petit script s'utilisant en ligne de commande qui me servait à classer les machines trouvées
sur Nagios, en les triant par environnements SAP. Cela fonctionnait bien, mais j'étais le seul à savoir m'en servir, et
je constatais que certaines questions que l'on me posait avaient leur réponse facilement à travers ce petit script.
J'ai donc commencé, fin Octobre, par un petit script s'utilisant en ligne de commande qui me servait à classer les
machines trouvées sur \emph{Nagios}, en les triant par environnements \textbf{SAP}. Cela fonctionnait bien, mais j'étais le seul à
savoir m'en servir, et je constatais que certaines questions que l'on me posait avaient leur réponse facilement à
travers ce petit script.
\par
Il a donc fallu réfléchir à un moyen de rendre ma petite base de donnée accessible facilement, tant à des personnes
techniques, que parfois à des gens dont le corp de métier n'est pas l'informatique. Quoi de mieux qu'une interface Web
pour arriver à cela!
\par
Ma seconde mission a donc été de développer cette interface et de la rendre la plus ergonomique possible. J'ai même peu
à peu abandonné la ligne de commande, puisqu'elle ne suivait plus les dernières fonctionnalités. Début Janvier, il m'a
même été demandé d'installer cette interface sur un serveur dédié afin de continuer à la faire fonctionner après mon
départ, ce qui fût plutôt gratifiant.
Ma seconde mission, qui a commmencé fin Novembre, a donc été de développer cette interface et de la rendre la plus
ergonomique possible. J'ai même peu à peu abandonné la ligne de commande, puisqu'elle ne suivait plus les dernières
fonctionnalités. Début Janvier, il m'a même été demandé d'installer cette interface sur un serveur dédié afin de
continuer à la faire fonctionner après mon départ, ce qui fût plutôt gratifiant.

\section{Rôles et objectifs des travaux}
\subsection{Concernant le monitoring}
\par
Pour cette tâche, les objectifs étaient simples, mais c'est la tâche elle-même qui était délicate, pas sur le plan
technique, mais plus au niveau des responsabilités. Le but était de s'assurer que pendant les phases de déplacement des
environnement SAP, le monitoring soit toujours correctement assuré.
environnement \textbf{SAP}, le monitoring soit toujours correctement assuré.
Il y avait plusieurs cas quand je suis arrivé:
\begin{itemize}
\item Des environnements déjà déplacés, et il fallait alors s'assurer que Nagios avait suivit le mouvement et
\item Des environnements déjà déplacés, et il fallait alors s'assurer que \emph{Nagios} avait suivit le mouvement et
monitorait donc les nouvelles machines tout en ayant supprimé les anciennes.
\item Des environnements en cours de déplacement, qu'il fallait donc monitorer deux fois: la vieille instance, et la
nouvelle, sans qu'il y ait de conflits, sur les noms de machines par exemple.
@@ -485,48 +538,47 @@ informations.

\subsection{Objectif de l'outil d'inventaire}
\par
J'ai pu remarqué que lorsque je cherchais à me documenter sur les environnement SAP, il était très difficile, voire
J'ai pu remarqué que lorsque je cherchais à me documenter sur les environnement \textbf{SAP}, il était très difficile, voire
impossible d'obtenir une liste précise des machines. L'inexistence à travers plusieurs équipe d'un inventaire commun
rendait la tâche particulièrement difficile, puisqu'il fallait toujours aller chercher les informations là où elles se
trouvaient, et pas toujours là où l'on s'y attend.
\par
On m'avait demandé, lorsque l'on m'a chargé de vérifier le monitoring, de construire en même temps un diaporama
Powerpoint présentant chaque environnement, et contenant toutes les machines dans chacun d'eux, avec un certain nombre
\emph{Powerpoint} présentant chaque environnement, et contenant toutes les machines dans chacun d'eux, avec un certain nombre
d'information. Mais le problème que j'ai constaté d'un tel document, est que d'une part, il n'est pas dynamique, et donc
qu'il devra être maintenu à la main, et d'autre part, qu'il n'est pas centralisé, ce qui engendrera rapidement des
différences de version chez chacune des personnes possédant le document.
\par
L'objectif de faire l'inventaire était donc clair: il fallait que je concoive un outil très simple à utiliser, construit
sur une base de donnée dynamique se mettant à jour automatiquement, qui soit centralisé, et qui permettrait aux
différentes équipes SAP d'accéder à tout moment et rapidement à la plupart des informations de base concernant les
différentes équipes \textbf{SAP} d'accéder à tout moment et rapidement à la plupart des informations de base concernant les
environnements.

\section{Déroulement}
\subsection{Vérifier le monitoring}
\subsubsection{Bien utiliser Nagios} % Attention au rangement dans les bonnes sous-parties
\section{Vérifier le monitoring}
\subsection{Bien utiliser \emph{Nagios}} % Attention au rangement dans les bonnes sous-parties
\par
En réalité, ce n'est pas directement Nagios que nous utilisions, mais simplement une de ses nombreuses interface Web .
En réalité, ce n'est pas directement \emph{Nagios} que nous utilisions, mais simplement une de ses nombreuses interface Web .
Cette interface facilite grandement la surveillance en fournissant principalement un moteur de recherche très puissant
permettant de trouver rapidement n'importe quelle machine, voire même des groupes de machines, pour ensuite accéder à
des informations très détaillées sur les services de monitoring appliqués à cette ou ces machine(s).
\par
Je devais donc suivre le \emph{paysage}, ou \emph{landscape}, et chercher environnement par environnement la liste des
machines, en contactant à chaque fois les personnes responsable du dit environnement pour vérifier que l'ensemble
existait bel et bien dans Nagios.
Je devais donc suivre le \textbf{paysage}, ou \textbf{landscape}, c'est à dire une sorte de plan de \textbf{SAP}, et
chercher environnement par environnement la liste des machines, en contactant à chaque fois les personnes responsable du
dit environnement pour vérifier que l'ensemble existait bel et bien dans \emph{Nagios}.
\par
Lorsqu'une anomalie était détectée, elle pouvait être de plusieures sorte, avec différents niveaux de criticité:
\begin{description}
\item[Critique] \hfill \\
Lorsqu'une machine est sensé exister, mais est introuvable. Cela la rend totalement
Lorsqu'une machine est sensée exister, mais est introuvable. Cela la rend totalement
invisible aux yeux du monitoring, et on ne peut absoluement pas savoir quand cette machine a un problème,
excepté en allant voir manuellement.
\item[Critique] \hfill \\
La machine est trouvable, mais elle s'affiche en rouge, et le ping échoue. Cela signifie
La machine est trouvable, mais elle s'affiche en rouge, et le \emph{ping} échoue. Cela signifie
généralement que la machine a subit un déplacement mais que le monitoring n'a pas été mis à jour. Il faut donc
rapidement l'équipe systèmes pour trouver qui contrôle la machine et lui demander de transmettre les
informations de base la concernant, comme son nom et son adresse IP, afin de régulariser au plus vite.
\item[Peu critique] \hfill \\
On voit la machine en vert, et celle-ci répond au ping, mais un grand nombre de ses
On voit la machine en vert, et celle-ci répond au \emph{ping}, mais un grand nombre de ses
services sont rouges. Cela signifie qu'elle a subit un important changement d'architecture pendant le
déplacement, et que les services à monitorer ont changé. Il faut donc contacter l'équipe applicative afin de
savoir ce qu'il font tourner dessus, et donc demander à l'équipe monitoring de suivre les bons services.
@@ -537,23 +589,23 @@ Lorsqu'une anomalie était détectée, elle pouvait être de plusieures sorte, a
cherche alors auprès de toutes les équipes concernées pour trouver qui possède les informations manquantes.
\end{description}

\subsubsection{Redmine, puis MosaiC}
\subsection{Redmine, puis \emph{MosaiC}}
\par
\emph{Redmine} et \emph{MosaiC} sont les bugs-trackers utilisé dans le projet FCS-BC. Redmine était présent au début,
puis le changement vers MosaiC a été opéré en Novembre.
\emph{Redmine} et \emph{MosaiC} sont les bugs-trackers utilisé dans le projet \textbf{FCS BC}. \emph{Redmine} était présent au début,
puis le changement vers \emph{MosaiC} a été opéré en Novembre.
\paragraph{Redmine} est un outil libre de bug tracking et gestion de projet, intégrable facilement avec le gestionnaire
de révision Git, et qui permettait de facilement trier les issues entre les différents projets. De plus, on pouvait
de révision \emph{Git}, et qui permettait de facilement trier les issues entre les différents projets. De plus, on pouvait
suivre l'évolution des tickets dans le temps, on faisant évoluer la priorité, en ajoutant des informations si besoin, le
tout dans une sorte de dialogue avec l'équipe affectée à la résolution du ticket.
\paragraph{MosaiC} est arrivé début Novembre pour remplacer Redmine. Il remplissait moins bien son rôle de bug tracker
\paragraph{MosaiC} est arrivé début Novembre pour remplacer \emph{Redmine}. Il remplissait moins bien son rôle de bug tracker
puisque c'est un outil de gestion du changement, mais avait une plus grande base de connaissance sur les projets, on
triant jusqu'au niveau de l'environnement dans le projet FCS. Je m'en suis finalement peu servi. En effet, c'est à cette
triant jusqu'au niveau de l'environnement dans le projet \textbf{FCS}. Je m'en suis finalement peu servi. En effet, c'est à cette
période que j'ai commencé à développer \emph{Sappin}.
\par
C'est au travers de ces deux outils que j'ai fait remonté les demandes de modifications de Nagios pour assurer un
monitoring optimal pendant les phases de \emph{move}.
C'est au travers de ces deux outils que j'ai fait remonté les demandes de modifications de \emph{Nagios} pour assurer un
monitoring optimal pendant les phases de \textbf{move}.

\subsubsection{La communication: mail et IM}
\subsection{La communication: mail et IM}
\par
La communication était une partie très importante de mon travail. En effect il me fallait en permanence contacter les
différents responsables de tel ou tel service afin d'obtenir les informations là où elles se trouvaient. Par conséquent,
@@ -565,7 +617,7 @@ plug-in y étaient installé, afin de pouvoir également gérer les conférences
synchronisation avec la liste des salles et le gestionnaire d'emploi du temps de chacun. L'annuaire interne de
\textbf{Faurecia} y était évidemment présent également.
\par
L'autre moyen de communication utilisé était la messagerie instantanée. Le client officiel de Faurecia était
L'autre moyen de communication utilisé était la messagerie instantanée. Le client officiel de \textbf{Faurecia} était
\emph{Spark}, mais étant donnée que tout passait par un serveur \emph{XMPP}, et qu'il s'agit d'un protocol ouvert,
n'importe quel client pouvait faire l'affaire, et j'ai donc utilisé \emph{Gajim}, ce dernier étant plus léger.
\par
@@ -574,25 +626,36 @@ des personnes que je contactais régulièrement. Elle remplacait presque une dis
pouvoir transmettre des liens très facilement pour pointer un problème en particulier rapidement, tout en ayant chaque
interlocuteur présent sur sa machine de travail, et ayant dont accès rapidement à ses informations numériques.

% Parler des alertes: demander au bon gugus de vérifier les services présents sur les machines pour le system ou la team
% SAP fasse le ticket en demandant de monitorer les bons services, ce que les chinois règlaient par la suite.
\subsection{Fin de la mission}
\par
Pour mettre en place le monitoring, j'avais bien évidemment eu des dates à respecter, et un des plus gros \textbf{move} était
prévu pour le week end du 21-22 Novembre. Mais suite à un problème dans l'environnement, le \textbf{move} a été reporté au
premier trimestre de 2016, c'est à dire vers début Mars. Cependant, le monitoring était prêt, et ma mission prenait donc
fin. J'allais pouvoir me centrer pleinement sur l'inventaire.

\subsection{Développer un inventaire}
\section{Développer un inventaire: \textbf{SAPPIN}}
\par
\emph{Bien que le nom fût trouvé tout à la fin de mon stage, je me référerai à l'application en l'appelant par son nom,
\textbf{Sappin}.}
\par
\textbf{Sappin} est venu à la base de \textbf{SAPIN}, qui signifiait \emph{SAP INventory}. Je me suis ensuite dit que
l'application pouvait tout à fait être déployée pour tout type d'infrastructure, et pas seulement \textbf{SAP}, et je l'ai donc
renommé en \textbf{SAPPIN}, pour \emph{Simple APPlication INventory}.
\par
C'était là clairement ma mission la plus technique, d'un point de vue technologique d'une part, et d'un point de vue de
gestion de projet également. En effet, j'ai été sur ce projet en totale autonomie, puisque c'est d'une initiative de ma
part que le projet est parti.
\subsubsection{Identifier le besoin}
\subsection{Identifier le besoin}
\par
Lorsque je m'occupais du monitoring, j'ai remarqué que j'étais souvent confronté aux mêmes problèmes.
\par
Pour commencer, lorsque l'on regarde sur \emph{Nagios}, on peut voir une machine (un \emph{host}), mais on ne sait pas
instantanément où elle est située, d'un point de vue physique, c'est à dire en pratique chez Faurecia, savoir si le
instantanément où elle est située, d'un point de vue physique, c'est à dire en pratique chez \textbf{Faurecia}, savoir si le
serveur est à Hagenbach, Marcoussis, ou encore ailleurs.
\par
Ensuite, il pouvait arriver d'avoir à trouver toutes les machines qui répondaient à un critère. Un système d'expressions
rationnelles dans l'interface permet d'avoir les filtres les plus fins qui soient, mais ce n'est guère ergonomique, et
on se rend compte en pratique que l'on tri très souvent par module ou par environnement SAP.
on se rend compte en pratique que l'on tri très souvent par module ou par environnement \textbf{SAP}.
\par
Vient alors un autre problème, qui est de savoir qui est responsable de cette machine. Où de manière plus générale, où
sont les ressources concernant cette machine. Dans \emph{Nagios}, une machine est représenté par sont nom et quelques
@@ -604,12 +667,13 @@ pouvait faire mieux.
Toutes ces tâches avaient donc besoin d'être simplifiées, ou automatisées quand c'était possible, et le besoin d'une
petite application était là clairement définit.

\subsubsection{La phase de développement}
\subsection{La phase de développement}
\subsubsection{Construire des requêtes}
\par
J'ai commencé la phase de développement en automatisant seulement quelques requêtes pour accéder plus rapidement aux
informations sans avoir à passer par l'interface Web. Cette automatisation passait par l'outil \emph{Livestatus}, un
plugin pour \emph{Nagios} qui fournit un socket sur lequel on peut effectuer des requêtes. Les requêtes se font alors
dans un language, le LQL, dont la syntaxe est proche de HTTP, mais tout en ayant le paradigme du SQL, ce qui permet de
dans un language, le \emph{LQL}, dont la syntaxe est proche de \emph{HTTP}, mais tout en ayant le paradigme du \emph{SQL}, ce qui permet de
faire des requêtes très puissantes.
\begin{figure}[H]
\centering
@@ -619,32 +683,164 @@ faire des requêtes très puissantes.
Filter: host_name ~ FC1
OutputFormat: python
\end{lstlisting}
\caption{
Exemple de requête LQL, permettant de récupérer au format Python, depuis la table \textbf{hostsbygroup}, les
\emph{host\_name}, \emph{alias}, et \emph{address}, de toutes les machines dont le \emph{host\_name} contient
"FC1":
}
\caption{Exemple de requête \emph{LQL}}
Récupére au format \emph{Python}, depuis la table \textbf{hostsbygroup}, les \emph{host\_name}, \emph{alias}, et
\emph{address}, de toutes les machines dont le \emph{host\_name} contient "FC1".
\end{figure}
C'est en partant de ce genre de requête que j'ai commencé à construire \textbf{Sappin}. Au départ, il ne faisait que formatter et
filter le résultat des requêtes que l'on faisait. C'était donc très simpliste, et on l'utilisait de la façon suivante:
\begin{lstlisting}
./cli.py -r FC1
\end{lstlisting}
Cela affichait l'ensemble des objets trouvés contenant FC1 dans leur nom, et c'était donc plus rapide de construire la
recherche dans \emph{Nagios}.
\par
Puis j'ai voulu complexifier un peu l'affichage, en affichant en arborescence les environnements et leurs machines.
S'est posé alors deux problème: comment générer cette arborescence d'un point de vue logique, c'est à dire simplement en
mémoire, puis ensuite, comment l'afficher correctement pour ce soit lisible.

\subsubsection{Inclure une base de données}
\par
Concernant la logique, je me suis rapidement dit qu'il me fallait l'aide d'une petite base de donnée, afin de stocker en
grande partie mes requêtes, mais aussi et surtout pour stocker le temps de traitement des requêtes. En effet, il aurait
été bête de devoir retraiter l'intégralité de l'inventaire à chaque requête. J'ai donc cherché du côté de \emph{SQLalchemy}, un
module pour \emph{Python} fournissant un ORM (Object Relational Model), c'est à dire une interface objet pour interagir avec
une base de donnée relationnelle. On évite par là d'avoir à écrire les requêtes \emph{SQL} à la main, et d'avoir à faire des
jointures dès que l'on veut mettre en relation plusieurs tables.
\par
Concernant le gestionnaire de base de donnée, \emph{SQLalchemy} inclut par défaut \emph{SQLite}, qui est un gestionnaire très léger
générant un simple fichier pour stocker la base, et qui est extrêmement simple à mettre en place, puisqu'il est
automatique par défaut avec \emph{SQLalchemy}, et qu'il n'y a absoluement aucune application serveur à faire tourner pour
l'utiliser.
\par
J'ai pu définir mes objets, de manière simple, avec juste une classe \textbf{Module}, une classe \textbf{Environment},
et une classe \textbf{Host}. Je les ai mis dans une relation arborescente les uns avec les autres, et j'avais là ma
logique: il suffisait de faire une requête récupérant l'ensemble des informations, des les trier et de les ranger, et à
partir de là, on pouvait faire la plupart des requêtes sans même avoir à passer par \emph{Nagios}. Il suffisait
simplement de mettre une fois la base de données à jour, avec \emph{Livestatus}, puis on pouvait requêter autant de fois
que l'on voulait, et très rapidement, les données en local.

\subsubsection{Générer un affichage correct}
\par
L'autre problème subsistait, celui de l'affichage. En effet, un affichage console n'est pas adapté à afficher des
arbres. J'ai déjà essayé, et l'on obtient jamais quelque chose de satisfaisant sans passer par des bibliothèques comme
\emph{(N)Curses}. De plus, cela ne permet pas de partager l'application avec d'autres utilisateur: c'est 100\% local.
\par
J'ai donc commencé à développer une simple page \emph{HTML} afin de pouvoir partager cette page avec notamment Mohamed, mon
voisin de bureau, qui s'occupait de l'équipe monitoring, et qui pouvait avoir besoin de visualiser les mêmes
informations que moi. L'avantage du \emph{HTML} est qu'il est très simple, et permet, grâce à \emph{CSS}, de générer très rapidement
des interface jolies, et même dynamiques si on y inclut un peu de \emph{Javascript}.
\par
Je ne connaissais à l'époque que \emph{PHP} pour générer des pages \emph{HTML}, mais j'avais déjà entendu parlé de beaucoup d'autres
technologie répondant à cette demande, dont \emph{Flask}, qui est un module pour \emph{Python} permettant de faire très simplement des
petits sites dynamiques.
\par
Cela fonctionne en deux partie: un morceau s'occuper de réceptionner les requêtes \emph{HTTP} et les traite, avant demander
ensuite à la deuxième partie de générer l'affichage. \emph{Flask} utilise pour cela \emph{Jinja2}, qui est un moteur de template très
populaire en ce moment dans le monde de \emph{Python}, et qui permet d'écrire des fichiers contenant une grande partie de \emph{HTML},
mais dans lequel on peut inclure des balises contenant du code très proche de \emph{Python}, à quelques contraintes près, et
permettant de faire par exemple des boucles, ou des structures conditionnel, et l'on peut donc générer du \emph{HTML} de
manière dynamique, en fonction des données que l'on a à afficher.

\subsubsection{Améliorer \textbf{Sappin}}
\par
J'avais donc, pendant la première moitié de Décembre, une application fonctionnelle, que j'ai donc présenté à quelques
personnes, dont Murielle et Mohamed. À partir de là, ils ont commencé à me faire des retours utilisateurs, et j'ai donc
eu à ajouter de nouvelles fonctionnalités à \textbf{Sappin}.
\par
Fin Décembre, Murielle m'a dit qu'elle aimerait bien voir \textbf{Sappin} hébergé ailleurs que sur mon laptop, c'est à dire qu'il
fallait que je le déploie sur un serveur. De plus, cela signifiait que \textbf{Sappin} serait encore utilisé après la fin de mon
stage. Il fallait donc que je fasse en sorte qu'il soit le plus maintenable possible.
\par
En effet, lorsque je l'ai développé au début, je l'ai construit comme un script, que j'ai patché encore et encore, et
qui ressemblait à la fin plus à un patchwork de morceaux de code qu'à un vrai programme. J'ai donc dès début Janvier
pris en main une réorganisation complète du code afin d'inclure un fichier de configuration simple et documenté, et
aussi pour améliorer la robustesse du code en cas d'incohérence dans la base de donnée.
\par
Mi-Janvier, j'avais là une application prête à la mise en production, et documentée, avec un README, c'est à dire une
documentation, tant pour les utilisateurs que pour les administrateurs. J'ai donc demandé un serveur, et j'ai alors pu
mettre \textbf{Sappin} en production, avec toutes les fonctionnalités suivante:
\begin{itemize}
\item Liste et vue en arbre de tous les modules, environnements, et machines de l'application
\item Vue détaillée de chaque entité
\item Graphiques simples montrant rapidement la répartition des machines par datacenter
\item Possibilité d'ajouter des informations supplémentaires pour chaque entité, comme des liens, ou même des
fichiers
\item Un mode d'administration sécurisant l'accès en écriture aux informations supplémentaires des entités
\item Vue d'administration listant les entités dont les informations ne sont pas complètes, et permettant un
import/export de la base au format JSON
\item Un seul fichier de configuration simple et commenté permettant de gérer facilement le programme sur le serveur
\end{itemize}

exemple d'utilisation en CLI
description de la transition vers la web UI
à la pêche aux retours user
ajouts de nouvelles fonctionnalitées
la web UI à la fin

\subsubsection{La mise en production}
\subsection{La mise en production}
\par
La machine qui m'a été fournie tournait sous \emph{Windows 7}. Ce n'est pas le système le plus adapté pour un serveur, mais
cela a tout de même faire l'affaire. J'ai donc installé les dépendances du projet, à savoir principalement \emph{Git} et
Python3.
\par
Ce n'était pas des plus facile, car ces logiciels sont très adaptés à des environnement Unix/Linux, mais moins à du
Windows. De plus, le proxy présent sur le réseau a encore un peu compliqué la tâche, mais j'ai tout de même réussi à
mettre l'environnement en place, et à installer \textbf{Sappin}.
\par
Il ne restait alors qu'à sécuriser le mode d'administration, c'est à dire mettre un mot de passe sur une URL bien
précise. Pour cela, j'ai installé le bien connu serveur \emph{Apache}, afin de le configurer en reverse-proxy, et de mettre une
authentification \emph{HTTP} sur la fameuse URL.
\par
Enfin, pour être sûr que tout continue à fonctionner, j'ai installé ces deux programmes, \textbf{Sappin} et \emph{Apache}, en mode
service, afin qu'ils soient démarrés automatiquement au lancement de la machine.

\subsection{Quelques formations avant de partir}
\par
Pendant les quelques semaines qui restaient, en plus de la rédaction de ce rapport, on m'a demandé de dispenser quelques
formations sur \textbf{Sappin}.
\par
J'ai donc pu présenter le programme tout d'abord à Murielle et aux autres managers. Ils se serviront de \textbf{Sappin} pour
consulter rapidement l'architecture de \textbf{SAP} afin de prendre des décisions quant aux projets gravitant autour, comme \textbf{FCS
BC} par exemple.
\par
Je l'ai également présenté à l'équipe applicative \textbf{SAP}, qui sont les premiers utilisateurs, puisque c'est eux qui
remplissent les champs supplémentaires de chaque entité, et qui maintiennent toutes les machines. Cela leur permettra de
consulter les environnements qu'ils ne connaissaient pas. En effet, ils ont tous la responsabilité d'un certain nombre
de machines, mais aucun n'a connaissance de l'architecture des plus de 80 environnements, et ils auront donc une vue
d'ensemble avec \textbf{Sappin}.
\par
Enfin, j'ai eu à animer une vidéoconférence avec l'équipe de "pilotes", située au Mexique. C'est eux qui fournissent les
équipes disponiblent 24H/24 pour maintenir l'infrastructure en cas de problème courant, et pourront donc également
visualiser les environnements avec des liens rapides vers les procédures qu'ils peuvent avoir à suivre.

\chapter*{Conclusion}
\addcontentsline{toc}{chapter}{Conclusion}
\par
Pour terminer ce rapport, je dirais que je suis avant tout très content de mon stage. Il m'a permis d'apprendre beaucoup
de choses, sur beaucoup de points très différents les uns des autres, et j'ai pu découvrir le fonctionnement d'une
grande entreprise sur bon nombre de ses aspects.
\par
En effet, j'ai pu voir que résoudre un problème simple en apparence peut vite se complexifier quand les équipes sont
réparties autour de la planète. On doit parfois attendre le lendemain pour avoir une réponse dans sa boîte mail. Une
simple demande de service peut avoir à inclure plus de quatre personnes pour réunir l'ensemble des informations. Toutes
ces choses pratiques me sont désormais évidentes, mais je ne les avais pourtant jamais imaginées avant de commencer mon
travail chez \textbf{Faurecia}.
\par
Finalement, j'ai eu la satisfaction d'avoir une grande liberté quant aux technologies que j'ai pu employer. C'est quelque
chose que je n'aurais pas cru possible de la part d'une grande société ou tout me semblait très standardisé et codifié,
de pouvoir travailler avec un environnement Linux dès le début, et de pouvoir développer une application en utilisant
uniquement des outils libres et open-source. Je remercie d'ailleurs grandement \textbf{Faurecia} pour cela, et en garderai
toujours un très bon souvenir.

\chapter*{Bibliographie}
\addcontentsline{toc}{chapter}{Bibliographie}
\url{http://mathias-kettner.de/checkmk_livestatus.html}
\url{https://docs.python.org/3/}
\url{http://docs.sqlalchemy.org/en/rel_1_0/}
\url{http://flask.pocoo.org/}
\url{http://jinja.pocoo.org/}
\begin{itemize}
\item Documentation de \emph{Livestatus}, le plugin de requêtes pour \emph{Nagios}
\par \url{http://mathias-kettner.de/checkmk_livestatus.html}
\item Documentation du language \emph{Python 3}
\par \url{https://docs.python.org/3/}
\item Documentation de la bibliothèque \emph{SQLalchemy}
\par \url{http://docs.sqlalchemy.org/en/rel_1_0/}
\item Documentation de la bibliothèque \emph{Flask}
\par \url{http://flask.pocoo.org/}
\item Documentation du moteur de template \emph{Jinja2}
\par \url{http://jinja.pocoo.org/}
\end{itemize}

\chapter*{Annexes}
\addcontentsline{toc}{chapter}{Annexes}
@@ -653,3 +849,4 @@ la web UI à la fin

\end{document}

%s/ \(SQLalchemy\|SQLite\)/ \\emph{\1}/

BIN
pix/repartition_faurecia_monde.png View File

Before After
Width: 916  |  Height: 492  |  Size: 233KB

BIN
pix/repartition_vente_faurecia.png View File

Before After
Width: 822  |  Height: 508  |  Size: 116KB

Loading…
Cancel
Save