CAHIER DE S CHARGE S Remote Workload Manager équipe Regis Rouyard (rouyar_r) Jonathan Bouchot (boucho_o) Johan Massin (massin_j) Jacky Rouquette (rouque_j) Yannick Boillon (boillo_o) EPITECH INOVATION PROJECT 2010 Abstract : Le cycle Master de l'epitech est validé par un projet final: l'eip (Epitech Innovative Project). L'EIP permet d'appliquer les compétences acquises au cours des années précédentes, dans une démarche de création de produit. C'est donc plus qu'une réalisation technique qui est demandée, mais bien un ensemble de livrables: documentation, packaging, communication, assurance de qualité, etc. Ce document présente l'eip RWM (pour Remote Workload Manager) qui reprend l'idée d'un projet existant l'eip ADITAM réalisé l'année dernière. Le projet RWM repartira entièrement de zéro et le langage de programmation utilisé sera le Perl car c'est un langage de plus en plus utilisé par les administrateurs système contrairement à ADITAM qui est réalisé en en Phyton. En quelques mots, RWM ( Remote Workload Manager ) consiste à répartir une charge de travail sur un ensemble de serveurs suivant un scénario donné. Nous espérons réduire les travaux répétitifs des administrateurs systèmes et de plus optimiser leur temps de travail ainsi les rendre plus efficace et moins ennuyeux grâce à la planification de charges de travail à distance sur plusieurs serveurs souhaité, tout en préservant les avantages des solutions déjà existantes. 1 2010 CDC RWM FR EIP-EPITECH
Sommaire 1. Description du projet...2 1.1 Le Besoin...2 1.2 Solution existante...2 1.3 Notre Solution...3 1.4 Fonctionnalités détaillées...3 1.5 Choix technologique...4 3. Organisation...4 3.1 L'équipe...4 3.2 Méthodologie...5 3.4 ressources techniques...5 3.5. Communication...6 3.6. Procédures de test...6 2 2010 CDC RWM FR EIP-EPITECH
1. Description du projet 1.1 Le Besoin A l'heure actuelle, les parcs informatiques des entreprises sont de plus en plus importants et les administrateurs ont de plus en plus de travail. De plus, une grande partie des tâches effectuées sur une de leurs machines sont à faire sur tout le parc informatique de l'entreprise. Certaine tâches sont à effectuer par période. De nos jours, les solutions existantes sont limitées et principalement destinées aux grandes entreprises. Notre produit leur permettra de pouvoir gérer à distance toutes leurs machines (pc et serveur). Ce gestionnaire de tâches sera portable (Windows et Unix) et facile d'utilisation. 1.2 S olution existante De nos jours, les solutions existantes sont limitées et uniquement destinées aux grandes entreprises, dans des domaines très spécifiques (notamment appliqué à des ERP complexes). Avec RWM, nous souhaitons créer une solution souple et facilement adaptable à l infrastructure existante d une entreprise. De nombreuses solutions existent mais ne sont pas complètes, voici quelques solutions retenues. ADITAM Est une ébauche de solution d automatisation des taches sur un réseau centralisé de serveurs codé en Python. ADITAM est l EPITECH Innovative Project sur lequel nous nous sommes basés, les objectifs étant sensiblement les mêmes, mais le développement du logiciel n ayant pas abouti au résultat attendu, nous avons décidé de totalement le refondre et l améliorer. siteweb : http://www.aditam.org/ ATMA Est un système d'administration de tâches à distance. Il en permet la création rapide à partir d'un modèle de script. Cet outil est un produit fini disponible sur Windows, GNU/Linux et AIX mais qui a été abandonné. Siteweb : N/C 3 2010 CDC RWM FR EIP-EPITECH
Autosys Workload Est une solution d automatisation des traitements informatiques de CA, optimisant les infrastructures dynamiques et orientées services. Elle permet de gérer des tâches informatiques dans les environnements hétérogènes mais également de suivre l avancement d un certain nombre d'opérations à effectuer dans un ordre précis sur un système de gestion de l entreprise. Cette solution se destine principalement aux grandes entreprises disposant d un ERP complexe. siteweb : http://www.ca.com/us/workload-management.aspx Task Distribution Est une méthode de distribution de tâches sur un cluster de serveurs, basée sur la boite à outils «JGroups», elle permet une distribution décentralisée des taches dans un nœud de serveurs. Cette méthode a comme principaux avantages la décentralisation des taches, et l assurance qu elle procure que la tache soit exécutée. Cependant, ce système n offre aucune gestion avancée des taches, et aucune programmation dans le temps. siteweb : http://www.jgroups.org/taskdistribution.html Dollar universe d'orsyp S A Un des 2 leaders du marche. Les avantages et inconvénients du produit sont principalement dus à la gestion d une architecture distribuée par des méthodes issues du gros système. Les nouvelles versions sont mieux notees car elles comportent une gestion plus centralisée grace à une interface graphique qui simplifie la gestion et augmente la visiblité du pilotage. Ces améliorations ont été récompensées par l Yphyse Award 2004. siteweb : http://www.orsyp.com/fr/solutions/dollar-universe-pour-le-schedulingdentreprise.html Control-m de BMC Software C'est le 2eme leader du marche. Ce produit est en constante evolution mais qui est principalement oriente vers les grosses entreprises. Un des inconveniants majeurs avec DOLLAR UNIVERSE est le prix. En effet, les licences sont extremement redibitives et peuvent poses problemes aux entreprises.. siteweb : http://www.bmc.com/products/products_services_detail/0,,0_0_0_2,00.html 4 2010 CDC RWM FR EIP-EPITECH
1.3 Notre Solution Remote Workload Manager (RWM) répond à un besoin d organisation et d exécution automatisée de tâches sur un ensemble de serveurs selon un scénario donné. Remote Workload Manager sera réalisé en Perl, afin de faciliter la prise en main et la modification du programme par les administrateurs système, en effet notre solution est Open Source et l'utilisation du Perl est dû à une grande majorité des administrateurs système maitrisant ce langage de programmation. Remote Workload Manager propose une première partie, une version serveur qui aura pour rôle d estimer la charge du serveur et d exécuter de façon programmée les différentes tâches en rendant compte de leur état d exécution et du statut de réalisation du besoin. et d'une seconde partie, une version «manager», qui aura pour rôle la mise en place et la planification centralisée des taches, et l affichage unique des statuts et résultats des tâches en cours via une Interface Homme-Machine ergonomique. 1.4 Fonctionnalités détaillées La solution Remote Workload Manager sera développée en plusieurs versions évolutives. Voici donc toutes les fonctionnalités que nous comptons détailler, classées par versions. 1ere version Pour cette version nous allons : - Déterminer un protocole flexible de communication - Déterminer le format de stockage des listes de machines disponible - Déterminer le format de stockage des listes de machines disponible - Déterminer le format des fichiers de log - Pour l'élaboration du Client il nous faudra : - Gérer les scénarios - Gérer la programmation des tâches - Pour l'élaboration du Serveur, il devra gérer les fonctionnalités suivantes : - Proposer une exécution simple des tâches selon plusieurs scénarios - Présenter un reporting d'erreur complet - Renvoyer correctement ses informations détaillées 5 2010 CDC RWM FR EIP-EPITECH
2eme version Notre deuxième version rajoutera des fonctionnalités aux parties déjà existantes et sera une version finalisée du back-office, elle proposera essentiellement comme nouvelle fonctionnalité une synchronisation du temps entre les différentes machines de notre programme afin de pouvoir planifier et programmer des taches dans le temps et dans la durée. - Pour la partie cliente: - Nous proposerons une version plus détaillée de la programmation des taches, essentiellement grâce à cette gestion du temps. - Coté serveur: - Ce sera une gestion complète de la programmation qui sera développée toujours grace à cette nouvelle fonctionnalité. 3eme version Pour cette version nous comptons implémenter une interface graphique, à cette application afin qu'elle soit accessible à un plus grand nombre d'utilisateurs. Une fois la dernière version mise en place, Remote Workload Manager sera équipé des différentes fonctionnalités listées ci dessous. Fonctionnalités communes Ces fonctions serviront à la communication entre les différentes entités de notre solution elle gèrent essentiellement La définition et l'utilisation d'un protocole / Log unifiés La synchronisation date/heure à intervalle régulier: - La synchronisation des taches par rapport au manager ( création d'un timestamp spécifique au manager qui sera transmis aux serveurs pour synchronisation ) 6 2010 CDC RWM FR EIP-EPITECH
Fonctionnalités client / manager Concernant les postes clients et le manager de notre structure, ils proposeront: Une gestion par le manager de la liste des serveurs sur lesquels il faudra exécuter les taches. Une gestion de la liste des taches. L'utilisateur pourra choisir l'exécution pour chaque tache: - À exécuter sur le premier serveur disponible - À exécuter sur le serveur le moins chargé - À exécuter sur un ou plusieurs serveurs spécifiques - À exécuter sur tous les serveurs - À exécuteur sur le maximum de serveurs possible Il pourra choisir le nombre d'exécutions des taches: - Une seul fois - N fois - En boucle Nous proposerons aussi une programmation des taches dans le temps ( timestamps ) avec la possibilité de paramétrer : - Le début de l'exécution ( facultatif : sinon début immédiat ) - Le laps de temps entre les exécutions si N fois ou en boucle ( facultatif sinon immédiat apres l'exécution précédente ) - La fin de l'exécution si en boucle ( facultatif sinon indéterminée ) Nous proposerons une interface graphique conviviale, afin que ce produit soit accessible à tout utilisateur. 7 2010 CDC RWM FR EIP-EPITECH
Fonctionnalités serveurs Coté serveur nous auront implémenté: Un affichage détaillé de ses informations par le serveur avec par exemple: Sa version du serveur Son OS hôte Sa charge courante Un reporting de l'état des taches en cours Une gestion complète d'exécution des taches Un report sur une sortie erreur du détail de l'exécution, par exemple: - Si nous avons un fichier manquant - Si l'utilisateur n'a pas les droits sur un fichier ou un répertoire. - Sur une erreur d'exécution de la part du serveur. Une gestion de la programmation dans le temps 1.5 Choix technologique Le langage de programmation utilisé pour le projet RWM est le Perl et une version GTK/Web pour l'interface graphique, ce choix se justifie par l'utilisation du langage Perl par les administrateur systèmes. 3. Organisation Pour que tous les membres de l équipe puissent travailler de façon efficace, une infrastructure doit être mise en place. Celle-ci passe par la gestion des membres de l'équipe, le respect d'une méthodologie de réalisation, l'instauration d'un planning à respecter, le choix judicieux de ressources techniques et une communication parfaite entre les intervenants du projet. Afin de faire face à notre contrainte qui est que nous avons tous d'autres projets et travail en dehors de l'eip, nous organisons des séances de travail en groupe durant la semaine et le weekend afin de mieux suivre la progression du développement du projet et résoudre les difficulté que chacun peut avoir individuellement en groupe. 8 2010 CDC RWM FR EIP-EPITECH
3.1 L'équipe Notre équipe se décompose de la manière suivante: Chef de projet: - Jacky Rouquette Équipe de développement: - Jonathan Bouchot - Johan Massin - Yannick Boillon - Regis Rouyard Cette organisation est celle qui a été élaborée lors de notre réunion postprésentation. Nous comptons tout de même chacun prendre part à toutes les parties du projet afin d avoir une vue globale de l application en plus de nos parties spécifiques. 3.2 Méthodologie La méthodologie est représenté par le diagramme de Gantt ci dessous. Le découpage est effectuées en quatre grand partie distingué, développement, soutenance, documentation et communication. Nous organisons des temps de travail en groupe afin de mieux respecter nos délais et la qualité des taches à réaliser. 9 2010 CDC RWM FR EIP-EPITECH
10 2010 CDC RWM FR EIP-EPITECH
3.4 ressources techniques Les ressources techniques se distingue en 2 parties, première partie les ressources utilisées dans l'enceinte d'epitech: équipé d'ordinateur dual core à 3Ghz et de mémoire de 4Go de RAM ainsi que rackable, la deuxième partie des ressources utilisé sont nos ordinateurs personnels, ordinateur de bureau ou portable, le développement se fait sous les systèmes d'exploitation Ubuntu 8.10 et Windows XP SP3 Pour les tests, nous allons utiliser des serveurs personnels tournants sur différents version Linux, Ubuntu server, zenwalk server, debian et window serveur 2003, 3.5. Communication La communication au sein du groupe RWM s'établit soit par les outils informatique: Création d'un groupe RWM sur Google groups afin de partager nos travaux, une page d'accueil organisé nous sert de récapitulatif pour les dates importantes (soutenances, suivies, réunions etc..), l'organisation du travail, les rôles de chaque membre de l'équipe, la répartition des tâches à faire, et l'avancement du projet. Nous communiquons par Gtalk comme messagerie instantanée et Gmail pour messagerie email, en effet, l'utilisation d'un outil unique pour l'ensemble des membres du projet nous permet d'être plus facilement présent et joignable sans avoir à utiliser plusieurs solutions de communication différents. Pour finir, nous allons créer un FAQ en ligne et un wiki sur le site Wikipedia concernant le projet RWM, le tout sera centralisé sur un futur site internet pour répondre au mieux aux besoins des futurs utilisateurs. Concernant la communication interne, nous organisons des réunions et des périodes de travail en groupe hebdomadaires afin d'avoir un meilleur suivi de l'évolution du projet et d'être plus efficace lors du développement du projet. 11 2010 CDC RWM FR EIP-EPITECH
3.6. Procédures de test Test des fonction communes Protocole / Log unifiés Synchronisation date/heure à intervalle régulier: Synchronisation des taches par rapport au manager ( création d'un timestamp spécifique au manager qui sera transmis aux serveurs pour synchronisation ) Test des fonction client / manager Gestion des listes de serveurs Gestion des listes des taches Choisir l'exécution pour chaque tache: A exécuter sur le premier serveur disponible A exécuter sur le serveur le moins chargé A exécuter sur un ou plusieurs serveurs spécifiques A exécuter sur tous les serveurs A exécuteur sur le maximum de serveurs possible Choisir le nombre d'exécutions Une seul fois N fois En boucle Programmation des taches dans le temps ( timestamps ) Début de l'exécution ( facultatif : sinon début immédiat ) Laps de temps entre les exécutions si N fois ou en boucle ( facultatif sinon immédiat apres l'exécution précédente ) Fin de l'exécution si en boucle ( facultatif sinon indéterminée ) interface graphique conviviale 12 2010 CDC RWM FR EIP-EPITECH
Test des fonctions serveurs informations Version du serveur OS hôte charge courante ( voir LBNamed ) Reporting de l'état des taches en cours Exécution des taches Report sur une sortie erreur du détail de l'exécution Fichier manquant Droits manquant Erreur d'exécution.. ( A déterminer, au maximum ) Gestion de la programmation dans le temps 13 2010 CDC RWM FR EIP-EPITECH