Architecture et infrastructure Web par Patrice Caron http://www.patricecaron.com pcaron@patricecaron.com
Ordre du jour Entreprises / Gouvernements Introduction: Architecture orientée services? Quelques concepts d'architecture et d'infrastucture Exemple d'infrastructure Web «ouverte» intégrant des composantes «fermé» «Bâtir autour de standards ouverts?» «Comprenez ce que l'opensource à pour vous.»
Ordre du jour
Défis Entreprises / Gouvernements Défi d'intégration et d'intéropabilité d'environnement hétérogène Défi d'intégration B2B, B2C, A2A Défi d'entreprise ouverte Défi lié à la dé périmétrisation du système d information
Architecture orientée services Architecture orientée services (AOS) Anglais: Service Oriented Architecture (SOA) Modèle d'interaction applicative qui met en œuvre des services avec une forte cohérence interne (format d'échange XML) couplages externes «lâches» (couche d'interface interopérable, souvent un service web WS *)
Architecture orientée services Composant clef: le service Le service est l'unité atomique Une application est un ensemble de services qui dialoguent entre eux Le service est codé dans n'importe quel langage Le service s'exécute sur n'importe quelle plateforme (matérielle et logicielle)
Les Services Web Cadre commun d'interopérabilité Ministère des services gouvernementaux «Les services Web forment une technologie émergente permettant à des applications de dialoguer à distance via internet, et ce, indépendamment des plates-formes sur lesquelles elles reposent. Les services Web visent à réduire les problèmes d interopérabilité en permettant à des applications de communiquer directement entre elles et d échanger des données indépendamment de leur localisation, des systèmes d exploitation ou des
Architecture orientée services On ne peut pas vraiment parler d'architecture orientée services (SOA) sans parler de gouvernance et de processus Aspect marketing des SOA Par contre, on peut parler d'architecture et d'infrastructure technologique en vue d'offrir des services orientés sur le Web en s'inspirant des grands principes des SOA.
Quelques concepts Architecture multi niveau (N-Tier) Haute disponibilité Séparation en couche Sécurité N-Tier Pare feu applicatif Système d'authentification unique (SSO) Service mandataire Portail de service Application composite Plate forme applicative
Architecture multi niveau Haute disponibilité Une des fonctions les plus importantes est de permettre la haute disponibilité de service: Infrastructure: redondance matérielle Processus: réduire erreurs accélérer la reprise
Haute disponibilité Permet la répartition de charge entre plusieurs serveurs Permet une tolérance aux pannes en cas de défaillance matériel ou logiciel Permet l'ajout de nouveaux serveurs à la demande afin d'augmenter la puissance de calcul de la «grappe» sans impact majeur sur l'architecture Permet de faciliter les entretiens sans empêcher le service de fonctionner
Architecture multi niveau Chaque niveau ne communique qu'avec ses voisins immédiats
Sécurité N-Tier Permet d'améliorer la sécurité des services en structurant/atomisant les intégrations entre les différentes couches d'un système Permet de faciliter la compréhension des échanges grâce à la mise en pratique de principe de modularité/couplage faible
Historiquement, sécurité autour du réseau Le risque est maintenant au niveau applicatif (XSS, Injection, logique et plus). Pare feux applicatif spécialisés dans le protocole HTTP Permet de filtrer les requêtes entrants(signature et comportenant d'attaque) ainsi que les réponses(retour d'erreur d'application) Négatif (acceptera toutes)/possitif (refusera toutes) Complète la révision de code Logiciel vs matériel SSL Sécurité Pare feu applicatif/firewall Applicatif Web
Authentification Système d'authentification unique (SSO) Éviter les authentifications multiple Évolue vers des mécanismes d'authentification «externalisés» Tendance d'abandonner une démarche «lourde» pour une démarche «légère» basée sur les Web Services Vers des mot de passe qui ne circule plus entre les applications (ticket à usage unique)
Authentification Méta répertoire Répertoire central: Convergence de l information d identité dans tous les stockages d identité connectés dans l entreprise Information sur les employés, clients, partenaires. Nécessaire pour SSO Standard LDAP
Service mandataire (Proxy) Proxy/reverse proxy Relayer des requêtes entre un poste client et un serveur / entre un serveur et un serveur Un proxy est spécialisé dans un protocole (http, xmmp, ldap, smtp, etc.) Permet généralement: mémoire cache ; la journalisation des requêtes («logging») ; la sécurité le filtrage
Portail de service Point d'entrée unique Point d'entrée unique pour les utilisateurs authentifié vers des ressources / services / applications Espaces de publication Personnalisation des contenus Première aspect: Le self service Notion de portail d'intégration SSO
Application composite (Mashup) Combine du contenu ou du service provenant de plusieurs applications plus ou moins hétérogènes Site Web: le principe d'un mashup est d'agréger du contenu provenant d'autres sites, afin de créer un site nouveau (RSS, AJAX, Web Service, etc.) Présentation: Combinent des éléments de sources multiples masqué dernière une GUI. Le plus connu (Google Maps) Données: Mélange provenant de différentes source pour présenter sous forme graphique ou non Commerce/public: Hydride présentation/données. Résultat final une application complète. Entreprise: Hydride avec couche collaborative(workflow). Source internes et externes. Application complète dans le cadre entreprise.
Plate forme applicative Software platform Plusieurs logiciels particuliers destinées à s'intégrer avec des applications / services / portails ECM, CMS, BI, GroupWare, GéoLocalisateur, VOIP, application maison, etc. etc.
Cas d'infrastructure Web Un cas commun Gouvernements / Entreprises Monde Oracle, Novell, Solaris et plus Besoin d'ouverture du système d'information Évolution vers un monde autour de les standards ouverts Vivre avec certains lègues. Voir utiliser les forces? Infrastructure technologique Web
Lègue Sun Offre: Système d'exploitation UNIX Gestion d'identité/sso (SunOne) Serveur/développement d'application (Autour de Java) Dans beaucoup de cas Solaris est présent comme plate forme UNIX Aujourd'hui Linux s'impose
Les lègues Oracle Offre: Base de données (SGBD) Gestion d'identité/sso (OID, etc.) Serveur/développement d'application (Forms, htmlbd, APEX, reports) Etc. Souvant utilisé: SGBD, OID, Forms Le SGBD demeure intéressant et bien supporté (Java, PHP, etc.)
Novell Novell Offre: Gestion poste (ZenWorks, GroupWise) Système d'exploitaton (NetWare) Gestion d'indentité/sso (Ichains/AM/Edir) OS: Novell à pris un virage avec Suse Linux SSO: ichains devient Access Manager (AM) edirectory est le méta répertoire d'entreprise et supporte LDAP
file:///users/pcaron/phpconf/res/apache.jpg file:///users/pcaron/phpconf/res/mysql.jpg file:///users/pcaron/phpconf/res/tomcat.jpg file:///users/pcaron/phpconf/res/typo3.jpg file:///users/pcaron/phpconf/res/caslogo.jpg file:///users/pcaron/phpconf/res/linux.jpg file:///users/pcaron/phpconf/res/php.jpg file:///users/pcaron/phpconf/res/java.jpg Open Source À votre service Linux, Apache, MySQL PHP Et encore Apache: Reverse proxy, mod_security OpenLdap Central authentification service Typo3 Memcached Java, Tomcat
Open Source LAMP Linux, Apache, MySQL PHP (On ne présente pas ça) Virtualisation Zend Core for Oracle Oracle APC Memcached
Open Source Apache + Reverse proxy: Proxy HTTP placé en frontal de serveurs web mod_security: Extension Apache qui permet d'analyser les requêtes HTTP, et de détecter certaines attaques potentielles sur les applications Web qu'apache peut héberger ou qu'apache peut protéger en mode reverse proxy
Open Source OpenLdap OpenLdap en mode proxy vers edirectory Permet de limiter l'accès à des branches Permet réécriture d'attributs Permet de la cache Évite de synchroniser des annuaires
Open Source Central authentification service CAS est un système d'authentification unique Basé sur des requêtes HTTP Notion d'échange de tickets, un peu à la manière de Kerberos Nombreuses bibliothèques et cliendt CAS (PHP, Java, Pl/SQL,.NET, module apache, PAM, etc.)
Open Source Typo3 Web CMS de type portail Typo3 comme portail de service Portail d'intégration / service web Ldap/SSO
Open Source Java/Tomcat Beaucoup et de plus en plus de projet de OpenSource de qualité tourne autour de Java.
Infrastucture N Tier Publique Internet, pare jeux principale Présentation SSL: Passage HTTPS vers HTTP Firewall applicatif Répartiteur de charge Réverse proxy/réécriture HTML Serveur de présentation Proxy CAS Application Cas Proxy LDAP Serveur d'application (PHP, Typo3, Java, etc.) Serveur de cache (Pour PHP) Interne
Conclusion Principes évolutifs et adaptable selon le contexte En construisant autour de standards ouverts on obtient une plus grande modularitée du système d'information. Exemple: En se basant sur le protocole LDAP, il sera possible de remplacer edirectory sans impact majeur sur l'infrastructure Web. Exemple: La plupart des solutions de cette présentation, sont interchangable. Software vers hardware, propriétaire vers libre, etc. Profiter du monde des Logiciels Libres et de l'opensource intelligement À double sens Adapter à votre situation! Sujet d'intérêt: BPMS (Voir le projet OpenSource Intalio)
Conclusion Pour terminer avec les «SOA» BPMS (Voir le projet OpenSource Intalio)
file:///users/pcaron/phpconf/res/typo3.jpg file:///users/pcaron/phpconf/res/mysql.jpg file:///users/pcaron/phpconf/res/tomcat.jpg file:///users/pcaron/phpconf/res/caslogo.jpg file:///users/pcaron/phpconf/res/php.jpg file:///users/pcaron/phpconf/res/apache.jpg file:///users/pcaron/phpconf/res/zend.jpg file:///users/pcaron/phpconf/res/linux.jpg file:///users/pcaron/phpconf/res/java.jpg Conclusion «Bâtir autour de standards ouverts, c'est possible?» «Comprenez ce que l'opensource à pour vous.» «Ne vous laissez pas dicter les règles, autrement les fournisseurs dictes les leurs!»
Questions??? http://www.patricecaron.com pcaron@patricecaron.com
Webographie WIKIPEDIA http://fr.wikipedia.org/wiki/architecture_orient%c3%a9e_services http://fr.wikipedia.org/wiki/xml MSG: Cadre commun d'interopérabilité http://www.msg.gouv.qc.ca/fr/administration/standards/cadre.asp L'Architecture d'entreprise concrétise les promesses technologiques de SOA http://tinyurl.com/alrxgo Bien choisir son Firewall Applicatif Web (WAF) http://fr.securityvibes.com/choisir firewall applicatif web article 942.html