Architecture pour l hébergement web à fort trafic

Dimension: px
Commencer à balayer dès la page:

Download "Architecture pour l hébergement web à fort trafic"

Transcription

1 Licence ASRALL Architecture pour l hébergement web à fort trafic Auteurs : François Dupont Gabriel Giroud Aymeric Luc Guillaume Nonet Tuteur : Patrick Nourissier Lundi 23 Mars 2015

2 Remerciements Nous remercions Patrick Nourissier, notre tuteur, pour sa disponibilité, son suivi, son aide et ses encouragements. Nous remercions openssh de nous permettre d optimiser nos horaires de travail. IUT CHARLEMAGNE Page 1 Licence Pro ASRALL

3 Table des matières I Introduction 5 1 Gestion de projet Problématique Nos objectifs Définitions La disponibilité Qu est-ce que la très haute disponibilité? Les architectures en couches Outils La stack logicielle Monitoring Complexification de la stack II Étude 14 4 LXC Particularités Avantages des conteneurs sur les machines virtuelles Configuration de LXC Fonctionnement de LXC HA-Proxy Modes de fonctionnement Prendre la température de sa machine Les algorithmes de répartition Interface d administration Testé et approuvé Collectd Reporting d information avec Collectd Principe du logiciel Exemples de plugins Les points forts de Collectd Installation de Collectd Configuration de Collectd

4 7 Munnin Présentation Fonctionnement Apache Un peu d histoire Aspects techniques Nginx Un serveur asynchrone Modularité Optimisations Nginx et ses extensions Nginx en quelques chiffres La différence entre les types de Nginx Pourquoi Nginx? Joomla Présentation de Joomla Mysql et Percona MySQL Varnish Fonctionnement Face à la concurrence Notre choix Autres Sécurtié Tuning DNS et IP IP DNS III Notre architecture haute disponibilité Nos choix Notre architecture Installation des machines HA Proxy (et LXC) Nginx Percona Autres Conclusion 59 IUT CHARLEMAGNE Page 3 Licence Pro ASRALL

5 IV Annexes Sources/Webographie/Bibliographie Scripts et configurations Script d installation général Script d installation haproxy avec LXC /etc/network/interfaces Ha Proxy Hôte haproxy.cfg dnsmasq.hosts dnsmasq.conf IUT CHARLEMAGNE Page 4 Licence Pro ASRALL

6 Première partie Introduction 5

7 Chapitre 1 Gestion de projet Tout d abord, voici une brève présentation du projet et de nos objectifs. 1.1 Problématique Étudier la mise en place d une architecture permettant l hébergement de sites internet à fort trafic. S il reste du temps, étudier le tuning fin et les règles à mettre en place pour renforcer la sécurité. Ce projet devra être réalisé sur un délai de deux mois. 1.2 Nos objectifs Dans ce projet, nous avions pour objectif d étudier, comprendre, tester et réaliser une architecture haute disponibilité orientée pour des besoins web. En concertation avec notre tuteur de projet, nous avons décidé d expérimenter plusieurs technologies et de choisir celles qui nous paraissaient les meilleures. Pour réaliser nos choix, nous nous sommes basés sur nos tests, les conseils de notre tuteur et la littérature disponible sur le sujet. Dans la mesure du possible, nous avons essayé de réaliser nos installations sur les futurs standards : les versions testing/dev des logiciels. 6

8 Chapitre 2 Définitions Dans cette partie, nous allons essayer d expliquer clairement les notions que nous allons aborder dans le reste du rapport. Cette partie fera également office de description des alternatives à la solution que nous proposons, nous en profiterons également pour faire le bilan de l état de l art actuel dans l industrie. 2.1 La disponibilité Ce mot n est pas présent dans l intitulé de notre sujet, il est pourtant sous-entendu et essentiel. Pouvoir gérer beaucoup de trafic (tenir la charge) ne doit pas être ponctuel. Aujourd hui, un service doit pouvoir être disponible en permanence ou à la demande, d où la nécessité de définir la disponibilité. La disponibilité d un équipement ou d un système est une mesure que l on obtient en divisant la durée durant laquelle l équipement est opérationnel et la durée pendant laquelle on aurait souhaité qu il le soit. Typiquement, on calcule la disponibilité en divisant la durée effective de fonctionnement par la durée totale. Cependant, en fonction du système considéré, toutes les indisponibilités ne sont pas critiques. On peut penser aux arrêts planifiés, qui auront été anticipés et convenus entre client et fournisseur de service et dont l impact est souvent très faible. Ou bien les arrêts se produisant pendant les périodes de faible affluence ( par exemple entre 2h et 4h du matin). On commence à considérer qu un système est très disponible à partir de 99,9% de disponibilité annuelle. Disponibilité en % Indisponibilité annuelle Indisponibilité mensuelle 95% 18,25 jours 36 heures 99,0% 3,65 jours 7,20 heures 99,9% 8,76 heures 43,2 minutes 99,99% 52,56 minutes 4,32 minutes 99,999% 5,26 minutes 25,9 secondes Table 2.1 Table d équivalence de disponibilité 7

9 La formule généralement utilisé pour définir la disponibilité est la suivante : MT BF = MT T R + MT T F disponibilité = MT T F MT BF MTBF pour Mean Time Before Failure, temps moyen avant la panne MTTR pour Mean Time To Repair, temps moyen pour réparer une panne MTTF pour Mean Time To Failure, temps moyen jusqu à la panne (aussi appelé fonctionnement normal) Figure 2.1 Représentation disponibilité Où 0 représente un service indisponible, et 1 le service accessible. 2.2 Qu est-ce que la très haute disponibilité? La haute disponibilité est le principe qui consiste à rendre une application, un site web ou un service le plus disponible possible (en permanence si possible). Cela implique que le service web puisse répondre et se comporter conformément à ce qui est attendu dans un temps convenable, même si le trafic est important. On considère par exemple qu un site web ne doit jamais mettre plus de 3 secondes à répondre à une requête. Évidemment, le ressenti pour l utilisateur sera grandement dépendant de la qualité de sa connexion à un internet, mais il faut rendre notre infrastructure suffisamment véloce pour que la latence induite devienne marginale. En fonction des moyens de l entreprise 1 et de l aspect critique ou non d un service et de la qualité de service que l on souhaite délivrer 2, il est évidemment possible de faire varier la tolérance de l indisponibilité. 1. la disponibilité est pratiquement fonction des moyens investis dedans 2. Il est de notoriété publique que Free ne souhaite pas servir youtube.com de façon convenable, pour des raisons politiques et économiques IUT CHARLEMAGNE Page 8 Licence Pro ASRALL

10 Pour réaliser cela, une infrastructure haute disponibilité doit être dimensionnée, pour pouvoir encaisser un trafic bien supérieur à son trafic nominal 3. L infrastructure doit également être conçue pour être le moins indisponible possible, cela sous-entend ajouter de la redondance partout où cela est nécessaire. Créer une infrastructure que l on puisse mettre à jour sans coupure de service (il n est même pas envisageable de pouvoir penser échapper aux mises à jour 4 ), répartir la charge autant que possible, prévoir la possibilité de passer à l échelle 5... Une infrastructure haute disponibilité nécessite des moyens matériels 6 importants, qui ne sont en pratique possible à mettre en œuvre que chez un hébergeur. Au niveau logiciel la mise en place doit être planifiée, car les technologies utilisées sont pointues et complexes à mettre en œuvre. Leurs configurations sont très liées aux machines sur lesquels elles se trouvent, cela nécessite une automatisation de l installation pour gagner du temps et éviter les erreurs. Dans ce projet nous n avons pas pour objectif de monter une infrastructure capable de résister à une attaque importante de type DDOS. Nous, nous proposerons des pistes pour en réduire la portée et l efficacité de ce genre d attaque notamment avec un firewall, mais pas comment arrêter les attaques les plus sérieuses. Ce qui est à notre connaissance impossible Les architectures en couches L architecture en couche est un terme employé en architecture systèmes et réseaux. Ce terme désigne la forme que prend l implémentation d une architecture (l installation). Il existe plusieurs formes communes d architectures en couche, nous choisirons d en utiliser une plutôt qu une autre en fonction de la complexité ou de l isolation que l on souhaite donner à son infrastructure. De cette architecture découle aussi la scalabilité potentielle de notre architecture. Architecture Monocouche Une architecture monocouche est la plus simple à mettre en œuvre. Toutes nos applications sont disponibles sur un seul et unique serveur. Il n est, dans ce cas-là, pas possible de scalabiliser. En revanche, cette architecture présente de véritables avantages. Bien sûr, cela facilite l administration (versions des logiciels, configurations, etc...) car tout est sur la même machine. Il est également plus simple de sécuriser une seule machine qu un cluster de machines. Moins un système est complexe, moins il y aura de risques de problèmes. De ce point de vue, l architecture monocouche est optimale. Cette architecture est souvent préférée par les très petites entreprises, les amateurs et, plus globalement, les personnes disposant de peu de moyens. Rien n empêche, dans une architecture monocouche, d effectuer de la réplication de serveurs avec par exemple un DRBD et de s en servir de failover. 3. Dans notre rapport il ne sera pas question de résister à un DDOS sérieux, juste à un trafic inhabituellement élevé 4. il semble que de nombreuses banques ne possèdent pas vraiment d infrastructure haute disponibilité 5. scalabiliser 6. abordé de manière très parcellaire dans ce rapport, la description exhaustive d une infrastructure matérielle dépasse le cadre de notre étude 7. blackholing BGP en dernier recours IUT CHARLEMAGNE Page 9 Licence Pro ASRALL

11 Architecture à deux couches Figure 2.2 Architecture à deux couches Dans tout logiciel un peu complexe, on peut différencier plusieurs couches, une couche de présentation, une couche logique et enfin une couche données. Cela rappellera aux programmeurs le paradigme MVC 8. Dans une architecture à deux couches, nous avons déporté une des couches sur un ou plusieurs autres serveurs. Dans une architecture web, il est souvent facile de séparer chaque couche : la vue est souvent composée du html/js/images la couche logique composée du backend php/perl/ruby/python la couche données composée de la base de données mysql/mongodb/postgresql Séparer les différents composants de notre application permet d être encore plus scalable. Attention cependant, toutes les applications ne sont pas forcément utilisables en mode cluster. Architecture à trois couches Figure 2.3 Architecture à trois couches Dans cette architecture, on répartit une couche par machine/cluster de machines. 8. Modèle Vue Contrôleur IUT CHARLEMAGNE Page 10 Licence Pro ASRALL

12 Architecture multicouche Figure 2.4 Architecture multicouche Cette architecture est une extension de la précédente, mais ici on essaye de séparer encore d avantage les couches. Dans le cas du web ou pourrait par exemple envisager d avoir un cluster responsable uniquement de servir les images du site web SPOF SPOF est un terme anglais Single Point Of Failure signifiant point unique de défaillance. C est un terme courant servant à qualifier une faiblesse dans l architecture. L objectif est toujours d éviter d avoir un SPOF, c est malheureusement rarement possible, et extrêmement coûteux. La remonté du SPOF Il est possible d éliminer un point de défaillance, mais souvent, le problème est le même sur la couche supérieur. Un exemple pour mieux comprendre, pour éviter une indisponibilité je décide de prévenir la panne de disque dur. Je mets en place un système de RAID1 qui préservera l intégrité de mes données et permettra une continuité de service. Cependant ce système se révèlera inopérant si un problème électrique survient, on peut imaginer que mon alimentation (pourtant gold) décide subitement de ne plus fonctionner. On peut anticiper le problème en mettant en place une alimentation redondante. Dans ce cas ci nos précautions actuelles ne pourraient en revanche rien contre une défaillance de la distribution électrique (un arbre qui tombe sur une ligne électrique). Ce problème pourrait être réglé par la mise en place d un onduleur et d un générateur (diesel par exemple). On pourrait évidemment citer l exemple de la pelleteuse qui arrache notre fibre, etc.. la liste est sans fin. Mais on voit bien que plus on remonte la chaîne moins les défaillances sont de notre ressort, certaines grandes entreprises avec des moyens quasiment illimités ont pris les devant en construisant leur propres centrales électriques (google par exemple). D autres problèmes rentrent également en ligne de compte les peerings, une requête BGP malencontreuse, une catastrophe naturelle etc.. La chasse au SPOF a de quoi rendre paranoïaque. À noter que dans notre architecture plusieurs points peuvent être défaillantes comme l alimentation électrique ou bien notre load balancer/reverse proxy, ou même notre DNS. IUT CHARLEMAGNE Page 11 Licence Pro ASRALL

13 Chapitre 3 Outils 3.1 La stack logicielle Une stack logicielle est un terme employé pour désigner un groupe de logiciels qui interagissent ensemble afin de réaliser un objectif. Cet ensemble de logiciels acquière généralement le titre de stack lorsque ce groupe devient un standard utilisé de façon normalisé ou au moins récurrente dans l industrie. On peut par exemple penser à la célèbre stack LAMP : Linux Apache Mysql Php. Cette dernière, bien qu éprouvée et très stable, présente quelques problèmes de performances nous lui avons préféré une stack LHANPP : Linux HAProxy Nginx Percona PHP (Percona Mysql). Il est à noter que, de manière générale, dans une stack, chaque composant ne réalise qu une seule tâche spécifique, bien que le dit composant soit généralement capable de réaliser d autres cas d utilisation. Il semble que dans ce domaine la philosophie UNIX soit toujours observée avec une certaine discipline Load balancing L une des techniques de base pour permettre de la haute disponibilité est d avoir plusieurs serveurs et de répartir la charge sur ces machines. L idéal étant évidement d avoir un nombre de machines suffisant pour permettre de tenir la charge, malgré l indisponibilité de certaines. Figure 3.1 Exemple de représentation d un load balancing 12

14 3.1.2 Reverse Proxy Un serveur proxy sert généralement à un ou plusieurs utilisateurs à aller sur internet, le reverse proxy permet l inverse c est à dire aux clients/utilisateurs venant par exemple d internet d accéder à un service/contenu local Cache Le principe du cache est d enregistrer en mémoire une requête récurrente afin de pouvoir la servir lors d une demande ultérieure sans avoir à recalculer cette requête ou demande. Le cache peut physiquement, s enregistrer sur le disque dur ou bien s enregistrer sur la mémoire RAM. On choisira la meilleur solution en fonction de nos contraintes techniques et de nos besoins. Le cache peut se situer à plusieurs endroits, il est possible de faire un cache HTTP en cas de demandes nombreuses sur une page, on peut également faire du cache de requêtes SQL ou de code php compilé. 3.2 Monitoring Le monitoring est un anglicisme qui désigne la surveillance des serveurs ou des des services avec des outils dédiés. Le monitoring sert à s assurer de la bonne santé de son parc et permet de réagir vite à une panne et même parfois d être pro actif. On peut également utiliser ces outils à des fins statistiques, nous en présenterons quelques uns dans les chapitres à venir. 3.3 Complexification de la stack Nous avons dit ne pas vouloir utiliser la stack LAMP pour cause de manque de performances (et parce que ce n était pas notre sujet). Mais un des problèmes de ne pas utiliser une stack standard est qu elle n est pas aussi éprouvée, qu il y a moins de support et donc généralement plus de problèmes. LAMP est également ce qu on peut appeler une stack simple, un système d exploitation, un serveur web, une base de données, un langage interprété. Plus on ajoute d outils et donc de couches à notre stack plus les choses peuvent se compliquer. Pour avoir quelque chose de maintenable dans le temps il est important de garder un système relativement simple et si possible dont l entièreté est compréhensible par plusieurs personnes (documentation!). Mais comme expliqué précédemment notre objectif est également d améliorer les performances. La difficulté dans ce genre d architecture est de maintenir l équilibre entre une stack suffisamment performante et bleeding edge, et une stack stable et abondamment utilisée. IUT CHARLEMAGNE Page 13 Licence Pro ASRALL

15 Deuxième partie Étude 14

16 Chapitre 4 LXC LXC pour Linux Containers, est un logiciel de virtualisation développé depuis 2008 en C, Python, lua, Go, Ruby et Haskell. LXC est aujourd hui en version et est activement développé principalement par les entreprises Parallels, IBM, Google, et par les développeurs Eric Bierderman, Daniel Lezcano, Serge Hallyn et Stéphane Graber. Ce logiciel est parfois utilisé en tant qu interface pour le logiciel Docker pour pouvoir interagir avec les différents conteneurs sur le système. 4.1 Particularités Pour isoler les différents systèmes d exploitation, LXC utilise les fonctionnalités du kernel Linux introduites dans la version les cgroups. Les machines virtuelles sont des conteneurs isolés du système d exploitation hôte et agissent comme une machine physique. Tous les conteneurs vont utiliser le kernel du système hôte, et donc ne peuvent s agir de distributions utilisant le kernel Linux Cgroups Cgroups ou Control Groups est une fonctionnalité du kernel Linux qui va permettre de limiter l accès aux ressources d un groupes, de prioriser un groupe plutôt qu un autre à accéder aux ressources de la machine, mesurer combien de ressources utilise un groupe et le contrôler en manipulant les processus du groupe (freeze - unfreeze). Le développement de la fonctionnalité cgroups a débuté en 2006 principalement par les ingénieurs de Google, Paul Menage et Rohit Seth sous le nom de process containers. Il a été renommé sous le nom de control groups à cause de la confusion lors de l utilisation du mot conteneur dans le kernel Linux. 4.2 Avantages des conteneurs sur les machines virtuelles Un conteneur ne va utiliser que les ressources qui lui sont nécessaires pour le fonctionnement de ses processus. Une machine virtuelle possède des ressources allouées par défaut et n utilise pas forcément toutes les ressources tout le temps. On va pouvoir contrôler les conteneurs depuis le système hôte : un conteneur dont les services ne sont pas utilisés ne vont pas consommer de ressource jusqu à ce qu on lui demande une 15

17 requête. En revanche, une machine virtuelle, même si ses ressources ne sont pas sollicités, lui sont toujours réservées et ne peuvent pas être réquisitionnées par un autre service qui aurait besoin de ces ressources. 4.3 Configuration de LXC Sur Debian Jessie (8), l installation se réalise par la commande apt-get install lxc. LXC ne peut s utiliser par défaut que par l utilisateur root. Les dossiers des conteneurs se trouvent dans /var/lib/lxc. Un lxc-ls affichera également le contenu du dossier, n affichant que les conteneurs. Pour installer un nouveau conteneur, on va utiliser un template stocké dans /usr/share/lxc/templates. Les templates vont nous permettre d installer la distribution de notre choix parmi celles disponibles. Figure 4.1 Liste des templates disponibles par défaut Il ne s agit pas du seul moyen d installer un nouveau conteneur. Il existe des conteneurs disponibles par exemple sur le site http ://www.flockport.com qui nous propose des conteneurs avec des services pré-installés directement prêt à l emploi. Les templates vont se charger de télécharger les paquets nécessaires s ils n ont pas déjà été téléchargés sur le système. Dans le cas où l on veut faire une modification sur le template utilisé, il faudra supprimer le cache du template afin de récupérer le nouveau. Par défaut, de nombreux outils et services sont manquants dans le template que nous utilisons. Par exemple notre container ne dispose d aucun éditeur de texte. Pour ajouter un paquet à installer par défaut dans notre template, nous allons éditer le fichier correspondant au template que nous voulons installer. Dans la rubrique packages de notre template, on va pouvoir ajouter tous les outils que nous voulons installer par défaut sur nos conteneurs via ce template. Une fois le fichier modifié, nous allons devoir regénérer le rootfs de notre conteneur avec le nouveau template (cette opération est à réaliser si vous avez déjà utilisé le template du même nom sur le système). Pour supprimer le rootfs de notre template, nous allons supprimer le contenu du dossier /var/cache/lxc/. Dans notre cas, nous n utilisons qu un seul template, donc la suppression de l intégralité du contenu du dossier n est pas un problème. Dans le cas où nous aurions plusieurs template, on spécifiera le nom du template pour regénérer uniquement ce qui nous intéresse. Lorsque le conteneur est créé, nous pourrons accéder à son fichier de configuration via le chemin /var/lib/lxc/nomconteneur/config IUT CHARLEMAGNE Page 16 Licence Pro ASRALL

18 4.3.1 Flockport Figure 4.2 Fichier de configuration d un conteneur Flockport est un site communautaire qui propose librement des conteneurs prêt à l emploi. Il suffit de télécharger le conteneur, décompresser l archive sur le système hôte et de lancer le conteneur via la commande lxc-start -n conteneur. Remarque : pour des raisons de sécurité évidentes, un soin tout particulier doit être porté aux configurations des templates téléchargés sur internet. 4.4 Fonctionnement de LXC LXC nous propose plusieurs commandes afin d intéragir avec le logiciel : lxc-create : Création d un conteneur, on va spécifier le nom et la distribution à installer. lxc-start : Démarrage d un conteneur. Par défaut la commande nous lie automatiquement à la console où nous exécutons la commande. Pour ne pas lier le terminal au conteneur, on utilise l argument -d (pour dispatch). lxc-console : cette commande va nous permettre de lier notre terminal à un conteneur. Pour délierle terminal, on utilisera la combinaison de touches Ctrl+A Q pour revenir au système hôte. lxc-stop : envoi du signal d extinction à un conteneur. lxc-destroy : suppression d un conteneur sur le système. lxc-info : permet d obtenir les informations d un conteneur (adresse IP, nom...). lxc-freeze : geler tous les processus d un conteneur, libérant toutes les ressources qu il utilise. lxc-unfreeze : dégeler les processus d un conteneur. lxc-checkconfig : cette commande va vérifier que toutes les fonctionnalités sont activées sur le système hôte pour utiliser pleinement LXC. IUT CHARLEMAGNE Page 17 Licence Pro ASRALL

19 lxc-ls : affichage de tous les conteneurs bootables sur le système. lxc-clone : cloner l intégralité d un conteneur. Pour créer un conteneur, on va utiliser la commande lxc-create avec les arguments -t pour choisir la distribution à installer sur le conteneur et -n pour choisir le nom du conteneur. Une fois le template exécuté, on va pouvoir lancer le conteneur avec la commande lxc-start avec les arguments -d pour dispatch, c est à dire que le conteneur ne sera pas lié à la console avec laquelle on démarre notre conteneur, et -n pour spécifier le nom du conteneur que l on veut démarrer. Pour se connecter au conteneur, on va utiliser la commande lxc-console avec l argument -n pour spécifier le nom. Pour revenir au système hôte lorsque que l on s est connecté au conteneur via lxc-console, on utilisera la combinaison de touches Ctrl+A Q. Pour arrêter un conteneur depuis le système hôte on utilisera la commande lxc-stop avec -n pour le nom. Pour supprimer un conteneur on utilisera la commande lxc-destroy -n. Dans le cas où le système où le service LXC fonctionne vient à redémarrer, aucun conteneur ne se redémarre par défaut. Dans le cadre de notre projet, il est impératif de redémarrer le conteneur hébergeant notre service HAProxy. Pour indiquer à LXC de démarrer certains conteneurs lors du démarrage du service, on va ajouter cette ligne dans le fichier de configuration du conteneur : lxc.start.auto = Configurations des conteneurs Une fois connecté via la commande lxc-console dans le conteneur, on va pouvoir interagir directement avec celui-ci via la ligne de commande normale. Pour débuter, on va mettre à jour notre conteneur avant d installer des nouveaux paquets via la commande aptitude update. Notre conteneur étant à jour on va pouvoir commencer à installer les services dont nous avons besoin pour notre projet selon le rôle donné à notre conteneur. IUT CHARLEMAGNE Page 18 Licence Pro ASRALL

20 Chapitre 5 HA-Proxy HAProxy pour High Availabitlity Proxy, est un reverse proxy développé depuis les années 2000 en C "événementiel". Son auteur est le français Willy Tarreau également développeur du noyau Linux. HAProxy est réputé extrêmement stable, c est une qualité très appréciable pour un logiciel de production, ça l est d autant plus lorsque le dit logiciel est votre tête de pont. Celui qui est potentiellement visible et coûteux de mettre à jour, dans la mesure où cela est simplement envisageable. Ce logiciel est actuellement en version et toujours activement développé. La principale utilité d un reverse proxy est évidemment de faire office de load balancer. Dans ce domaine les performances de HAProxy font références tant par leurs résultats impressionnants, que la modestie du matériel nécessaire pour les obtenir 1. C est donc logique qu il soit abondamment utilisé par les grands consommateurs de bande passante que sont les géants du web Modes de fonctionnement HAProxy dispose de deux modes de fonctionnement, un mode fonctionnant sur la couche 4 du modèle OSI, la couche transport, agissant donc au niveau du protocole TCP. Et un mode fonctionnant au niveau applicatif sur la couche 7 du modèle OSI, sur le protocole HTTP. Comme on peut s en douter, gérer le trafic au niveau TCP est bien moins coûteux en temps processeur que de le faire au niveau HTTP. Une estimation grossière envisage à environ 50% le coût de l overhead, ce qui est relativement acceptable. De plus, utiliser HAProxy en mode TCP pourrait poser des problèmes de traduction d adresse IP. Mais ces problèmes ont été résolu de façon élégante par les ingénieurs développant HAProxy 3. L utilisation du mode TCP nous permet également d éviter des soucis de sécurité et de répartition de charge avec les sessions SSL/TLS. Nous avons parlé auparavant de l overhead de HTTP qui est loin d être négligeable en cas de fort trafic. Il parait donc logique de faire les choses bien, dès le début et d utiliser le mode TCP. Mais un lecteur éclairé s interrogera cependant sur le comportement de certaines applications qui ont besoin de communiquer directement, avec leurs clients. Ce problème, classique aux infrastructures disposant de proxys, a été résolu depuis longtemps par l introduction d un en-tête dans le protocole HTTP "X-Forwarded-For". 1. Saturer un lien 10Gbps avec < 20% d utilisation d un CPU de bureau, AVEC jumbo frames 2. Reddit, Twitter, GitHub etc création d un protocole spécifique, nous en parlerons juste après 19

21 Catastrophe, pensez vous? Et bien non. HAProxy a mis en place son propre protocole, originalement nommé PROXY protocol. Ce dernier ajoute une "adresse distante" aux paquets TCP adressé à une machine. Cependant, pour être utilisé, il faut que PROXY protocol soit supporté par le serveur HTTP, c est heureusement le cas de Nginx, de plus cela se configure assez aisément, ce sera expliqué plus bas. Il n y a donc pas de raison de ce coté-ci de ne pas gagner des performances en utilisant le mode TCP. Figure 5.1 Fonctionnement avec mode TCP Deuxièmement, il y a le problème des sessions SSL/TLS. De nos jours, il est extrêmement rare de pouvoir se passer de négociation SSL/TLS. Elles sont indispensables à la confidentialité des échanges sur internet, que ce soit pour protéger les conversations, les mots de passe, ou bien les transactions. Si on utilisait un reverse proxy de niveau 7 il faudrait que toutes les négociations SSL 4 soient gérer en un même point (techniquement pas forcément, on peut et on doit avoir plusieurs reverse proxy de front, notion expliquée auparavant). La machine finira fatalement par être surchargée, alors qu on peut faire participer toutes les machines du cluster à l effort. De plus, cela devrait poser un problème majeur de confidentialité et de sécurité aux clients/utilisateurs soucieux de leur vie privée/secrets industriels. En effet, si la négociation SSL se termine à la porte du/des proxy, cela signifie que tout ce qui se passe derrière se passe en clair. Cela permet à une personne mal intentionnée dans l entreprise d espionner les trafics des clients. Dans le cas où un intrus aurait réussi à pénétrer notre infrastructure il lui suffirait d espionner le trafic à la sortie du reverse proxy, en utilisant par exemple wireshark ou autres. 4. nous dirons SSL pour toutes mentions faites de SSL/TLS, sauf indication contraire IUT CHARLEMAGNE Page 20 Licence Pro ASRALL

22 Figure 5.2 Fonctionnement avec mode HTTP En résumé, nous n avons pas de raison d utiliser autre chose que le reverse proxy de niveau 4 de HAProxy. Cependant, cette configuration est légèrement plus compliqué à faire fonctionner et les professionnels sont souvent regardant lorsqu il s agit de mettre la main au portefeuille pour acheter un nouveau certificat SSL tous les ans. Le mode TCP n est donc pas nécessairement la méthode choisie dans l industrie. 5.2 Prendre la température de sa machine Pour savoir comment répartir la charge, avant même de parler d algorithme de répartition de charge il faut d abord vérifier que nos serveurs sont à même de pouvoir répondre. Ce procédé s appelle le health check, qu on pourrait traduire grossièrement par vérification de santé, mais qui en faite devrait plutôt être traduit par preuve de vie. Contrairement à plein d autres load balancer, HAProxy permet de faire des vérifications au niveau applicatif, en vérifiant qu une valeur de retour 200 est bien reçu après envoi d une requête. Ce test, bien que simple est en général suffisant pour vérifier que le serveur HTTP ne déraille pas complètement et est bien plus probant qu un simple ping qui par exemple ne détecterait pas une erreur 50X. 5.3 Les algorithmes de répartition HAProxy dispose de plusieurs algorithmes de répartition de charge. Tous ne seront pas utiles à notre utilisation mais il est intéressant de savoir que HAProxy est très généraliste et qu il ne IUT CHARLEMAGNE Page 21 Licence Pro ASRALL

23 gère donc pas que des algorithmes pour la répartition de charge pour l hébergement web. Les deux premiers algorithmes sont sans doute ceux que nous seront les plus susceptibles d utiliser, ce sont aussi les plus simples à comprendre Round Robin Aussi appelé l algorithme tourniquet. C est le moins consommateur en CPU et le plus simple, on a une liste de serveurs web (ou d IP), à chaque nouvelle requête, on prend le suivant. (remarque : l algorithme est en faite un peu plus complexe et il est possible de pondérer l importance des serveurs, afin que les plus gros servent le plus de requêtes. Il est possible de modifier la pondération en cours d utilisation (on the fly) cependant cette fonctionnalité implique une limite au nombre de serveurs que peut comporter la ferme ( d après la documentation) La répartition se fait donc naturellement de façon très efficace, cet algorithme peut cependant montrer ses limites notamment dans le cas de temps de connexion très hétérogènes. Il existe une variante à cet algorithme appelé static-rr, la pondération existe mais n est pas modifiable à la volée. En revanche il n y a plus de limitation du nombre de serveurs que peut contenir notre ferme. L algorithme est aussi très légèrement plus efficace Leastconn Comme son nom l indique, le serveur avec le moins de connexions reçoit la connexion. Pour garantir que tous les serveurs seront utilisés, les serveurs sont automatiquement regroupés en fonction de leur charge. Un round robin est effectué dans ces groupes présentant des charges similaires. Cet algorithme s adresse particulièrement pour les applications ayant de très longues (en temps) requêtes : LDAP, SQL (certaines requêtes SQL, ou création d index peuvent durer des heures). Il est en général moins indiqué pour les requêtes courtes comme HTTP. Cet algorithme est également dynamique, on peut donc faire varier la pondération des serveurs à la volée First Cet algorithme répartit la charge d une façon originale, puisque l objectif est de saturer les serveurs de connexions. Plus exactement, vous définissez un nombre maximum de connexions possibles sur le serveur, lorsque ce nombre est atteint on passe au serveur suivant. Les connexions sont adressées en fonction de l id du serveur. Cet algorithme, qui semble être l antithèse de notre objectif, a une utilité bien spécifique. Économiser de l énergie pendant les périodes non critiques, par exemple la nuit il peut être envisageable d éteindre une partie de notre ferme de serveur. Pour utiliser cet algorithme efficacement, il est conseillé de monitorer les serveurs non utilisés pour les éteindre lorsqu ils ne sont pas nécessaire et au contraire d en rallumer lorsque le temps de traitement des requêtes commence à s allonger ou n importe quel autre signe extérieur Source Cet algorithme essayera de toujours fournir le même serveur à un IP donnée, cela peut être utile pour effectuer des tests (de charge, de fonctionnalité, etc...) sur la ferme de serveurs. Cela peut aussi être utilisé pour permettre aux clients ne souhaitant pas utiliser de cookies de réutiliser leur session sur un serveur particulier. Cet algorithme est statique, pas de changement de pondération à la volée uri Cet algorithme est plus complexe, il hash l uri (ou un partie, c est paramétrable), la même requête (hash) sera toujours aiguillé vers le même serveur (si ce dernier reste allumé). Ce procédé est utilisé pour permettre des analyses antivirus (ça doit également être utile pour éviter les injections SQL) ou encore optimiser le cache. Cet algorithme est statique, on peut également paramétrer la longueur du hash et la IUT CHARLEMAGNE Page 22 Licence Pro ASRALL

24 profondeur maximum jusqu à laquelle on hashera l uri (le nombre de slash). Et de nombreux autres dont nous ne ferons pas la liste exhaustive ici. 5.4 Interface d administration HAProxy dispose de deux interfaces d administration communes : une interface web (5.4), une interface CLI (5.3), les deux proposent grossièrement les mêmes informations. État des serveurs front-end, taux d utilisation, disponibilité, nombre de sessions, etc... L interface CLI, hatop permet également d ajouter ou de retirer des serveurs à notre pool de load balancer. Figure 5.3 Exemple d hatop Figure 5.4 Exemple d interface web 5.5 Testé et approuvé Nous avons effectué quelques tests de charge sur HAProxy, dont les résultats ont été satisfaisant, tant au niveau processeur que mémoire, il reste pratiquement insensible aux requêtes que nous lui envoyons. Nos deux Nginx sont saturés bien avant lui. IUT CHARLEMAGNE Page 23 Licence Pro ASRALL

25 Figure 5.5 Htop et Siège Nous voyons dans cette image (5.5) le résultat d un siège avec 50 clients, on constate que la charge est très faible tant sur le processeur qu en RAM. Rappelons qu ici HAProxy est configuré en Load Balancer de niveau 7. À titre de comparaison sur la même configuration et avec 500 clients on monte à 80 Mo de RAM, et une consommation processeur équivalente. IUT CHARLEMAGNE Page 24 Licence Pro ASRALL

26 Chapitre 6 Collectd 6.1 Reporting d information avec Collectd Collectd est un démon qui permet de récupérer les statistiques de performance périodique d un système et qui prévoit aussi des mécanismes qui permettent de stocker les valeurs en format de fichier RRD. Il a été écrit en juillet 2005 par Florian Forster ; à l heure actuelle, Collectd est toujours en développement et la dernière version stable sortie est la version (26 janvier 2014). De plus il est écrit dans le langage de programmation C et il est sous la licence GNU (GPL v2). 6.2 Principe du logiciel Collectd permet de recueillir plusieurs statistiques sur le système. Les utilités de ces informations sont de pouvoir déceler des goulots d étranglements actuels, de prévenir les charges systèmes et de maintenir une vue d ensemble sur les ressources disponibles. Nous pouvons voir ici en exemple un graphique qui montre l utilisation du processeur par l utilisateur et les différents services. Cette image illustre les ressources du CPU 1 en utilisation par l utilisateur. Figure 6.1 Exemple de graphique 25

27 6.2.1 Pourquoi utiliser Collectd? Tout d abord il est important de souligner que, comme d autres projets, Collectd est un logiciel open source et gratuit. Mais pourquoi choisir Collectd plutôt qu un autre logiciel du même type? C est ce que nous allons expliquer. De plus Collectd est développé avec le langage C pour un souci de performance et de portabilité, en effet cela lui permet de fonctionner sous tous les systèmes Unix sans à avoir à installer de scripts. L une des forces de Collectd est qu il est "livré" avec un peu plus de 90 plugins ce qui permet d avoir une utilisation et des graphiques standards ; ou alors au contraire, des graphiques très spécialisés pour une utilisation avancée. 6.3 Exemples de plugins CPU : Calcule le pourcentage d utilisation des CPU Network : Calcule le pourcentage d utilisation du réseau Memory : Calcule le pourcentage d utilisation de mémoire par l utilisateur De plus, il fournit de puissantes fonctions pour "surveiller" le réseau qui sont extensibles de bien des façons. Il est très facile de choisir les plugins que l on veut utiliser ou non. Pour finir, il est important de souligner que Collectd a une communauté active et bien soutenue avec une documentation importante et surtout de qualité. 6.4 Les points forts de Collectd La portabilité : Collectd peut être en effet installé sur une multitude de systèmes comme Solaris, Mac OS X ou encore sur FreeBSD (il est même possible d avoir une prise en charge de Collectd sur Windows qui est fourni par SSC Serv ). Une configuration facile : Collectd est facilement configurable, outre les modules à charger il n est pas nécessaire de configurer quoi que ce soit d autre. Une grande aide : les administrateurs systèmes peuvent utiliser Collectd sur n importe quel nombre d ordinateurs (de un à plusieurs centaines ). Extensions personnalisées : il existe plusieurs moyens pour étendre les fonctionnalités de Collectd afin de répondre à des besoins précis, il y a par exemple, C-plugins qui permet de charger le daemons directement. 6.5 Installation de Collectd Après la présentation, il est temps de passer à l installation du logiciel : Tout d abord il faut installer les paquets essentiels sur le système où on se trouve. Pour cela : apt-get install build-essential. Lors de l installation de groupes de paquets, on peut choisir d installer les librairies unes à unes : Par exemple : apt-get install librrd2-dev libsensors-dev libsnmp-dev... Bien sûr l installation de Collectd est très facile : apt-get install collectd Un des nombreux avantages de Collectd est qu il permet d installer des utilitaires pour faciliter son utilisation. Par exemple Kcollectd qui reprend les résultats de Collectd mais utilise une interface KDE. Nous allons voir son installation simple (un peu plus tard). 6.6 Configuration de Collectd Nous allons à présent voir comment configurer Collectd en fonction des besoins de l utilisateur. Mais avant voici un petit exemple sur le nombre de plugins de Collectd. IUT CHARLEMAGNE Page 26 Licence Pro ASRALL

28 Figure 6.2 Exemple de plugins sous Collectd IUT CHARLEMAGNE Page 27 Licence Pro ASRALL

29 L administrateur système a, à sa disposition, un grand nombre de plugins pour pouvoir répondre à ces attentes. L administrateur système peut aller à tout moment changer le nombre de plugins utilisés. C est l une des forces de Collectd qui est simple d utilisation et surtout de configuration. Pour configurer les plugins, il faut éditer le fichier.conf de Collectd avec la commande suivante : vi etc/collectd/collectd.conf Suite à cette commande l administrateur doit avoir ce résultat : Figure 6.3 Configuration des plugins L administrateur peut alors choisir les plugins qu il veut utiliser. Pour cela il n a qu à décommenter la ligne avec le plugin voulu, par exemple sur l image ci-dessus l option LoadPlugin cpu et LoadPlugin disk sont décommentés. Ainsi, lors de la prochaine collecte d informations et de statistiques Collectd prendra l utilisation du CPU et des Disques Durs en compte. Pour que les changements soient pris en compte, il faut relancer le service de Collectd avec la commande suivante : collectd restart Configuration d un serveur Il est en effet possible pour l administrateur de configurer Collectd pour que celui-ci "écoute" une machine en particulier afin de voir les ressources utilisées par les noeuds. Pour le serveur, il faut nous assurer que ces modules sont bien activés (donc décommentés) : Comme pour la configuration de la machine au-dessus il faut éditer le fichier de configuration qui se trouve dans /etc/collectd/collectd.conf. Pour le serveur, on décommente donc les plugins pour le réseau : LoadPlugin "logfile" LoadPlugin "network" IUT CHARLEMAGNE Page 28 Licence Pro ASRALL

30 LoadPlugin "rrdtool" Ensuite nous allons (sur la machine qui va servir de serveur) renseigner son adresse IP dans le fichier de configuration de Collectd : Figure 6.4 Mise en place du serveur Après avoir fait cela il faut entrer l adresse du serveur dans les noeuds. Figure 6.5 Mise en place des noeuds IUT CHARLEMAGNE Page 29 Licence Pro ASRALL

31 Chapitre 7 Munnin 7.1 Présentation Munin est un outil de surveillance système et réseau open source sous licence publique générale GNU. Il s appuie sur l outil RRDTool. Il présente ses résultats sous forme de graphiques disponibles via une interface web. Il possède une structure de plugins particulièrement simple qui permet d enrichir rapidement l outil. Des plugins sont actuellement disponibles pour les systèmes d exploitation suivants : GNU/Linux, FreeBSD, NetBSD ou encore Solaris. 7.2 Fonctionnement L architecture du système Munin est constituée d un serveur principal appelé Munin-master, récupérant les informations à intervalle régulier et de plusieurs nœuds appelés Munin-node. Le nœud doit être installé sur le ou les serveurs à surveiller. En effet, Munin permet de générer une série de graphes à partir des informations reçues par les autres machines par exemple l utilisation de la mémoire vive, l usage CPU, réseau,... De plus, il permet d envoyer des alertes par mail ou d envoyer ces alertes vers Nagios. Munin fonctionne sur le modèle client-serveur. En effet, un petit démon tourne sur chacune des machines devant être surveillée (ici munin-node). Ce démon fournit les informations concernant la machine dès que le grapheur (la machine maitre munin) les lui demande. Par exemple, avec Munin il est possible de surveiller plusieurs types de composantes d une ou plusieurs machines : Les disques durs : accès, usage, latence, uptime. Les processus : nombre, activité. Le réseau : nombre d erreurs, trafic, requêtes. Les capteurs : températures des composants (disque dur, processeur...). Munin est cependant modulable : on peut y intégrer facilement la surveillance de n importe quelle application. Une liste de plugins est disponible sur le site officiel du logiciel. (http ://munin-monitoring.org/) Pourquoi Collectd? Nous avons préféré utiliser Collectd dans un souccis de facilité d utilisation et de configuration. De plus, nous avons eu plus l habitude de manipuler Collectd, en effet, grâce à cela nous avons gagner du temps au niveau de la recherche de plugins ou de mise en place. 30

32 Chapitre 8 Apache2 Cette partie ne sera pas très renseigné ni très techniques, Apache est un logiciel connu et ses différences de performances avec Nginx sont traités la partie Nginx. 8.1 Un peu d histoire Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. C est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Apache est apparu en avril Au début, il s agissait d une collection de correctifs et d additions au serveur NCSA HTTPd 1.3, qui était dans le domaine public et le serveur HTTP alors le plus répandu. De cette origine, de nombreuses personnes affirment que le nom Apache vient de a patchy server, soit «un serveur rafistolé». Par la suite, Apache a été complètement réécrit pour la version 2. Au début, Apache était la seule alternative sérieuse et libre au serveur HTTP de Netscape. 8.2 Aspects techniques Apache est conçu pour prendre en charge de nombreux modules lui donnant des fonctionnalités supplémentaires : interprétation du langage Perl, PHP, Python et Ruby, serveur proxy, Common Gateway Interface, Server Side Includes, réécriture d URL, négociation de contenu, protocoles de communication additionnels, etc. Néanmoins, il est à noter que l existence de nombreux modules Apache complexifie la configuration du serveur web. En effet, les bonnes pratiques recommandent de ne charger que les modules utiles : de nombreuses failles de sécurité affectant uniquement les modules d Apache sont régulièrement découvertes. Un des points fort d Apache est sa possibilité de configuration, en effet cela en fait une fonctionnalité phare. Le principe repose sur une hiérarchie de fichiers de configuration, qui peuvent être gérés indépendamment. 31

33 Chapitre 9 Nginx Nginx [engine x] est un logiciel libre de serveur Web (ou HTTP) ainsi qu un proxy inverse écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d un site russe à très fort trafic. Nginx est écrit en C et la dernière version stable de cette solution est la version Un serveur asynchrone Nginx est un serveur asynchrone par opposition aux serveurs synchrones où chaque requête est traitée par un processus dédié. En effet, Nginx utilise les changements d état pour gérer plusieurs connexions en même temps, de plus pour tirer parti des ordinateurs multiprocesseurs, plusieurs processus peuvent être démarrés. Ce choix d architecture se traduit par des performances très élevées, mais également par une charge et une consommation de mémoire particulièrement faibles comparativement aux serveurs HTTP classiques, comme Apache. 9.2 Modularité En effet, Nginx est très modulaire : un noyau minimal et des modules, nombreux, venant compléter les fonctions de base. Chaque module peut agir comme un filtre sur le contenu en entrée, en sortie ou intermédiaire (proxy) par le biais de nombreuses callbacks. Ces modules sont liés au serveur lors de la compilation. 9.3 Optimisations Le noyau d Nginx s appuie sur des structures de données minimales, mais celle-ci sont optimales, visant à réduire le nombre d appels système, en particulier pour tout ce qui attrait à l allocation de mémoire. Différents mécanismes de signalisation peuvent être utilisés afin d exploiter au mieux le système d exploitation. L architecture asynchrone soulage l ordonnanceur du système d exploitation et favorise l utilisation des caches du ou des processeurs. A noter que si vous ne souhaitez pas migrer entièrement votre architecture web, il est également possible d utiliser Nginx en complément d Apache comme simple proxy de cache. 9.4 Nginx et ses extensions Dépourvu de surplus, Nginx regorge néanmoins de modules et d addons qu il est possible d intégrer (ou d enlever) lors de l installation de votre serveur web. Au total une cinquantaine d extensions, officielles ou non, qui permettent de configurer Nginx à vos besoins comme par exemple : 32

34 Le support SSL indispensable si vous êtes dans l e-commerce. Stub Status pour se connecter avec des outils de monitoring comme Munin. Perftools pour le support du service Google Performance Tools. La pré-compression gzip, les etags pour contenus statiques et dynamiques. Une ribambelle de modules pour profiter au mieux de Memcached. 9.5 Nginx en quelques chiffres Pour bien comprendre l évolution de l utilisation de Nginx dans le monde voici quelques chiffres sur le nombre de domaines gérés par Nginx, il est également important de noter que ce chiffre en question est en constante augmentation. En juin 2007, Google le considérait comme le 3e serveur (4% d utilisation) parmi les serveurs web les plus fréquentés, après Apache (66%) et IIS de Microsoft (23%). En novembre 2010, Nginx est d après Netcraft le troisième serveur le plus utilisé sur les sites web mondiaux avec 6,04% de part de marché, derrière les 22,70% d IIS et les 59,36% d Apache. En juillet 2011, ces chiffres restent globalement stables : 64,66% pour Apache, 16,82% pour IIS, 6,55% pour Nginx, 4,61% pour Google Web Server. En janvier 2012, Nginx dépasse légèrement IIS, avec 12,18% contre 12,14%. En avril 2013, Nginx continue sa progression, avec 12,91% des sites actifs. Alors que Apache passe à 54,37%. IIS reste stable à 12,13% et Google Web Server passe à 8,12% 9.6 La différence entre les types de Nginx Il faut préciser que Nginx (en version gratuite) après sa simple installation est capable d être utilisé comme : Serveur Web, Reverse Proxy, Load Balancer, Serveur de caching. De plus, Nginx a aussi une version payante, celle-ci se nomme Nginx Plus qui inclue des fonctionnalités supplémentaires : Un loadbalancer plus avancé qui ajuste dynamiquement les serveurs et les nœuds. Une gestion plus avancé du caching. La possibilité de faire de monitoring. La possibilité d avoir accès à du support. 9.7 Pourquoi Nginx? Nous avions deux choix pour notre sujet, en effet le question était la suivante : Quel serveur Web choisir pour que celui-ci réponde au mieux aux piques de charges? Après avoir lu beaucoup de comparatifs entre les deux concurrents,nous avons finalement choisi Nginx et cela dans un soucis de performance. En effet, Nginx et plus performant qu Apache au niveau de la consommation des ressources comme illustré ici : IUT CHARLEMAGNE Page 33 Licence Pro ASRALL

35 Figure 9.1 Comparatif de consommation de mémoire De plus, Nginx peut traiter plus de requêtes par seconde : Figure 9.2 Comparatif de requêtes par secondes IUT CHARLEMAGNE Page 34 Licence Pro ASRALL

36 Chapitre 10 Joomla 10.1 Présentation de Joomla Joomla! est un CMS libre gratuit et très populaire, écrit en PHP sous licence GNU/GPL. Un CMS (Content Management Software, un logiciel de gestion de contenu) est un logiciel web qui vous permettra de créer un site internet dynamique en toute simplicité. Il est écrit en PHP et utilise une base de données MySQL. Joomla! inclut des fonctionnalités telles que la gestion des flux RSS, des news, dispose d une version imprimable de ses pages, des blogs, des sondages, un outil de recherche, etc... Joomla a été créé à partir du CMS Open Source Mambo en août 2005, suite aux désaccords d une majorité des développeurs open source avec la société propriétaire du nom de Mambo. Ce logiciel était idéal à mettre en place dans notre architecture de test. Il est relativement simple à installer (il faut un peu ruser pour l utiliser en mode cluster), il est réputé lourd ce qui nous permettra de tester convenablement notre architecture. Figure 10.1 Logo de Joomla! 35

37 Chapitre 11 Mysql et Percona 11.1 MySQL MySQL est un système de gestion de bases de données relationnelles (ou SGBDR). De plus, cette solution est distribuée 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, que ce soit par le grand public (applications web par exemple) que par des professionnels, MySQL est en concurrence avec Oracle, Informix et Microsoft SQL Server. MySQL AB a été acheté le 16 janvier 2008 par Sun Microsystems pour un milliard de dollars américains. En 2009, Sun Microsystems a été acquis par Oracle Corporation, mettant entre les mains d une même société les deux produits concurrents que sont Oracle Database et MySQL. MySQL peut donc s utiliser seul, mais est la plupart du temps combiné à un autre langage de programmation : PHP par exemple pour de nombreux sites web, mais aussi Java, Python, C++, et beaucoup, beaucoup d autres. De plus MySQL bénéficie d un large public, car : Il est facile à comprendre : sa syntaxe simple en fait un langage facile à comprendre pour les programmeurs et les débutants. Le langage est fonctionnel : MySQL fonctionne sur de nombreuses plates-formes différentes. Dispose d une vaste bibliothèque de fonctions et d API : API pour C, C++, Eiffel, Java, Perl, PHP, Python, Ruby et Tcl sont disponibles. Les fonctions SQL sont mises en place en utilisant une bibliothèque de classes optimisées. Multi Thread : complètement multi-thread utilisant un noyau de threads. Haute capacité de storage : pour donner une idée, de grosses entreprises actuelles utilisent le serveur MySQL avec plus de tables et d enregistrements Pourquoi utiliser le fork Percona? Historiquement, Percona est une société de logiciels spécialisée dans MySQL, le consulting, les services gérés, et de la formation. La société a été fondée en 2006 par Peter Zaitsev et Vadim Tkachenko et est basée à Durham, Caroline du Nord. La société a lancé un service de sauvegarde MySQL en Juin 2014 comme partie de ses services gérés. La société contribue à la communauté MySQL par le biais de son blog, sur les performances MySQL. La société accueille également des conférences annuelles de l utilisation MySQL nommé "Percona Live" dans la Silicon Valley et à Londres. Les fondateurs de l entreprise ont également publié le livre O Reilly "High Performance MySQL". Mais que rajoute ce fork pour MySQL? 36

38 Sans tuning particulier Percona permet d obtenir : 40% de performance (en rapidité). Plus de cohérence et de performance générale que les serveurs MySQL seuls. Percona inclue XtraDB qui est un fork de InnoDB, celui-ci offre une meilleure utilisation de la mémoire. Percona offre aussi plus d options de réglage ce qui donne encore plus de contrôle. Figure 11.1 Comparatif de MySQL et Percona Dans ce projet nous avons utilisé cette technologie, en effet nous avons utilisé Percona XtraDB Cluster pour le clustering des serveurs MySQL et donc par ce biais la réplication des bases de données. En effet, avec Percona XtraDB Cluster nous avons réussi à mettre en place un cluster de trois serveurs de bases de données avec la réplication des données. De ce fait, même si un ou deux serveurs sont amener à "tomber", les bases de données seront toujours disponibles, ainsi les applications également. IUT CHARLEMAGNE Page 37 Licence Pro ASRALL

39 Chapitre 12 Varnish Varnish est un serveur de cache HTTP développé depuis 2006 en C sous licence BSD. Son auteur est le danois Poul-Henning Kamp, développeur du système d exploitation FreeBSD, secondé par l entreprise norvégienne Redpill-Linpro. Plus tard, le développement a été laissé à la compagnie Varnish Software. Cependant, contrairement à ses concurrents, il est développé uniquement comme un reverse proxy. La version actuelle de ce logiciel est la version sortie le 19 Février Les principales capacités de Varnish sont donc de soulager les serveurs à diminuant le nombre de requêtes à traiter, il dispose d une fonction de load balancer et étant l unique point d accès entre Internet et les serveurs, il est simple de renforcer la sécurité de l architecture Fonctionnement Il est possible de configurer plusieurs paramètres au démarrage du service comme le type du cache, cache mémoire ou cache fichier, la taille du cache, les IP et ports d administration et d écoute. La configuration permet de définir les différentes étapes du cycle de vie d une requête grâce à des intercepteurs événementiels, mais également de déclarer les serveurs avec la directive backend. Varnish propose différents outils pour son utilisation et son exploitation tels que VarnishTop (liste les entrées par fréquence), VarnishStat (statistiques du cache) ou VarnishHist (temps pour desservir le contenu) Face à la concurrence Varnish présente face à ses concurrents des avantages mais également des inconvénients, nous allons comparer Varnish à HAProxy, Squid et Nginx. Tout d abord, comme Varnish, HAProxy est utilisé comme load balancer pour la haute disponibilité et ils permettent tous deux de contrôler le fonctionnement des serveurs. Cependant, HAProxy propose une interface web, une atténuation plus poussée des risques de DOS et DDOS et un load balancer de type avancé. Mais Varnish a l avantage de pouvoir être utilisé comme serveur cache et a la possibilité de gérer l Edge Side Includes. Squid, quant à lui, est un forward proxy qui peut être configuré comme reverse proxy, mais Varnish est un meilleur reverse proxy que Squid. En effet, Varnish a de meilleurs performances, il est plus souple sur les contenus acceptés par le cache et il possède un meilleur système de configuration, plus simple et plus flexible. Squid possède tout de même certains avantages sur Varnish comme la prise en charge du protocole SSL et la possibilité d ajouter des modules antivirus. Enfin, Nginx a la capacité d être serveur web et reverse proxy à la fois ; aussi, comme Squid il supporte le protocole SSL et est plus rapide pour desservir des contenus statiques hébergés. Cependant, il n est pas le plus simple à prendre en main. 38

40 12.3 Notre choix Cependant, nous n avons pas choisi d utiliser Varnish comme reverse proxy car son concurrent HA- Proxy possède de meilleurs performances du point de vue load balancer, en effet, il propose un load balancer plus avancé que celui de Varnish et propose une interface web facilitant la récupération d informations du load balancer. Quant à la partie serveur, nous avons fait le choix d un serveur Nginx qui traite plus rapidement les requêtes que Varnish, comme nous pouvons le voir avec le diagramme suivant. Nous avons préféré utiliser deux outils différents, comme load balancer et comme serveur, plutôt que d utiliser ces deux fonctionnalités qu offre Varnish mais dans de moindres performances. Figure 12.1 Comparaison des temps de traitement IUT CHARLEMAGNE Page 39 Licence Pro ASRALL

41 Chapitre 13 Autres 13.1 Sécurtié Par manque de temps nous n avons pas eu le temps de pousser notre étude très loin. Nous expliquerons simplement des généralités qui devraient être comprises et appliquées par tous. À la fin nous présenterons quelques produits que nous n avons pas eu le temps de tester assez mais qui ont une bonne réputation Généralités Dans une architecture à plusieurs couches il est toujours intéressant de déployer un pare-feu devant notre infrastructure, mais également d en déployer à l intérieur, entre les couches. L avantage de disposer des pare-feu entre les couches est que chacun peut disposer de configurations spécifiques aux protocoles qui vont transiter vers sa couche. Par exemple, dans une architecture à deux couches, un firewall pourrait empêcher toutes les communications autres que celles entre le cluster web et le cluster de base de données.et n autorisant entre ces deux clusters que le port de communication désigné dans notre configuration. Le firewall situé entre le loadbalancer et la couche web, lui, pourrait n autoriser que les requêtes HTTP/S. Il est très utile, dans ce genre d infrastructure, d avoir un unique serveur d administration dont l IP est autorisé à se connecter (en SSH avec par exemple un port exotique). D une manière générale, procéder à des analyses antivirus/anti-rootkit fréquentes sur ses serveurs (oui, même Linux) devrait être la règle. Il faut également veiller à ce que ses outils soient à jour en permanence, la compilation de logiciel par les sources peut rendre ce procédé fastidieux. Pour ceux qui utilise uniquement les paquets, il est possible d automatiser les mises à jour avec des logiciels comme cron-apt. Attention, à l heure actuelle (sauf avec kexec), la mise à jour de noyau, nécessite le redémarrage complet de la machine. Ce ne devrait plus être le cas à partir de la version 4.0 du noyau! Enfin, une autre bonne pratique qui doit être implémenté au sein de l équipe d administration, la prohibition de la connexion avec l utilisateur root. Les administrateurs doivent posséder suffisamment de droits pour pouvoir travailler. Mais le recours à l utilisateur root, doit rester exceptionnel. Il est également important, de logger les actions de chacun, afin de pouvoir comprendre avec exactitude ce qui s est passé lors d une panne. 40

42 Produits à surveiller Kali La distribution Kali (anciennement backtrack) est une distribution basée sur Debian, orienté sécurité et pentesting 1, c est un outil précieux dans sa panoplie d administrateur système et réseau. Naxsi Tout le monde connait netfilter et son célèbre frontend iptables, il existe cependant d autres alternatives, parfois originale. C est dans cette catégorie que se situe le firewall web naxsi 2. Il est développé par l entreprise française spécialisée dans l hébergement de haute sécurité NBS-System. C est un logiciel open source et gratuit (attention à la licence). C est un module de nginx qui ne s appuie pas sur une liste noire, mais sur une description de comportement et des chaînes présentes dans les attaques par injection SQL et XSS. Par défaut, naxsi bloque tous ces paternes, incluant malheureusement des requêtes légitimes, l idée est ici d ajouter une liste blanche des actions légitimes. Cette liste blanche peut être complétée manuellement ou bien automatiquement car ce logiciel dispose d un mode apprentissage. Il est réputé très performant. Shorewall ShoreWall est un peu comme iptables, un frontend à netfilter. Mais il a la réputation d avoir un fichier de configuration bien plus lisible qu iptables. Dans des infrastructures complexes, la maintenabilité du fichier de règles du ou des firewall est indispensable. C est dans cet esprit qu a été développé Shorewall. Bien que plus lourd qu iptables, il n est pas limité en terme de fonctionnalités Tuning Le tuning d une application est le fait de la paramétrer et de l optimiser pour obtenir des gains de performances significatifs Les types de cache Nous ne parlerons ici que de l optimisation des caches sur Nginx. Le cache opcode PHP étant un langage interprété, chaque script est chargé, analysé puis pré-compilé lorsqu il est appelé. La version pré-compilée d un script s appelle de l opcode et il est possible de mettre en cache cet opcode afin d alléger le processus de pré-compilation. Comme l opcode est en cache, PHP n a plus besoin de charger, d analyser et de pré-compiler vos scripts, ce qui permet un gain de temps et de performance évident. Il existe des projets permettant de gérer le cache opcode comme eaccelerator ou APC, mais PHP dispose depuis sa version 5.5 d un cache opcode natif, appelé opcache, activé par défaut et il très facile à configurer. Par exemple pour visualiser très facilement l état du cache (opcache) il y a la commande opcache-status. 1. test de pénétration, aussi appelé sécurité offensive 2. Nginx Anti XSS and SQL Injection IUT CHARLEMAGNE Page 41 Licence Pro ASRALL

43 Le cache Fast-CGI Lorsqu une requête PHP est adressée à Nginx, il transfère celle-ci à PHP via le protocole Fast-CGI, PHP interprète le code, l exécute et renvoie à Nginx (toujours via Fast-CGI) du code HTML. Mais Nginx est aussi capable de mettre en place un cache Fast-CGI qui contiendra le code HTML renvoyé par PHP. Nginx n a plus besoin de faire travailler PHP pour délivrer du contenu. De plus, ce cache fonctionne avec PHP-FPM mais aussi tous les autres programmes appelés par Fast-CGI. Que ce soit avec Perl, du Python et même ruby. Pour mettre en place le cache FAST-CGI il faut allez dans : /etc/nginx/nginx.conf Ulimit Figure 13.1 Mise en place du cache Fast-CGI Le contrôle des ressources offertes aux utilisateurs est un élément de base de la fiabilisation d un système Linux. Un système soigneusement configuré ne souffrira pas de déni de services en cas de dysfonctionnement d un processus, ou d attaque plus ou moins consciente d utilisateurs. Il est possible de définir, pour un certain nombre de ressources (nombre de fichiers ouverts, taille des fichiers, nombre de processus instanciés, temps CPU, etc), une limite souple (limite soft) qui peut être augmentée par l utilisateur, via ulimit, jusqu à une limite maximale qualifiée de limite dure (limite hard ). Le système ne dépasse pas la valeur de la limite soft. Si l utilisateur souhaite repousser cette limite, il devra définir une nouvelle limite soft avec ulimit. les limites sont fixées dans le fichier /etc/security/limits.conf voici des exemples de ce qu il est possible de configurer avec "ulimit" : fsize (-f) : taille des fichiers. nofile (-n) : nombre de fichiers ouverts. nproc (-u) : nombre de processus. priority (-r) : priorité des processus lancés par l utilisateur (nice). maxsyslogins : nombre maximum d utilisateurs logués sur le système. nice : priorité maximale des processus de l utilisateur DNS et IP 13.4 IP Avant de parler du service DNS nous allons parler d une technique de réseau appellé anycast. Une adresse anycast est une adresse particulière qui peut être attribuée à plusieurs machines sur le réseau. Le réseau (souvent grâce au protocole BGP) va aiguiller le client vers l adresse la plus proche de lui, réduisant du même coup la latence vers ce service. Si les IP anycast sont réparties de façon géographiquement équitable ce procédé va naturellement produire une forme de load balancing, puisque les IP d un continent/pays auront tendance à se diriger vers le point le plus proche. Si cette répartition ne suffisait pas, certains fournisseurs de service (notamment DNS) propose d ajouter un health check sur les machines disposant d une IP anycast. Ainsi, si la machine tombait en panne, la IUT CHARLEMAGNE Page 42 Licence Pro ASRALL

44 route pourrait être supprimé (au niveau BGP). Cette méthode permet renforcer notre disponibilité au niveau mondial. Nous n avons pas pu mettre en place cette technique, car elle utilise des protocoles que nous n avons pas étudié DNS On peut imaginer implémenter l anycast pour les serveurs DNS qui pointent vers notre infrastructure, mais il existe d autres méthodes pour améliorer la disponibilité des serveurs DNS, notamment le caching DNS. Nous avons mis cette méthode en place dans notre infrastructure bien que nous n en ayons pas vraiment besoin pour seulement 7 machines Le cache DNS Le principe du cache DNS est le même que pour les autres caches. Il s agit de conserver en mémoire (RAM pour améliorer les performances) les adresses fréquemment demandées. Nous avons choisi de nous servir d un outil très simple qui fait à la fois office de DNS et de cache dns, il s agit de dnsmasq. Cet outil est une sorte de couteau suisse, très léger il permet de faire à la foi DHCP, DNS, cache DNS, serveur TFTP et d autres. Il est bien moins complet qu un Bind9 mais il est également bien plus léger et plus simple à mettre en place Le round robin DNS Les serveurs DNS sont situés au dessus des load balancer de nos infrastructures. Il est aujourd hui possible de les utiliser pour répartir la charge sur nos tête de pont les load balancer. Si un service DNS est capable d effecturer un health check sur notre load balancer et que notre infrastructure dispose de plusieurs points d entrée il devient possible de répoartir la charge sur nos balancers, répartir la charge sur les répartisseurs de charge. Cela est particulièrement utile pour minimiser l indisponibilité dans le cas où l un de nos points d entrée deviendrait défaillant. IUT CHARLEMAGNE Page 43 Licence Pro ASRALL

45 Troisième partie Notre architecture haute disponibilité 44

46 Chapitre 14 Nos choix Dans cette partie nous allons exposer les choix logiciels que nous avons effectués pour réaliser ce qui nous semblait être la meilleure infrastructure haute disponibilité orientée web possible. Dans le temps imparti et avec les contraintes matérielles de la salle (nous avons un peu triché en apportant un switch gigabit non manageable personnel) Notre architecture Très tôt et sur conseil de notre tuteur nous nous sommes orienté sur une architecture deux tiers (en séparant la partie logique de l application de la partie données). À cette architecture nous comptions rajouter un load balancer de tête et un DRBD en failover par serveur de base de données(14.1). 45

47 Figure 14.1 Architecture de base Cette architecture avait l avantage d être assez complexe, potentiellement scalable et sûr pour les données. Le failover nous permettant théoriquement de ne pas souffrir d interruption de service, mis à part en cas de défaillance de notre serveur HAProxy. Pour réduire ce risque nous avons choisi dès le départ d installer HAProxy sur un containeur LXC. L avantage du containeur est qu il est facilement et rapidement clonable. Ainsi il est très rapide dans le cas d une maintenance programmée de lancer ce second containeur, changer les IP, effectuer la maintenance (typiquement une mise à jour ou bien un changement de configuration) et enfin de refaire les mêmes opérations dans l autre sens. Évidemment cela ne prévient pas la panne matérielle. Prévenir la panne matérielle sur le load balancer était pour nous extrêmement compliqué, tout d abord parce que nous manquons de machines, ensuite parce que nous manquons d IP, de câbles réseau, de prises réseau, de prises électriques et enfin parce que comme expliqué plus haut les systèmes à mettre en place pour parer à ce genre d éventualité sont complexes. Mais la raison principale est le manque de moyen. Suite à des soucis rencontrés dans la mise en place de HAProxy en mode TCP nous avons choisi de nous orienter sur une autre architecture, finalement pas si différente. On remarquera la disparition des machines DRBD, ce choix a été effectué puisque nous n avons pas suffisamment eu le temps de nous renseigner sur ce logiciel pour envisager sa mise en place. Notre architecture finale (14.2) est donc toujours une architecture deux tiers mais avec cette fois-ci un cluster de base de donnée avec trois machines et non pas deux et la disparition des machines DRBD. IUT CHARLEMAGNE Page 46 Licence Pro ASRALL

48 Figure 14.2 Notre architecture Percona remplace avantageusement DRBD en terme de facilité de mise en place et de maintien de l intégrité des données. En revanche dans la configuration actuelle les performances ne sont pas très intéressantes Installation des machines Les OS installés ont été des GNU/Linux Debian testing (dans un premier temps). Le choix de testing a été fait car nous souhaitions que dans la mesure du possible que nos recherches soient toujours valides dans un futur proche. La testing actuelle étant en Freeze à priori tout ce que nous avons mis en place, sera reproductible pour de nombreuses années. Pour réaliser l installation nous avons simplement suivi l installation d une debian netinstall 1 minimale (juste openssh en plus du bare debian) en prenant bien garde de remplacer le proxy par défaut par celui de la salle. La modification s est faite en mode interactif, mais ces informations sont écrites dans le /etc/apt/apt.conf 1 A c q u i r e : : h t t p : : Proxy "www cache. i u t n c. univ l o r r a i n e. f r :3128 " ; Après plusieurs essais ayant échoués sur une machine (upgrade de stable à testing). 1. La plus légère IUT CHARLEMAGNE Page 47 Licence Pro ASRALL

49 Nous avons créé un script bash d installation 17.1 qui nous a permis d automatiser l installation d un environnement de travail fonctionnel et agréable. Ce script a été déployé à distance, sans encombre (oui, on peut scier la branche sur laquelle on est assis sans tomber). Il est à noter que trois machines ont été ultérieurement réinstallées avec Wheezy car pour l instant Percona n est utilisable que sur cette version Difficultés Outre les difficultés d organisation et de proxy, nous avons dû faire avec le le matériel défaillant ainsi que le DHCP sur lequel nous n avions pas la main, (et dont la limite d ip fixe a été dépassée) et le miroir debian de la salle très capricieux. Les câbles ethernet cassés nous ont permis de nous assurer de la solidité de notre infrastrucutre. Par manque de temps et à cause de l abscence du preseed originalement prévu nous nous sommes rabattu sur une méthode très classique d installation, que nous maitrisions bien, la clef USB. Ce n est évidemment pas la méthode que l on recommande pour l installation d un grand nombre de machines, mais pour 7 la perte de temps était acceptable HA Proxy (et LXC) Cette installation est un peu particulière, elle décrira dans une partie l installation de la machine HAProxy (le serveur), et dans une autre l installation du containeur LXC depuis flockport et sa configuration La machine HAProxy La machine HAProxy a été installée avec la même méthode que les autres, à savoir en suivant le script d installation (17.1), nous avons cependant étendue la configuration pour les besoins spécifiques de la machine. Tout d abord, nous avons installé un dnsmasq dont la configuration sera détaillée dans une prochaine section. Ensuite, il faut comprendre que la configuration réseau de la machine HAProxy est un peu particulière. Pas tellement du fait de sa position de tête dans le cluster mais parce que nous avons décidé pour des raisons de disponibilité d utiliser un ou des LXC pour faire la répartition de charge. Nous avons choisi de configurer un bridge et des containeurs pour réaliser cette tâche. Il ne s agit pas non plus de faire une configuration one-shot, notre configuration est pérenne et se relance automatiquement en cas de reboot. Pour avoir une configuration persistante sur Debian il s agit évidemment d aller modifier la configuration de : /etc/network/interfaces (17.3) 1 a l l o w h o t p l u g br0 2 auto br0 3 i f a c e br0 i n e t dhcp 4 b r i d g e _ p o r t s eth1 5 b r i d g e _ s t p o f f 6 post up i p l i n k s e t br0 a d d r e s s 0 0 : 1 e : 4 f : d1 : d0 : 8 f Figure 14.3 extrait de /etc/network/interfaces sur l hôte HAProxy Nous avons désactivé l interface eth1 pour la remplacer par le bridge. Ici l adresse mac utilisé pour le bridge est celle de eth1, cette astuce nous permet de profiter du DHCP de la salle, le bridge a pris la place du port eth1 et bénéficie de son IP. IUT CHARLEMAGNE Page 48 Licence Pro ASRALL

50 Le containeur HAProxy Tout d abord, comme précisé auparavant, il n y a pas un mais deux containeurs. L un servant de remplaçant au second si la nécessité d une mise à jour se faisait sentir. Bien que nous ayons au départ utilisé nos propres configurations de templates LXC sous debian testing (dont voici la configuration??). Par défaut, LXC nous propose des templates pour créer nos machines, mais il ne s agit pas du seul moyen pour installer un conteneur : Dans le cadre de notre projet, nous avons utilisé un conteneur pré-configuré disponible sur le site http ://www.flockport.com pour utiliser le service haproxy. Pour obtenir ce conteneur, nous devons avoir un compte sur le site, télécharger le conteneur, le décompresser et nous pouvons le démarrer directement. tar -xvf conteneur-flockport.tar.xz (Déplacer le dossier décompressé dans /var/lib/lxc s il n a pas été décompressé dedans au préalable) lxc-start -d -n conteneur-flockport La configuration du conteneur est très simple il nous suffit d éditer les fichiers /etc/apt/sources.list de la même manière que pour une installation classique puis de modifier le fichier interfaces afin de le configurer en IP statique (plus d IP disponible dans la plage de notre DHCP). Du coté de la configuration (17.4) nous avons simplement adapté la configuration de base à nos besoins notamment concernant les IP du backend. 1 d e f a u l t 2 l o g g l o b a l 3 mode h t t p Pour la configuration générale le mode choisi est HTTP 1 f r o n t e n d l o c a l n o d e s 2 bind : o p t i o n http s e r v e r c l o s e 4 d e f a u l t \ _backend nodes La configuration de tête écoute toutes les IP sur le port 80, et les redirige par défaut sur le backend : nodes 1 backend nodes 2 o p t i o n f o r w a r d f o r 3 b a l a n c e r o u n d r o b i n 4 #b a l a n c e s o u r c e 5 s e r v e r node : check 6 s e r v e r node : check La configuration du backend nodes qui redistribue ce qui arrive du frontend avec l algorithme round robin, sur les serveurs node1 et 2 identifiés par les IPs indiquées, il est précisé qu on effectuera un health check sur ces serveurs. 1 l i s t e n s t a t s : s t a t s auth t r u c : t r u c Configuration du port de monitoring sur 1936, accessible avec l utilisateur truc et le mot de passe truc. IUT CHARLEMAGNE Page 49 Licence Pro ASRALL

51 14.4 Nginx Etapes d installation Voici les étapes d installation pour Nginx pour les distributions Debian et Ubuntu. Tout d abord il faut ajouter les sources pour avoir les dernières versions stables, pour cela il suffit de faire : 1. sudo add-apt-repository -y ppa :nginx/stable 2. sudo apt-get update Suite à la commande apt-get update il suffit simplement de lancer l installation : sudo apt-get install -y nginx Ensuite, il faut aller voir sur un navigateur (localhost bien entendu) pour voir si Nginx est disponible ou non (un peu comme Apache) Configuration de notre serveur Web Tout d abord, il est important de donner les répertoires de configuration pour Nginx qui sont dans /etc/nginx /etc/nginx/conf.d /etc/nginx/sites-available /etc/nginx/sites-enabled /etc/nginx/nginx.conf Et puis comme Apache nous avons les dossiers "sites-available" et "sites-enabled" pour ainsi configurer les sites en général. De plus, si votre site est seulement de type static vous pouvez ne configurer uniquement que le chemin de votre site à prendre en compte. Mais attention, si notre site/application est dynamique il faut activer le mode PHP! Installation de Joomla Pour commencer l installation de Joomla il faut tout d abord vérifer que celui-ci est accéssible via notre navigateur(bien entendu la configuration se fait dans le dossier site-enable de Nginx). Après cela nous pouvons commencer l installation, pour se faire rien de plus simple il suffit de suivre les instruction de la première partie : IUT CHARLEMAGNE Page 50 Licence Pro ASRALL

52 Figure 14.4 Etape 1 Ensuite pour la seconde partie nous allons nous baser sur notre configuration : IUT CHARLEMAGNE Page 51 Licence Pro ASRALL

53 Figure 14.5 Etape 2 Pour le type de base de données nous utilisons : MySQLi Ensuite pour le nom du serveur nous utilisons un serveur local qui a pour IP Pour les trois parties qui vont suivre il va falloir ajouter via Mysql, un utilisateur, un mot de passe et pour finir une base de données. Après avoir crée tout ceci et avoir renseigné les champs de la section base de données, nous pouvons finir l installation de joomla! Points importants Lors de la création de la base de données, il faut bien entendu faire attention aux droits de connexions à la base pour les serveurs Web. En effet, il est important de leur donner les privilèges nécessaire pour l installation et l utilisation globale. Par exemple comme ceci 1 CREATE USER IDENTIFIED BY pomme ; Puis maintenant les droits : 1 GRANT ALL PRIVILEGES ON joomla. TO WITH GRANT OPTION ; Grâce aux configurations précédentes lors de votre installation de Joomla, celui-ci sera donc capable de se connecter au serveur de base de données local Percona Etapes d installation de Percona XtraDB Cluster Dans ce chapitre, nous allons voir les étapes pour l installation du fork de MySQL et qui va nous servir à créer notre cluster ainsi que notre réplication de bases de données. Quelques points avant l installation IUT CHARLEMAGNE Page 52 Licence Pro ASRALL

54 de Percona XtraDB Cluster, Percona prend en support les architectures suivantes : x86-64 (amd64) x86 Ce logiciel est compatible avec les systèmes suivants : Debian : 6.0 squeeze 7.0 wheezy Ubuntu : LTS lucid 12.04LTS precise saucy LTS trusty Pour commencer l installation, il faut en premier lieu ajouter les clés, pour cela il faut faire : apt-key adv keyserver keys.gnupg.net recv-keys 1C4CBDCDCD2EFD2A Ou bien alors ajouter les sources à la main dans /etc/apt/sources.list Et si cela ne fonctionne toujours pas sous Debian, il y existe une dernière solution ; télécharger le ficher percona-release_0.1-3.wheezy_all.deb et ensuite l exécuter avec la commande dpkg -i deb http ://repo.percona.com/apt VERSION main deb-src http ://repo.percona.com/apt VERSION main Ensuite il faut faire la commande suivante : apt-get update Suite à ces commandes nous pouvons passer à l installation de Percona XtraDB Cluster, pour se faire rien de plus simple : sudo apt-get install percona-xtradb-cluster-55 Pour Ubuntu ce sera : sudo apt-get install percona-xtradb-cluster-55 percona-xtradb-cluster-galera-2.x La configuration du cluster Suite à l installation de Percona XtraDB Cluster il faut réaliser la configuration des noeuds, pour se faire il faut configurer chaque noeud un à un. Voici les noeuds de notre configuration : Figure 14.6 Machines utilisées pour notre cluster Pour la configuration des noeuds il faut modifier le fichier suivant : /etc/mysql/my.cnf Avec votre éditeur de texte préféré, modifier my.cnf. Pour commencer voici un exemple de configuration pour notre noeud N 1 : Après avoir modifié my.cnf il faut redémarrer le service avec la commande suivante : /etc/init.d/mysql bootstrap-pxc en plus de redémarrer le service, cette commande initialise le cluster. Ensuite nous allons vérifier le statut IUT CHARLEMAGNE Page 53 Licence Pro ASRALL

55 Figure 14.7 Configuration du noeud 1 du cluster dans MySQL avec la commande suivante : show status like wsrep% ;. Nous devons avoir un résultat comme celui-ci : Figure 14.8 Vérification du noeud 1 Puis ensuite il faut ajouter des droits pour que les prochains noeuds puissent avoir les mêmes droits que le premier noeud. Pour cela il faut créer un user, ici nous allons prendre pour exemple les commandes utilisées lors de cette création de user. Donc nous avons : 1. CREATE USER giroud4.asrall.iutnc.univ-lorraine.fr IDENTIFIED BY pomme ; 2. ensuite il faut attribuer les droits et la réplication : GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO giroud4.asrall.iutnc.univ-lorraine.fr ; 3. Et maintenant il lui faut tous les privilèges : FLUSH PRIVILEGES ; Après avoir attribué les droits au nouvel utilisateur, il faut maintenant configurer le noeud 2. Comme le premier noeud il faut modifier le fichier my.conf. Voici la configuration du noeud 2 : Après avoir configuré le noeud 2, relancer le service comme ceci : /etc/init.d/mysql start. Comme le noeud 1, vérifier le statut du cluster toujours avec la commande : show status like wsrep% ; (dans MySQL).Nous avons donc IUT CHARLEMAGNE Page 54 Licence Pro ASRALL

56 Figure 14.9 Configuration du noeud 2 Figure Vérification de l intégration dans le cluster via MySQL Nous pouvons donc voir que le noeud N 2 fait maintenant parti du cluster! Ensuite pour le dernier noeud (le N 3) nous allons une nouvelle fois modifier le fichier de configuration my.conf. Notre configuration pour le noeud 3 est la suivante : IUT CHARLEMAGNE Page 55 Licence Pro ASRALL

57 Figure Configuration du noeud 3 Comme pour le noeud précédent, relancer le service avec une nouvelle fois la commande /etc/init.d/mysql start Nous allons faire une ultime vérification pour voir si la noeud N 3 est bien intégré dans le cluster avec la commande show status like wsrep% ; Nous pouvons maintenant constater Figure Vérification de l intégration dans le cluster via MySQL que le noeud 3 est bien intégré dans le cluster! Test de la réplication Après l installation de notre cluster, voici le moment important à tester, la réplication. Pour cela, nous allons réaliser un ensemble de requétes SQL et voir comment réagit notre cluster. Pour commencer, nous allons créer une base de données sur le noeud 2, pour cela rien de plus simple : IUT CHARLEMAGNE Page 56 Licence Pro ASRALL

58 Figure Création d une base L étape suivante est d aller sur l un des deux autres noeuds (ici nous allons prendre le noeud 1) et créer une table dans la base Percona. Figure Création d une table Et la dernière étapes (il faut tester tous nos noeuds pour être sûr) nous allons insérer des données dans la table Percona. Figure Insertion de données Maintenant, la verification ultime, nous allons vérifier que les données ont été répliquées, pour cela nous allons nous connecter sur un noeud, par exemple le N 3. Figure Vérification Et voila! Nous pouvons constater que notre cluster est fonctionnel ainsi que la réplication! Grâce à cette partie nous avons pu voir que nous avons pu mettre en place assez facilement un cluster de base de données avec Percona ainsi qu une réplication des bases de données Autres dnsmasq Nous avons installé dnsmasq par les paquets. La configuration de service est également très simple. IUT CHARLEMAGNE Page 57 Licence Pro ASRALL

Architecture pour l hébergement web à fort trafic

Architecture pour l hébergement web à fort trafic Architecture pour l hébergement web à fort trafic Auteurs : Dupont Francois, Giroud Gabriel, Luc Aymeric, Nonet Guillaume Tuteur : Patrick Nourissier 18 mars 2015 Résumé Dans une entreprise, tous les services

Plus en détail

Bénéfices de Citrix NetScaler pour les architectures Citrix

Bénéfices de Citrix NetScaler pour les architectures Citrix Bénéfices de Citrix NetScaler pour les architectures Citrix 15 novembre 2007 Auteurs: Mahmoud EL GHOMARI E-mail: mahmoud.elghomari@eu.citrix.com Stéphane CAUNES E-mail: stephane.caunes@eu.citrix.com Riad

Plus en détail

«clustering» et «load balancing» avec Zope et ZEO

«clustering» et «load balancing» avec Zope et ZEO IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4

Plus en détail

VMWare Infrastructure 3

VMWare Infrastructure 3 Ingénieurs 2000 Filière Informatique et réseaux Université de Marne-la-Vallée VMWare Infrastructure 3 Exposé système et nouvelles technologies réseau. Christophe KELLER Sommaire Sommaire... 2 Introduction...

Plus en détail

Zabbix. Outil de supervision réseau. Vincent Bernat Vincent.Bernat@wallix.com. July 13, 2007. Zabbix. V. Bernat. Supervision.

Zabbix. Outil de supervision réseau. Vincent Bernat Vincent.Bernat@wallix.com. July 13, 2007. Zabbix. V. Bernat. Supervision. Outil de supervision réseau Vincent Bernat Vincent.Bernat@wallix.com July 13, 2007 Plan 1 La supervision 2 3 Un exemple de Plan 1 La supervision 2 3 Un exemple de Pourquoi superviser? détecter les pannes

Plus en détail

Etude d architecture de consolidation et virtualisation

Etude d architecture de consolidation et virtualisation BOUILLAUD Martin Stagiaire BTS Services Informatiques aux Organisations Janvier 2015 Etude d architecture de consolidation et virtualisation Projet : DDTM Table des matières 1. Objet du projet... 3 2.

Plus en détail

Unitt www.unitt.com. Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données

Unitt www.unitt.com. Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données La meilleure protection pour les données vitales de votre entreprise Autrefois, protéger ses données de manière optimale coûtait

Plus en détail

CONFIGURATION P 2 P 3 P 3 P 10 P 11 P 13 P 14 P 16

CONFIGURATION P 2 P 3 P 3 P 10 P 11 P 13 P 14 P 16 CONFIGURATION 1 Présentation 2 Topologie du projet 3 Installation 4 Configuration 4.1 Création de la DMZ publique 4.2 Accès vers l Internet 4.3 Publication d Exchange 4.4 Rapports d activité et alertes

Plus en détail

Cluster High Availability. Holger Hennig, HA-Cluster Specialist

Cluster High Availability. Holger Hennig, HA-Cluster Specialist Cluster High Availability Holger Hennig, HA-Cluster Specialist TABLE DES MATIÈRES 1. RÉSUMÉ...3 2. INTRODUCTION...4 2.1 GÉNÉRALITÉS...4 2.2 LE CONCEPT DES CLUSTERS HA...4 2.3 AVANTAGES D UNE SOLUTION DE

Plus en détail

[WEB4ALL PRESENTATION ET TARIFS VPS INFOGERES]

[WEB4ALL PRESENTATION ET TARIFS VPS INFOGERES] 04.01.2015 [Association Web4all] Siret : 508070679 00032 NAF : 8559B TVA : FR 27508070679 PONCINI Aurélien contact@web4all.fr www.web4all.fr [WEB4ALL PRESENTATION ET TARIFS VPS INFOGERES] [Association

Plus en détail

DOCUMENTATION TECHNIQUE

DOCUMENTATION TECHNIQUE DOCUMENTATION TECHNIQUE Installation et configuration d un serveur OCS Inventory et GLPI Active Directory et DHCP Benjamin Dupuy BTS Services Informatiques aux Organisations Option : Solutions d infrastructures,

Plus en détail

Tests de montée en charge & Haute disponibilité

Tests de montée en charge & Haute disponibilité V1.7 Tests de montée en charge & Haute disponibilité Appliqués à l ENT de Paris Descartes ESUP-Days 13 8 Fév 2012 Sommaire Contexte et enjeux à Paris Descartes Une architecture Apache/Tomcat en «load balancing»

Plus en détail

DUCLOUX Gilles PPE ITESCIA. Activité 2-1 : Option SISR (Joseph Sammartano) KOS INF

DUCLOUX Gilles PPE ITESCIA. Activité 2-1 : Option SISR (Joseph Sammartano) KOS INF DUCLOUX Gilles PPE ITESCIA Activité 2-1 : Option SISR (Joseph Sammartano) KOS INF Table des matières Rôle, intérêt et solutions techniques concernant la mise en place d un réseau intermédiaire (DMZ)..

Plus en détail

Manuel de System Monitor

Manuel de System Monitor Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation

Plus en détail

Joomla : un système de gestion de contenu

Joomla : un système de gestion de contenu CHAPITRE 2 Joomla : un système de gestion de contenu Si SGC est l abréviation française pour système de gestion de contenu, l abréviation CMS de l anglais Content Management System est le terme le plus

Plus en détail

BLANCHON Enzo et GRIMAUD Bastien INSTALLATION LOGICIEL SOUS LINUX

BLANCHON Enzo et GRIMAUD Bastien INSTALLATION LOGICIEL SOUS LINUX BLANCHON Enzo et GRIMAUD Bastien INSTALLATION LOGICIEL SOUS LINUX Sommaire Installation depuis un dépôt (P 3-4) 1 Qu est-ce que c est un dépôt? (P 3) 2 Procédure d installation (P 3-4) 1 Rendre accessible

Plus en détail

ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges. c Copyleft 2006, ELSE Team

ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges. c Copyleft 2006, ELSE Team ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges c Copyleft 2006, ELSE Team 18 avril 2006 Table des matières 1 Introduction 2 2 Présentation du projet 3 2.1 Une distribution Évolulable..................

Plus en détail

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

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement COREYE CACHE Solution d absorption de charge pour une disponibilité et une performance optimales des applications Web En bref Architecture technique La plateforme Coreye Cache délivre la majeure partie

Plus en détail

de survie du chef de projet

de survie du chef de projet KIT de survie du chef de projet 01 1 2 3 4 5 6 04 03 07 07 03 03 LE SERVEUR LE CLIENT TECHNOLOGIE WEB CLIENT LE SERVEUR WEB TECHNIQUES & CADRE DE TRAVAIL APPLICATIONS 101 LE SERVEUR Un serveur informatique

Plus en détail

Architectures en couches pour applications web Rappel : Architecture en couches

Architectures en couches pour applications web Rappel : Architecture en couches Rappel : Architecture en couches Une architecture en couches aide à gérer la complexité : 7 Application 6 Presentation 5 Session Application Les couches hautes dépendent des couches basses 4 Transport

Plus en détail

Contenu. Introduction au système de gestion de contenu Jommla! (Partie I) Kaveh Bazargan

Contenu. Introduction au système de gestion de contenu Jommla! (Partie I) Kaveh Bazargan Introduction au système de gestion de contenu Jommla! (Partie I) Kaveh Bazargan 2 juin 2009, UNIGE 1 Contenu Introduction & motivation Définition & quelques chiffres Domaines d utilisation et exemples

Plus en détail

Créez et administrez vos sites Web

Créez et administrez vos sites Web Joomla! 3.3 Créez et administrez vos sites Web Didier MAZIER Table des matières.. 1 Chapitre 1 : Découvrir Joomla! A. Les raisons de créer un site sous Joomla!.. 9 B. Se documenter sur Joomla! 9 C. La

Plus en détail

FileMaker Server 14. Guide de démarrage

FileMaker Server 14. Guide de démarrage FileMaker Server 14 Guide de démarrage 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques

Plus en détail

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

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau Performances PHP Julien Pauli Cyril Pierre de Geyer Guillaume Plessis Préface d Armel Fauveau Groupe Eyrolles, 2012, ISBN : 978-2-212-12800-0 Table des matières Avant-propos... 1 Pourquoi ce livre?.....................................................

Plus en détail

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

Choisir la solution d hébergement et de support faite pour vous acquia.com/fr Acquia Cloud: la fondation de votre succès La plate-forme open-cloud d Acquia offre évolutivité, sécurité et haute performance aux sites Drupal, quelque soit leur importance. Acquia Cloud

Plus en détail

«Clustering» et «Load balancing» avec Zope et ZEO

«Clustering» et «Load balancing» avec Zope et ZEO «Clustering» et «Load balancing» avec Zope et ZEO IN53 Printemps 2003 1 Python : généralités 1989 : Guido Van Rossum, le «Python Benevolent Dictator for Life» Orienté objet, interprété, écrit en C Mêle

Plus en détail

Fiche Technique. Cisco Security Agent

Fiche Technique. Cisco Security Agent Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit

Plus en détail

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

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site

Plus en détail

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

Joomla! Création et administration d'un site web - Version numérique Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique

Plus en détail

Serveurs dédiés. Trafic et performances

Serveurs dédiés. Trafic et performances Serveurs dédiés Trafic et performances Nos services sont destinés aux entreprises et particuliers exigeants en terme de fiabilité, de sécurité et de disponibilité. Nous sommes également à même de fournir

Plus en détail

Installation technique et démarrage HP Services de mise en œuvre de HP OpenView Performance Insight

Installation technique et démarrage HP Services de mise en œuvre de HP OpenView Performance Insight Installation technique et démarrage HP Services de mise en œuvre de HP OpenView Performance Insight Les experts en gestion des services HP apportent au client les compétences et les connaissances nécessaires

Plus en détail

Release Notes POM v5

Release Notes POM v5 Release Notes POM v5 POM Monitoring http://www.pom-monitoring.com Ce document est strictement réservé à l usage de la société POM Monitoring. Il ne peut être diffusé ou transféré sans l autorisation écrite

Plus en détail

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source Jérôme Petit, Serge Petit & Serli Informatique, ITMatic Jérôme Petit, Serge Petit & SERLI & ITMatic Serli : SSII

Plus en détail

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2). Nom du projet : Zabbix Description : ZABBIX est un logiciel open source créé par Alexei Vladishev. Zabbix permet de surveiller le statut de divers services réseau, serveurs et autres matériels réseau.

Plus en détail

Windows 2008 server -Introduction-

Windows 2008 server -Introduction- Windows 2008 server -Introduction- Rappel sur les systèmes d exploitation Un système d exploitation (Operating System) est un ensemble de programmes responsables de la liaison entre les ressources matérielles

Plus en détail

Sécurisation du réseau

Sécurisation du réseau Sécurisation du réseau La sécurisation du réseau d entreprise est également une étape primordiale à la sécurisation générale de votre infrastructure. Cette partie a pour but de présenter les fonctionnalités

Plus en détail

Systèmes de fichiers distribués : comparaison de GlusterFS, MooseFS et Ceph avec déploiement sur la grille de calcul Grid 5000.

Systèmes de fichiers distribués : comparaison de GlusterFS, MooseFS et Ceph avec déploiement sur la grille de calcul Grid 5000. : comparaison de, et avec déploiement sur la grille de calcul Grid 5000. JF. Garcia, F. Lévigne, M. Douheret, V. Claudel 30 mars 2011 1/34 Table des Matières 1 2 3 4 5 6 7 1/34 Présentation du sujet Présentation

Plus en détail

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG EHRHARD Eric - Gestionnaire Parc Informatique 1 Possibilités d OCS Inventory. Informations d'inventaire pertinentes.

Plus en détail

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox Version utilisée pour la Debian : 7.7 Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox Caractéristiques de bases : Un service web (ou service de la toile) est

Plus en détail

IBM Tivoli Storage Manager

IBM Tivoli Storage Manager Maintenir la continuité des affaires grâce à une gestion efficace et performante du stockage IBM Tivoli Storage Manager POINTS FORTS Accroît la continuité des affaires en réduisant les temps de sauvegarde

Plus en détail

Guide d utilisation simplifié de la solution EyesOfNetwork

Guide d utilisation simplifié de la solution EyesOfNetwork Guide d utilisation simplifié de la solution EyesOfNetwork Sommaire Présentation générale... 2 Lexique termes utilisés... 2 Les liens utiles... 2 Les sauvegardes... 3 Utilisation et configuration NAGIOS...

Plus en détail

Base de connaissances

Base de connaissances Base de connaissances Page 1/14 Sommaire Administration du système... 3 Journalisation pour le débogage... 3 Intellipool Network Monitor requiert-il un serveur web externe?... 3 Comment sauvegarder la

Plus en détail

La répartition de charge (Cluster NLB)

La répartition de charge (Cluster NLB) La répartition de charge (Cluster NLB) La répartition de charge devient indispensable quand un seul serveur ne suffit plus pour tenir la charge ou maintenir un temps de réponse acceptable. Si le besoin

Plus en détail

Gestion du serveur WHS 2011

Gestion du serveur WHS 2011 Chapitre 15 Gestion du serveur WHS 2011 Les principales commandes Windows Home Server 2011 reprend l ergonomie de Windows 7 et intègre les principales commandes de Windows Server 2008 R2. Les commandes

Plus en détail

Un concept multi-centre de données traditionnel basé sur le DNS

Un concept multi-centre de données traditionnel basé sur le DNS Confiez vos activités critiques à un expert S il est crucial pour vos activités commerciales que vos serveurs soient disponibles en continu, vous devez demander à votre hébergeur de vous fournir une solution

Plus en détail

DOCUMENTATION PROJET SERVEURS WEB APACHE2. Voiset Nicolas BASINFORMATIQUE CARPENTRAS

DOCUMENTATION PROJET SERVEURS WEB APACHE2. Voiset Nicolas BASINFORMATIQUE CARPENTRAS DOCUMENTATION PROJET SERVEURS WEB APACHE2 Voiset Nicolas BASINFORMATIQUE CARPENTRAS SUIVI DU DOCUMENT MISES A JOUR Version Date Auteurs Objet de la mise à jour 1.0 10/02/2015 Nicolas Voiset Version initiale.

Plus en détail

Guide d utilisation. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP.

Guide d utilisation. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP. -- 1 -- Lycée Bahuet Table des matières Avant propos... - 5 - Démarrage d Ubuntu...

Plus en détail

Installer Joomla. Étape 1 : choix de la langue d installation

Installer Joomla. Étape 1 : choix de la langue d installation CHAPITRE 4 Installer Joomla L installation de Joomla se déroule en sept étapes : 1. choix de la langue d installation ; 2. vérification des prérequis ; 3. présentation de la licence publique générale GNU

Plus en détail

«Scale-to-fit» Storage

«Scale-to-fit» Storage LIVRE BLANC «Scale-to-fit» Storage Faites évoluer votre stockage de façon totalement transparente grâce au «Scale-to-Fit» de Nimble Storage. Ce livre blanc explique comment les solutions Nimble Storage

Plus en détail

itop : la solution ITSM Open Source

itop : la solution ITSM Open Source itop : la solution ITSM Open Source itop est un portail web multi-clients conçu pour les fournisseurs de services et les entreprises. Simple et facile d utilisation il permet de gérer dans une CMDB flexible

Plus en détail

Le client/serveur repose sur une communication d égal à égal entre les applications.

Le client/serveur repose sur une communication d égal à égal entre les applications. Table des matières LES PRINCIPES DE BASE... 1 Présentation distribuée-revamping...2 Présentation distante...3 Traitements distribués...3 données distantes-rd...4 données distribuées-rda distribué...4 L'ARCHITECTURE

Plus en détail

Retour d expérience sur Prelude

Retour d expérience sur Prelude Retour d expérience sur Prelude OSSIR Paris / Mathieu Mauger Consultant Sécurité (Mathieu.Mauger@intrinsec.com) Guillaume Lopes Consultant Sécurité (Guillaume.Lopes@Intrinsec.com) @Intrinsec_Secu 1 Plan

Plus en détail

SUPERVISION. Centreon 5.9

SUPERVISION. Centreon 5.9 SUPERVISION Centreon 5.9 Steven DELAPRUNE BTS SIO 11/03/2015 Sommaire CAHIER DES CHARGES... 3 INTRODUCTION... 3 PRINCIPES GENERAUX... 3 Définition... 3 Problématique... 3 Description du besoin... 3 Solution...

Plus en détail

Sommaire. 1 Introduction 19. 2 Présentation du logiciel de commerce électronique 23

Sommaire. 1 Introduction 19. 2 Présentation du logiciel de commerce électronique 23 1 Introduction 19 1.1 À qui s adresse cet ouvrage?... 21 1.2 Comment est organisé cet ouvrage?... 22 1.3 À propos de l auteur... 22 1.4 Le site Web... 22 2 Présentation du logiciel de commerce électronique

Plus en détail

Répartition des charges avec HaProxy CONTEXTE MFC JULIEN HUBERT

Répartition des charges avec HaProxy CONTEXTE MFC JULIEN HUBERT 2015 Répartition des charges avec HaProxy CONTEXTE MFC JULIEN HUBERT Développée par le français Willy Tarreau en 2002, HAProxy est une solution libre, fiable et très performante de répartition de charge

Plus en détail

Docker partie 2. Journée ARGOS 11/12/2014. Gaël Beauquin CNRS/DSI

Docker partie 2. Journée ARGOS 11/12/2014. Gaël Beauquin CNRS/DSI Docker partie 2 Journée ARGOS 11/12/2014 Gaël Beauquin CNRS/DSI Sommaire 1. Fonctionnalités avancées 2. Gestion des ressources avec Docker 3. Logs sous Docker 4. Docker et la sécurité 5. Optimiser ses

Plus en détail

Architecture Constellio

Architecture Constellio Architecture Constellio Date : 12 novembre 2013 Version 3.0 Contact : Nicolas Bélisle nicolas.belisle@doculibre.com 5146555185 1 Table des matières Table des matières... 2 Présentation générale... 4 Couche

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

MANUEL D INSTALLATION D UN PROXY

MANUEL D INSTALLATION D UN PROXY MANUEL D INSTALLATION D UN PROXY Squid, SquidGuard, Dansguardian Dans ce guide on va détailler l installation et la configuration d une solution proxy antivirale en utilisant les outils ; squid, dansguardian,

Plus en détail

Avantages. Protection des réseaux corporatifs de gestion centralisée

Avantages. Protection des réseaux corporatifs de gestion centralisée Protégez votre univers Protection des réseaux corporatifs de gestion centralisée Avantages Gestion centralisée de protection des postes de travail des serveurs de fichier Windows et des serveurs de messagerie

Plus en détail

White Paper - Livre Blanc

White Paper - Livre Blanc White Paper - Livre Blanc Développement d applications de supervision des systèmes d information Avec LoriotPro Vous disposez d un environnement informatique hétérogène et vous souhaitez à partir d une

Plus en détail

WASD en environnement haute disponibilité Jean-Pierre PETIT WASD Le produit WASD WASD signifie Wide Area Surveillance Division C est le nom d une division de la défense australienne qui a accepté en 1996

Plus en détail

Présentation des solutions techniques mises en œuvre. Solution de sauvegarde

Présentation des solutions techniques mises en œuvre. Solution de sauvegarde Présentation des solutions techniques mises en œuvre. Solution de sauvegarde 2014 Sommaire I. Description des services complémentaires...3 II. Schéma d infrastructure réseau...4 III. Détail des configurations

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada MySQL (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

Installation d Oracle 10g XE

Installation d Oracle 10g XE 8 Installation d Oracle 10g XE Dans cette annexe : les apports d Oracle XE (Express Edition) ; les principales différences entre Oracle XE et les autres versions Oracle ; le parcours de lecture de l ouvrage

Plus en détail

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011 Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011 Sommaire 1 Un peu de théorie 3 1.1 Qu est-ce qu un reverse proxy?................. 3 1.1.1 Généralités........................

Plus en détail

ModSecurity. Cible de sécurité CSPN Version 0.96

ModSecurity. Cible de sécurité CSPN Version 0.96 Cible de sécurité CSPN Version 0.96 TABLE DES MATIERES 1 IDENTIFICATION... 3 1.1 IDENTIFICATION DE LA CIBLE DE SECURITE... 3 1.2 IDENTIFICATION DU PRODUIT... 3 2 ARGUMENTAIRE (DESCRIPTION) DU PRODUIT...

Plus en détail

Fiche Technique Windows Azure

Fiche Technique Windows Azure Le 25/03/2013 OBJECTIF VIRTUALISATION mathieuc@exakis.com EXAKIS NANTES Identification du document Titre Projet Date de création Date de modification Fiche Technique Objectif 25/03/2013 27/03/2013 Windows

Plus en détail

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle Besoin de concevoir des systèmes massivement répartis. Évaluation de systèmes répartis à large échelle Sergey Legtchenko Motivation : LIP6-INRIA Tolérance aux pannes Stockage de données critiques Coût

Plus en détail

IBM WebSphere MQ File Transfer Edition, Version 7.0

IBM WebSphere MQ File Transfer Edition, Version 7.0 Transfert de fichiers administré pour architecture orientée services (SOA) IBM, Version 7.0 Solution de transport polyvalente pour messages et fichiers Transfert de fichiers haute fiabilité basé sur la

Plus en détail

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft Virtual Server 2005 R2 Network Shutdown Module Système Principal (hôte) Virtual Server

Plus en détail

Exploitation de la ferme de serveurs Esxi

Exploitation de la ferme de serveurs Esxi BTS SIO SISR4 Page 1 Exploitation de la ferme de serveurs Esxi Table des matières 1. Objectif... 2 2. Paramètres préalables... 2 3. Création d un cluster... 2 4. Augmenter la taille des LUN... 2 4.1. Sur

Plus en détail

Configuration Matérielle et Logicielle AGORA V2

Configuration Matérielle et Logicielle AGORA V2 Configuration Matérielle et Logicielle AGORA V2 Sommaire A- PREAMBULE 2 B - LE SERVEUR : 3 PLATES-FORMES SERVEURS DE DONNEES SUPPORTEES... 3 MOTEUR DE BASE DE DONNEES... 3 PROTOCOLES RESEAUX... 3 VERSION

Plus en détail

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2

Plus en détail

Load Balancing. Table des matières. Gatien, Julien, Rémi, Vincent. 2 mars 2009. 1 Le projet 2. 2 L'équilibrage de charge 2.

Load Balancing. Table des matières. Gatien, Julien, Rémi, Vincent. 2 mars 2009. 1 Le projet 2. 2 L'équilibrage de charge 2. Load Balancing Gatien, Julien, Rémi, Vincent 2 mars 2009 Table des matières 1 Le projet 2 2 L'équilibrage de charge 2 3 Algorithmes 2 4 État de l'art 3 4.1 LVS..........................................

Plus en détail

La continuité de service

La continuité de service La continuité de service I INTRODUCTION Si la performance est un élément important de satisfaction de l'utilisateur de réseau, la permanence de la disponibilité des ressources l'est encore davantage. Ici

Plus en détail

Activité - Serveur sous Linux Suse

Activité - Serveur sous Linux Suse Activité - Serveur sous Linux Suse Configuration de services réseaux Problématique : Configurer les services réseaux (DHCP, SAMBA, APACHE2) sur un serveur afin de répondre au besoin des postes clients

Plus en détail

1. La plate-forme LAMP

1. La plate-forme LAMP Servi ces pour intranet et Internet Ubuntu Linux - Création et gestion d un réseau local d entreprise 1. La plate-forme LAMP Services pour intranet et Internet La fourniture d'un site pour le réseau ou

Plus en détail

quelles conséquences pour la documentation en ligne?

quelles conséquences pour la documentation en ligne? Structure et évolutions de l Internet p.1/23 Structure et évolutions de l Internet quelles conséquences pour la documentation en ligne? JOËL MARCHAND jma@math.jussieu.fr GDS 2754 Mathrice Où en est l Internet?

Plus en détail

MACHINE VIRTUELLE VSPHERE. Projet Personnalisé Encadré 1

MACHINE VIRTUELLE VSPHERE. Projet Personnalisé Encadré 1 MACHINE VIRTUELLE VSPHERE Projet Personnalisé Encadré 1 Aymeric Blerreau 15/11/2013 1 TABLE DES MATIÈRES 2 Description... 2 3 Contexte... 3 3.1 Contexte... 3 3.2 Objectifs... 3 3.3 Solution envisageable...

Plus en détail

Fiche produit. Septembre 2010. Kiwi Pro en quelques mots

Fiche produit. Septembre 2010. Kiwi Pro en quelques mots Septembre 2010 Fiche produit La solution Kiwi Pro a été spécialement conçue pour répondre aux besoins les plus exigeants en terme de fiabilité et de performance, avec une capacité de traitement optimale

Plus en détail

FileMaker 12. Guide ODBC et JDBC

FileMaker 12. Guide ODBC et JDBC FileMaker 12 Guide ODBC et JDBC 2004-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

BTS SIO. Services Informatiques aux Organisations. Session 2013-2014

BTS SIO. Services Informatiques aux Organisations. Session 2013-2014 BTS SIO Services Informatiques aux Organisations Session 2013-2014 Option : SISR Activités professionnelle N 3 NATURE DE L'ACTIVITE : Contexte : Actuellement American Dental Product n a aucune solution

Plus en détail

Cloud public d Ikoula Documentation de prise en main 2.0

Cloud public d Ikoula Documentation de prise en main 2.0 Cloud public d Ikoula Documentation de prise en main 2.0 PREMIERS PAS AVEC LE CLOUD PUBLIC D IKOULA Déployez vos premières instances depuis l interface web ou grâce à l API. V2.0 Mai 2015 Siège Social

Plus en détail

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014 22 février 2014 Table des matières 1 2 est un logiciel libre (licence GPL) de virtualisation. Il permet de créer des machines virtuelles, qu on peut se représenter comme des "sous-ordinateurs", fonctionnant

Plus en détail

Installation et configuration de base de l active Directory

Installation et configuration de base de l active Directory SCHMITT Année 2012/2014 Cédric BTS SIO Installation et configuration de base de l active Directory Description: Ce projet a pour but d installer l active directory et de créer une redondance en cas de

Plus en détail

Administrateur Système et Réseau

Administrateur Système et Réseau Titre professionnel : Reconnu par l Etat de niveau II (Bac), inscrit au RNCP (arrêté du 28/01/09, J.O. n 32 du 07/02/09) (53 semaines) page 1/7 Unité 1 : Gestion du poste de travail 4 semaines Module 1

Plus en détail

DATASET / NETREPORT, propose une offre complète de solutions dans les domaines suivants:

DATASET / NETREPORT, propose une offre complète de solutions dans les domaines suivants: Présentation Société DATASET / NETREPORT, propose une offre complète de solutions dans les domaines suivants: Outils d aide à la décision Gamme DATASET Solutions de gestion temps réel du système d information

Plus en détail

Cahier de charges Projet 24

Cahier de charges Projet 24 Cahier de charges Projet 24 Répartition automatique de surcharge sur serveur web virtualisé Etudiants : KAOUACHI Youssef ELFELLAH Amine Encadré par : M. HAYEL Yezekael Année universitaire : 2008/2009 I-

Plus en détail

Surveiller les applications et les services grâce à la surveillance réseau

Surveiller les applications et les services grâce à la surveillance réseau Surveiller les applications et les services grâce à la surveillance réseau Livre Blanc Auteur : Daniel Zobel, Responsable du Développement Logiciel, Paessler AG Publication : Mars 2014 PAGE 1 SUR 9 Sommaire

Plus en détail

Installation d'un serveur Forefront Threat Management Gateway 2010 (TMG 2010)

Installation d'un serveur Forefront Threat Management Gateway 2010 (TMG 2010) Installation d'un serveur Forefront Threat Management Gateway 2010 (TMG 2010) Par LoiselJP Le 01/05/2013 1 Objectifs Ce document décrit le plus succinctement possible une manière, parmi d'autres, d installer

Plus en détail

Sauvegarde et restauration en environnement VMware avec Avamar 6.0

Sauvegarde et restauration en environnement VMware avec Avamar 6.0 Livre blanc Sauvegarde et restauration en environnement VMware avec Avamar 6.0 Analyse détaillée Résumé Dans les entreprises, les environnements virtuels sont de plus en plus déployés dans le cloud. La

Plus en détail

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO au Centre Inter-établissement pour les Services Réseaux Cédric GALLO En théorie Introduction Présentation de l ESXi VMFS Virtual Center Vsphere Client Converter Vmotion High Availability/DRS/DPM Gestion

Plus en détail

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service 10 tâches d administration simplifiées grâce à Windows Server 2008 R2 Faire plus avec moins. C est l obsession depuis plusieurs années de tous les administrateurs de serveurs mais cette quête prend encore

Plus en détail

IBM Tivoli Monitoring

IBM Tivoli Monitoring Surveiller et gérer les ressources vitales et les mesures sur diverses plates-formes à partir d une seule console IBM Tivoli Monitoring Points forts Surveille de manière proactive Aide à réduire les coûts

Plus en détail

Mise en place d un cluster. De basculement. Et DHCP Failover. Installation. Préparation. Vérification

Mise en place d un cluster. De basculement. Et DHCP Failover. Installation. Préparation. Vérification Mise en place d un cluster De basculement Et DHCP Failover Valentin Banse Thomas Haën-Boucher Thomas Bichon Présentation Installation Préparation B T S S I O 2 2 / 0 4 / 2 0 1 4 Configuration Vérification

Plus en détail

Serveur virtuel infogéré

Serveur virtuel infogéré Serveur virtuel infogéré Fiche produit 12 novembre 2010 Résumé Afin de garantir la disponibilité du serveur du client, nous proposons la mise à disposition d un serveur virtuel avec une infogérance complète

Plus en détail

Mise en place d une machine virtuelle avec vsphere

Mise en place d une machine virtuelle avec vsphere Mise en place d une machine virtuelle avec vsphere 15/11/2013 Par Aymeric BLERREAU Dans le cadre de l obtention du BTS SIO SISR Services Informatiques aux Organisation option Solution d Infrastructure,

Plus en détail