Documentation technique



Documents pareils
Cahier des Charges. Destinataires : Direction EIP Nom du fichier : 2011_CDC2_FR_Symbiosys.odt

Joomla! Création et administration d'un site web - Version numérique

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Introduction MOSS 2007

Performance, rendement Vs Evolutivité

Drupal (V7) : principes et petite expérience

Drupal, pour quel usage? Comment se positionne Drupal? Les fonctionnalités de Drupal et de son écosystème. L'architecture technique et logicielle Le

Savoir- Faire Offres mé1ers Offres technologiques

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

TAGREROUT Seyf Allah TMRIM

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Sage CRM. 7.2 Guide de Portail Client

PHP 5.4 Développez un site web dynamique et interactif

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Choisir la solution d hébergement et de support faite pour vous

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

Architectures en couches pour applications web Rappel : Architecture en couches

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Devenez un véritable développeur web en 3 mois!

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

Les Content Delivery Network (CDN)

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Fiche Technique Windows Azure

les techniques d'extraction, les formulaires et intégration dans un site WEB

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Alfstore workflow framework Spécification technique

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Sommaire. 1. Présentation de WordPress. 2. Hébergement et installation. 3. Prise en main, ajouter des contenus

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

COMMENT METTRE A JOUR SON SITE WEB?

FreeNAS Shere. Par THOREZ Nicolas

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Le cloud computing au service des applications cartographiques à haute disponibilité

N SIRET : N

Projet en nouvelles technologies de l information et de la communication

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

TP PLACO. Journées Mathrice d'amiens Mars 2010

WordPress : principes et fonctionnement

Serveur de travail collaboratif Michaël Hoste -

Découvrir Drupal, le CMS Open Source de référence. Michel-Marie MAUDET Linagora /

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Projet de Java Enterprise Edition

Webmaster / Webdesigner / Wordpress

Un serveur web léger et ouvert

Tour d horizon des CMS. Content Management System

CAHIER DE S CHARGE S Remote Workload Manager

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

molis result portal Description fonctionnelle La structure système Configuration système requise Architecture du système

Marché à Procédure adaptée. Tierce maintenance applicative pour le portail web

Maxpho Web Services. Maxpho Cloud Services. Date: 20 Septembre 2013 Version: 1.2 Auteur: Maxpho Ltd

Présentation Alfresco

Loïc Rossignol Ingénieur Consultant

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Le meilleur de l'open source dans votre cyber cafe

Créer et partager des fichiers

Panorama des CMS open sources. Sylvain Ferrand, CMAP École Polytechnique Journées Mathrice, Poitiers, 19 mars 2008

Cours: Administration d'une Base de Données

SARL «Alfa Concept», au capital de 3 000, immatriculée au RCS de Montpellier sous le n B

Point sur les solutions de développement d apps pour les périphériques mobiles

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

MODULES 3D TAG CLOUD. Par GENIUS AOM

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Nos services* Avis clients.

Artica. La déduplication. Révision Du 08 Février 2011 version

Refonte front-office / back-office - Architecture & Conception -

TYPO3, le CMS de référence

Nouveautés joomla 3 1/14

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Administration du site (Back Office)

Offres de stages 2011/2012

Création de formulaires interactifs

SUPPORT DE COURS / PHP PARTIE 3

BIND : installer un serveur DNS

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Cloud public d Ikoula Documentation de prise en main 2.0

Banque de données d offres & carte web interactive d offres

2 Formation utilisateur

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

PHP et LeMonde.fr : passé, présent et avenir Olivier Grange-Labat <grange@lemonde.fr>

SYSTÈMES D INFORMATIONS

1 JBoss Entreprise Middleware

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Web & Libre. Outils pour être présent sur le net librement

Découvrir le CMS. et l utiliser dans une approche pro!

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Transcription:

Documentation technique

Documentation technique Destinataires : Direction EIP Nom du fichier : 2011_TD1_FR_Symbiosys.odt Promotion : 2011 (Epitech 5) Date de création : 10.04.2009 Chef de groupe : Manfred Touron Date de dernière modification : 19.01.2011 Membres du groupe : Vincent Auclair Romain Bienvault Gaëtan Ciquie Alexandra Grasland Joël Randrianandrasana Version : 2.0 Langue : Français Historique du document Numéro de Version Date Modifications 1.0 10.04.2010 - Première mise en page et plan 1.1 13.04.2010 - Ajout des schémas 1.2 15.04.2010 - Ajout des explications 1.3 12.05.2010 - Passage de la documentation sur eip.symbiosys.biz 1.4 13.05.2010 - Refonte du plan 1.5 14.05.2010 - Ajout de la page de garde - Mise à jour du contenu - Ajout des diagrammes 1.6 14.07.2010 - Ajout des modules réalisés avec les screenshots associés 2.0 19.01.2011 - Mise à jour de l'avancement du développement des modules - Ajout d'illustrations pour les sections 2 et 3 2011_TD1_FR_Symbiosys.odt 2/15

Les EIP à Epitech Résumé Durant leurs deux dernières années d'études, les étudiants de l'epitech doivent réaliser en groupe un projet innovateur. Les étudiants sont encadrés dans toutes les étapes de leur EIP (Epitech innovative Project) par un laboratoire dédié, le Lab EIP. Le projet Symbiosys Symbiosys est une plateforme de création de sites internet orientée métiers. Ce service est dédié aux professionnels souhaitant se composer un site internet sur-mesure à moindre coût. Le projet prend en charge la réservation du nom de domaine, l'hébergement et le référencement. De plus, il fournit à l'utilisateur tous les outils nécessaires à la gestion du site, en toute autonomie. Documentation technique Ce document décrit tous les aspects techniques du projet Symbiosys. De l'architecture choisie au langage de programmation utilisé, tous les choix techniques sont expliqués et justifiés. Des schémas d'architecture viennent compléter l'ensemble, afin de fournir à un éventuel développeur toutes les informations nécéssaires à la reprise du projet. 2011_TD1_FR_Symbiosys.odt 3/15

Table des matières Historique du document...2 Résumé...3 1 Introduction à la documentation technique...5 2 Les technologies utilisées...5 2.1 Linux...5 2.2 Nginx...5 2.3 MySQL...5 2.4 Drupal...6 3 Diagramme applicatif...8 4 Organisation des modules...9 5 Organisation des données et conception...11 6 Modules réalisés...12 1 Module de geolocalisation : Feed2map...13 2 Module d'édition de contenu : Wysiwyg...14 3 Symbiosys manager...15 4 Symbiosys Site...15 2011_TD1_FR_Symbiosys.odt 4/15

1 Introduction à la documentation technique Ce document décrit le fonctionnement technique du projet Symbiosys. Notre solution utilise une base web classique. Elle est composée d un système d exploitation, un serveur HTTP et un serveur SQL. Symbiosys fonctionne avec toutes les combinaisons d OS, serveurs HTTP et serveurs SQL. Nous ne vendons pas la solution mais seulement un service, nous allons décrire ici les choix d applications utilisées pour la platforme de service. Nous utilisons Linux comme système d exploitation, Nginx comme serveur HTTP et MySQL comme serveur SQL. Dans ce document nous allons tout d abord expliquer la configuration des machines, puis nous expliquerons Drupal, les modules que nous utilisons et enfin le code que nous avons dû écrire. 2 Les technologies utilisées 2.1 Linux Nous utilisons Ubuntu server comme système d exploitation pour sa stabilité et sa réactivité pour corriger les failles de sécurité. Le but de notre architecture est de pouvoir rajouter une machine dans le cluster, puis lui assigner un mode afin qu elle soit automatiquement prise en compte. Pour cela, nous avons un dump général qui contient le code source déployé et une partition en NFS pour accéder aux données importées par les utilisateurs. Une fois la machine installée, nous choisissons si celle-ci est un serveur HTTP statique (pour les images, css, éléments précompressés), un esclave MySQL ou un cluster PHP. 2.2 Nginx Nginx est un serveur HTTP léger, rapide et sécurisé. Il est très facile de configurer Nginx pour qu il fonctionne en mode cluster. Il y a deux types de serveur Nginx dans notre plateforme. Le premier type de serveur sert exclusivement aux contenus statiques pour améliorer les performances. L'autre type sert toutes les pages dynamiques en php. Celles-ci sont exécutées dans des processus FastCGI. Une liste de serveurs FastCGI est lancée et les serveurs Nginx les utilise en repartissant la charge. Le bytecode PHP est mis en cache pour accélérer les performances. 2.3 MySQL Nous utilisons un cluster MySQL pour la plateforme. Celui-ci est composée d un proxy, d un master et d esclaves. Toutes les requêtes passent par le proxy qui distribue les requêtes d'écriture vers le master et réparti le reste vers les esclaves. 2011_TD1_FR_Symbiosys.odt 5/15

2.4 Drupal Nous utilisons la version de drupal 6 qui à l écriture de cette documentation était la 6.20. Voulant conserver tous les avantages de drupal, nous n avons pas effectué une seule modification dans le coeur ou les modules de ce dernier. Nous avons cependant ajouter une vingtaine de modules d extensions dont les views et CCK. Grâce à ceci nous pouvons mettre à jour le CMS rapidement et facilement. La communauté drupal est très active et développe beaucoup de modules. Ceux-ci sont souvent mis à disposition sur le site de drupal. L'utilisations de modules déjà développés nous permet de nous concentrer sur des développements internes. Ayant déjà une grande expérience de développement avec drupal, nous connaissons déjà une grande partie des modules que l on peut utiliser pour accélérer le déploiement de nos services. Nous avons donc créé une interface d administration pour la plateforme. Nous pouvons administrer tous les sites ainsi qu en créer des nouveaux depuis cette interface. Nous nous somme inspiré de la manière dont OVH fonctionne. Un site peut avoir jusqu'à trois contact. Un propriétaire, un débiteur et un administrateur. Un site peut aussi avoir plusieurs adresses DNS et avoir diverses méthodes de facturation. Cette interface ne sera pas exposée aux clients, elle est destinée aux administrateurs de la plateforme. Pour chaque nouveau corps-de-métier que nous proposons, nous devons développer un portail, qui servira d'annuaire vers les sites des clients, proposera une démonstration à un utilisateur et lui proposera de s'inscrire au service. Un site «démo» sera accessible pour tout le monde avec certaines fonctionnalités désactivées (comme le changement de mot de passe) et contiendra des données fictives d'exemple. Le site sera netoyé régulièrement et netoyable à la demande. 2011_TD1_FR_Symbiosys.odt 6/15

Un site de développement sera utile au groupe de l'eip pour tester les modifications sans risque. Un hook sur le SVN nous permettra de mettre à jour le code du site au moment du commit. Un module nous permettra de générer du contenu aléatoire en grande quantité et pouvoir tester facilement nos modules. Toujours pour les développeurs, un site de test sera crée à la demande et permettra de lancer une série de tests unitaires afin de s'assurer que les fonctionnalités ne soient pas corrompues par des modifications. Une documentation est géneré à partir des commentaires dans le code source. Cela permet d'automatiser la maintenance de celle ci et de simplifier sa créations car nous sommes plusieurs développeur à travailler simultannément dessus. Le site «cdn» contient tous les fichiers statiques. Il est optimisé pour délivrer rapidement les fichiers (peu d'accès disques) et peut compresser les fichiers si le navigateur supporte la compression. Le site «manager» est un panel d'administration réservé au clients, dans lequel ils pourront payer les services, commander des noms de domaine, voir le détail des factures, communiquer avec l'assistance technique et d'autre utilisateurs. Drupal nous permet de facilement administrer le multi-site et de n'avoir en tout et pour tout que deux sources de Drupal installées. L'une d'entre elles sera reservé pour le site de gestio, des tests ainsi que les profils de développement. L'autre, plus stable, sera utilisé pour tous les sites en production. Grâce à cette infrastructur, nous pouvons tester des mo0difications uniquement sur ce qui est en developpement sans que cela impact les services en productions. 2011_TD1_FR_Symbiosys.odt 7/15

3 Diagramme applicatif 2011_TD1_FR_Symbiosys.odt 8/15

4 Organisation des modules 2011_TD1_FR_Symbiosys.odt 9/15

Jaune: modules déjà existants Violet: modules à développer C.A.S.O (Central Admin Sign-On): Permet de s'identifier en tant qu'administrateur sur un site client depuis le site d'administration. Payment: Communication avec les API de paiement externes. Community: Module principal de communication entre les clients et le staff; possibilité de poser une question et la rendre publique, proposer un sondage, etc. Config: Module dashboard qui permet de configurer un site. Dev: Permet de générer du contenu, afficher des informations de debug, la gestion des tickets. Services symbiosys: Web-services spécifiques au moteur et accessible depuis des widgets. Update: Mise-à-jour des sites de façon transparente et répartition de la charge. Monitoring: Contient des routines ainsi que des tests qui permettent de tester l'intégrité d'un site web et prévenir les adminsitrateurs et utilisatuers dans le cas contraire. Statistics: Permet de centraliser et d'accéder aux statistiques d'utilisation des sites. Deployment: Création d'un nouveau site en quelques secondes: création du fichier de configuration sur le NFS, création de la base de donnée, dump du site. Possibilité de «dump» un site: copie d'un dump de base et appel des procédures qui vont permettre de créer le contenu de base non statique (contenu dépendant de la date du jour ou du nom de client). Demo: Génération de contenu aléatoire et possibilité de créer un dump de la démonstration en cours pour s'en servir et créer un nouveau site identique à la version de démonstration. 2011_TD1_FR_Symbiosys.odt 10/15

5 Organisation des données et conception Nous avons jugé qu'il n'était pas intéressant de présenter la définition des tables MySQL du projet pour deux raisons: la première est que Drupal utilise 50 tables juste pour le cœur et les modules principaux; la deuxième est que Drupal est un Framework MVC et a sa propre définition de type de contenu qui n'est ni une classe, ni une table SQL, mais une définition de type de contenu et plusieurs tables SQL qui dépendent du type de champs qui définissent le type de contenu. En règle générale, nous ferons très peu de requêtes SQL à la main, mais quand nous le ferons, ce sera via la couche d'abstraction de Drupal (http://api.drupal.org/api/group/database/6) qui permet de faire des requêtes sécurisées, optimisées et compatibles avec beaucoup de systèmes de gestion de base de données. La définition des types de données se fait grâce aux CCK (Content Creation Kit) qui permet de définir chaque champs que comporte un type de contenu ainsi que ses attributs. Un champ peut être un entier, un réel, une url, une relation vers un autre contenu ou vers un utilisateur, une image, une pièce jointe, une date, un Google Map, Et chacun de ces champs peut être limité aux niveau des données, être obligatoire ou facultatif, avoir plusieurs valeurs,... Les fichiers seront organisés par «namespace» ainsi, les fichiers de cache javascript seront placés dans le sous dossier <type-de-site>/<nom-du-client>/files/js/<le-fichier>.js sur le serveur NFS. Nous utiliserons memcache pour mettre en cache des données souvent utilisées identifiées par une clé (Memcache fonctionne sur le principe une base de donnée contenant simplement une paire clé/valeur). Nous utiliserons beaucoup le cache pour les parties où nous pouvons déterminer les actions qui les modifient. Exemple: nous pourrons mettre en cache le listing des utilisateurs; si un utilisateur modifie son compte ou une nouvelle inscription est faite, le cache est supprimé et donc régénéré au prochain besoin. Ici aussi nous utilisons un système de «namespace» pour trier les clés: pour le cache du listing des utilisateurs vu par un utilisateur connecté avec une langue en anglais, la clé sera 'userslist:connected:en'. Nous pourrons ensuite supprimé le cache ayant exactement cette clé, mais aussi tous les caches commençant par 'users-list:'. 2011_TD1_FR_Symbiosys.odt 11/15

6 Modules réalisés Nous avons développé divers modules drupal pour pouvoir administrer tous les sites facilement. Les processus de traitement par lot ont étés mis en place et sont utilisés pour pouvoir exécuter diverses tâches simultanément sur une partie des sites ou tous. Cette partie est cruciale pour permettre de gérer des milliers de sites à la fois. Nous avons créé plusieurs types de contenus Demo: Génération de contenu aléatoire et possibilité de créer un dump de la démonstration en cours pour s'en servir et créer un nouveau site identique à la version de démonstration.ontenu permettant de stocker les informations relatives aux sites. Nous avons une relation entre les domaines ainsi que le type de site. Le formulaire de création de site a été réalisé. Nous sommes en mesure de sauvegarder et de restaurer des sites à partir de l interface web ainsi qu en tâches régulières (cron). Il est important de ne pas décourager les futurs clients. C est pour cela que nous demandons le minimum d informations lors de la création d un site. Si le client est satisfait, il pourra renseigner diverses informations supplémentaires et ainsi finaliser son site. 2011_TD1_FR_Symbiosys.odt 12/15

1 Module de geolocalisation : Feed2map Ce module permet d'aggréger du contenu géolocalisé et de le localiser sur une carte interactive. Ce module est compatible : Google maps Terminaux mobiles Twitter 2011_TD1_FR_Symbiosys.odt 13/15

2 Module d'édition de contenu : Wysiwyg Wysiwyg signifie «What you see is what you get», il s'agit d'un éditeur de texte riche. L'utilisateur rédige son contenu et le met en forme directement. Il peut voir immédiatement à quoi la future page web ressemblera. 2011_TD1_FR_Symbiosys.odt 14/15

3 Symbiosys manager Ce module n'est pas encore fini. Il gère : Les clients Les sites : Création Maintenance Evolutions Types de sites Profils utilisateurs Les noms de domaine La facturation 4 Symbiosys Site Ce module n'est pas encore fini. Il est activé sur tous les sites, c'est lui qui s'occupe de l'interface entre le manager et le site. Il gère : les mises à jours l'auto login à partir du manager la gestion des modules activés 2011_TD1_FR_Symbiosys.odt 15/15