Architectures en couches pour applications web Rappel : Architecture en couches



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

Cisco Certified Network Associate

FORMATION CN01a CITRIX NETSCALER

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

Programmation Web. Introduction

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

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

CONCEPT de MICRO-DOMOTIQUE. Système STANTOR-DOMODULOR

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

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

Formation en Logiciels Libres. Fiche d inscription

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

Développement des Systèmes d Information

1.Introduction - Modèle en couches - OSI TCP/IP

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Tests de montée en charge & Haute disponibilité

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

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

Serveurs de noms Protocoles HTTP et FTP

SECURIDAY 2012 Pro Edition

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

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

Cours CCNA 1. Exercices

Informatique en nuage Cloud Computing. G. Urvoy-Keller

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

Répartition des charges avec HaProxy CONTEXTE MFC JULIEN HUBERT

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

Réseaux et protocoles Damien Nouvel

Hébergement d'application Web sur le Nuage AWS Les Meilleures Solutions

Livre Blanc WebSphere Transcoding Publisher

Le passage à l échelle de serveur J2EE : le cas des EJB

Firewall. Souvent les routeurs incluent une fonction firewall qui permet une première sécurité pour le réseau.

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

BTS SIO Dossier BTS. PURCHLA Romain

Services Réseaux - Couche Application. TODARO Cédric

Load Balancing MASSAOUDI MOHAMED CHAHINEZ HACHAICHI AMENI DHAWEFI ERIJ MAIJED EMNA BOUGHANMI

Guide de mise à. niveau. BlackBerry Enterprise Server pour IBM Lotus Domino. Version: 5.0 Service Pack: 4

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services

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

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Architecture et infrastructure Web

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Configuration de plusieurs serveurs en Load Balancing

Catalogue des Formations Techniques

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

SIP. Sommaire. Internet Multimédia

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

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

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

NOTIONS DE RESEAUX INFORMATIQUES

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

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Petite définition : Présentation :

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

BlackBerry Enterprise Server pour Microsoft Exchange

Troisième concours d ingénieur des systèmes d information et de communication. «Session 2010»

Ces deux machines virtuelles seront installées sous VMWARE WORKSTATION.

Guide d'installation et. de configuration. BlackBerry Enterprise Server pour Novell GroupWise. Version: 5.0 Service Pack: 4

Yann BECHET 32 ans 8 ans d expérience yann@bechet.org

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Architecture distribuée

Figure 1a. Réseau intranet avec pare feu et NAT.

NIMBUS TRAINING. Administration de Citrix NetScaler 10. Déscription : Objectifs. Publics. Durée. Pré-requis. Programme de cette formation

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

Manuel d'installation de Joomla 1.7

THEGREENBOW FIREWALL DISTRIBUE TGB::BOB! Pro. Spécifications techniques

Mise en œuvre des serveurs d application

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

PostgreSQL. Formations. Catalogue Calendrier... 8

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Le Network File System de Sun (NFS)

Développement d'un logiciel VoIP BlackBerry

Programme ASI Développeur

Introduction à. Oracle Application Express

Sécurité des réseaux Firewalls

Zimbra. S I A T. T é l : ( ) F a x : ( )

Chapitre 2 Rôles et fonctionnalités

SIP A. Aoun - La Visioconférence SIP - 1

Firewall Net Integrator Vue d ensemble

Graphes de trafic et Statistiques utilisant MRTG

Module 8. Protection des postes de travail Windows 7

et Groupe Eyrolles, 2006, ISBN :

Module BD et sites WEB

Armelin ASIMANE. Services RDS. de Windows Server 2012 R2. Remote Desktop Services : Installation et administration

Gérer une forte charge avec ez Publish Obtenir la meilleure réactivité de publication. Solutions natives ez. Solution spécifique.

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

de logiciels Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement iphone, Android WebApp HTML5 Mobile marketing

ABACUS vi Version Internet (release 2010)

Cisco Certified Network Associate

Architectures n-tiers Intergiciels à objets et services web

Formation : WEbMaster

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

Transcription:

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 Transport TCP Les couches basses ne dépendent pas des couches au-dessus 3 Network Internetwork IP Exemple Les couches de protocole du réseau 2 Data Link 1 Physical Link Ethernet Couches OSI Couches TCP/IP Exemples 49 Couches générales La couche présentation Gère les interaction entre l'utilisateur et le logiciel Est une interface HTML (+ JavaScript / AJAX) La couche logique domaine ou logique Fait des calculs, des validations et de la gestion Peut encapsuler la source de, mais normalement ce n'est pas le cas La couche source de Communique avec d'autres systèmes pour recevoir et envoyer des Généralement inclut un système de gestion de bases de pour stocker les persistantes 50

Exemple Exemple d'une application LAMP (Linux Apache MySQL PHP) Couche Implémentée en langage PHP PHP est implémenté comme module au sein du serveur web Apache Serveur 1 Apache Serveur 2 Navigateur mod_php MySQL client/server protocol MySQL Couche Également implémentée en PHP, mais séparée de la couche présentation Couche Essentiellement implémentée par la base de MySQL 51 Couches générales Les dépendances sont importantes : les couches et source de ne devraient rient savoir sur la couche présentation En maintenant cette séparation nous pouvons échanger notre interface web pour une nouvelle quand nous voulons, sans changer la logique ou le modèle de En termes de distribution physique des couches : Toutes les couches tournent généralement sur le côté serveur Avec Ajax et technologies associées une partie de la couche présentation peut s'exécuter sur le côte client. dépend de dépend de 52

Répartition sur les serveurs Parfois on utilise le terme tier (anglais) au lieu du terme couche Le terme tier implique généralement une séparation physique, tandis qu'une couche est seulement logique Serveur 1 Serveur 2 Répartition sur 2 tiers Serveur 1 Serveur 2 Serveur 3 Répartition sur 3 tiers : Architecture 3 tiers 53 Modules sans état (stateless) Introduction Le protocole est un exemple d'un protocole sans état (stateless) Cette notion s'applique aussi aux modules qui composent une application web Définition Un module d'une application web est sans état (stateless) si le traitement d'une requête venant du client est indépendant des requêtes précédentes. Le module ne doit pas gérer une notion de session ou conversation. Un module qui gère un état est appelé stateful. Avantages Simplicité (scalability) Permet d'utiliser le caching En pratique Beaucoup d'applications simples ne nécessitent pas d'état Toutes les applications qui demandent à l'utilisateur de faire un login le nécessitent Parfois on peut rendre un module stateless en stockant l'état à l'aide du client Dans des cookies Dans des paramètres du URI Dans des champs cachés d'un formulaire Ne fonctionne pas bien pour des grandes quantités de. 54

Traitement parallèle (scale-out) Il est très facile de rendre un module qui est stateless évolutif (scalable) Augmentation du nombre de serveurs Traitement en parallèle Distribution de la charge Exemple : Scale-out de la couche présentation Équilibreur de charge statless stateful stateful 55 Équilibreur de charge (load balancer) Un équilibreur de charge (load balancer) pour applications web Agit comme un proxy : Pour le client il parait comme un serveur qui répond aux requêtes En réalité il relaie une requête vers un des serveurs (et les réponses en sens inverse) Les requêtes suivantes sont envoyées à d'autres serveurs à tour de rôle L'équilibreur de charge doit avoir une idée de la charge et de la santé de chaque serveur : monitoring Monitoring des connexions pour estimer la charge Pings réguliers pour détecter les failles La politique de distribution des requêtes (scheduling policy) est généralement configurable. Exemples: Moindre charge Sticky sessions (voir plus loin) Il faut éviter que l'équilibreur de charge luimême devienne un single point of failure. Scale-out de l'équilibreur de charge sur plusieurs serveurs DNS round-robin 56

Équilibreur de charge (load balancer) Si le traitement des requêtes par l'application web est stateless l'équilibreur de charge est libre dans sa politique de scheduling Généralement on choisit une politique de moindre charge Vrai aussi pour les application web stateful avec synchronisation (p. ex. par une base de commune, un système de fichiers distribué commun) Les applications stateful sans synchronisation (avec gestion de session) nécessitent la coopération de l'équilibreur de charge pour éviter qu'une paire clientserveur soit déchirée au milieu d'une session Politique sticky sessions Les requêtes d'un même client seront envoyées vers le même serveur Durant un certain temps qui correspond au temps de session Mécanismes utilisés par l'équilibreur de charge Cookies URI rewrite 57 Équilibreur de charge en tant que service AWS offre un équilibreur de charge en tant que service : Elastic Load Balancing (ELB) Un ELB permet de distribuer des requêtes client entre plusieurs instances EC2 Les clients envoient leur requêtes vers le nom de domaine du ELB Le ELB relaie les requêtes vers les instances EC2 Le nombre d'instances peut augmenter et diminuer dynamiquement : élasticité (elasticity) 58