Titre: Infrastructure et pré-requis au PGI Cocktail Version: 1.4 Dernière modification: 2010/10/21 17:30 Auteurs: Aurélien Minet, Hugues Villesuzanne <contact at cocktail dot org> Statut: brouillon Licence: Creative Commons - by-nc-nd 3.0 ( http://creativecommons.org/licenses/by-nc-nd/3.0/deed.fr ) Remarques: • Le contenu du document est susceptible d'évoluer. • La dernière version est disponible ici. 1 Infrastructure et pré-requis au PGI Cocktail 2 Versions: ___date___ n°version commentaires 10/07/2008 0 brouillon 30/07/2008 1.0 version initiale 17/09/2010 1.2 Passage WebObjects 5.3 obligatoire (java 1.5), Oracle 10g R2 minimum, ajout des éditions Oracle, versions de windows pour le clientserveur 13/10/2010 1.4 Apache 2.2 est le seul serveur http supporté. Corrections et modifications mineures. Les version au format X.y.z ne sont pas listées, elles ne contiennent que des corrections (coquilles ....). L'information contenue ne change pas. 3 1 Environnement matériel :............................................................ 5 Dimensionnement : ........................................................................ 5 Recommandations : ........................................................................ 6 2 Environnement logiciel : ............................................................. 7 Éléments nécessaires sur les serveurs : ............................................. 7 Éléments nécessaires sur les postes client : ....................................... 7 Recommandations : ........................................................................ 0 Annexes : ....................................................................................... 9 Extrait de la licence XCode : ............................................................ 9 4 1 Environnement matériel : L'infrastructure matérielle nécessaire aux logiciels Cocktail est de 2 serveurs au moins : • un pour la ou les bases de données Oracle • un pour le serveur d'application 3 tiers: WebObjects et pour le serveur http: Apache. Il peut y avoir en plus un serveur TSE/Citrix dans le cas où l'on souhaite centraliser les applications Client-Serveur et non les exécuter directement sur les postes des utilisateurs. (les applications Client-Serveur sont vouées a disparaître). Remarque : pour un petit établissement tout pourrait être installé sur un seul serveur. Dimensionnement : • Dans le cas d'un nombre important d'applications et/ou d'utilisateurs il faut privilégier le nombre de processeurs/sockets ou Core (coût de la licence Oracle plus important) ainsi que plus de mémoire pour les serveurs d'application (scalabilité horizontale). • Dans le cas d'un volume important de données à gérer il faut privilégier la vitesse du processeur (plus que leur nombre) et les IO pour la base (scalabilité verticale). Ainsi pour : • Une petite structure (<1000 individus) utilisant une application (majeure) Cocktail aura besoin d'un: ◦ serveur Oracle avec un processeur récent 2 Go RAM (4 Go recommandés), espace disque 20Go (base de production avec archivelog, base de test et sauvegarde). Les disques devant être rapides (SCSI/SAS 15ktrm, RAID 5 à éviter) Le serveur pourra héberger d'autres bases en fonction de sa puissance. ◦ serveur WebObjects avec un processeur >= 2 Ghz / Xeon Prescoot, 2 Go (GRH) à 4 Go (GFC) de RAM en fonction du nombre d'applications. Il pourra être mutualisé avec d'autres services suivant sa puissance. • Une grosse structure (>40000 individus) utilisant plusieurs/toutes les applications Cocktail aura besoin : ◦ d'un serveur pour avec 2 ou 4 processeurs Oracle (dual/quadri-core), au moins 8Go de RAM et 50Go d'espace disque en SCSI/SAS 15Ktrm (ou SSD) et consolidé sur SAN dans l'idéal. ◦ Un ou deux serveurs WebObjects si l'on veut de la répartition de charge et de la haute disponibilité avec 1 ou 2 processeurs et 8Go ou 12 Go de RAM voir plus. (l'espace disque ne dépassant pas quelques Go et peut être clusturisé les I/O n'étant pas très important) 5 A noter que : • Une instance d'une application WebObjects occupe en mémoire en moyenne 100Mo, un serveur de 12Go peut donc accueillir une bonne centaine d'instances. (une instance est un processus qui correspond à l'exécution d'une application) • Une forte capacité en RAM sur le serveur Oracle permet de réduire les IO disques. • Avoir plusieurs volumes RAID sur des disques différents permet de sécuriser les bases Oracle (archives logs, redo logs et control files étant multiplexés) • Le fonctionnement de WebObjects permet d'avoir plusieurs serveurs afin d'assurer la scalabilité et la haute disponibilité (voir la documentation Apple sur le fonctionnement de l'adaptor pour le serveur http et du wotaskd). • La virtualisation (Xen, VMWare...) est possible, cela a forcement un impact sur les performances. ◦ Pour Oracle elle n'est pas recommandée (et pas forcement supportée) étant donné l'impact possible sur les I/O disques ◦ Pour WebObjects cela peut être intéressant, surtout pour les petits sites (ne pas oublier que Java c'est déjà de la virtualisation, le V de JVM) ◦ Pour Apache il n'y a pas de problèmes (la charge est assez petite) • Le frontal Apache peut être sur un autre serveur. Il peut être doublé en configuration HA/Cluster afin d'assurer une très haute disponibilité et faire du loadbalancing. A noter que mod_WebObejcts fait déjà du loadbalancing entre les différentes instances d'une application (mode round-robin) • Les temps de latence des communications entre les serveurs WebObjects et Oracle doivent être minimisés (dans le sens où le temps de communication doit être négligeable par rapport aux temps de calculs/réponses). Recommandations : • Pour la consolidation de l'infrastructure serveur un SAN est recommandé (établissement avec beaucoup d'individus). • En fonction du nombre d'utilisateurs et d'applications, il est fortement conseillé de prévoir la continuité de service pour Oracle avec un serveur de secours. Soit les fichiers de base sont sur un SAN/NAS, soit dataguard est utilisé. • Si le serveur WebObjects a peu d'applications, il peut héberger d'autres services, le serveur ne lui est pas forcement dédié. Il peut aussi être virtualisé. • Dans le cas d'un serveur TSE/Citrix, prévoir 80Mo/Application, un core/~5 utilisateurs actif. Privilégier TSE/Citrix pour les personnes utilisant les applications client-serveur et travaillant sur sites distants (la latence avec le nombres important d'ordres SQL peut . Un serveur TSE/Citrix peut aussi être envisagé dans le cas d'un petit nombre d'utilisateurs cela peut simplifier le déploiement (centralisation). 6 2 Environnement logiciel : Éléments nécessaires sur les serveurs : • Oracle: 10gR2 minimum, les nouveaux établissements doivent utiliser la 11gR2. Les éditions possibles (gratuite en test) sont : Standard One, Standard et Enterprise. La version XE (gratuite) n'est pas actuellement supportée. Aucune option (pack) n'est nécessaire, le mode RAC est possible. • WebObjects: 5.3.3 avec Java 1.5 (JRE de Sun/Oracle) • Apache: 2.2 version MPM prefork auquel on ajoute le module mod_WebObjects Éléments nécessaires sur les postes client : (en fonction des applications) • Client-Serveur: Windows NT >= 4 : XP SP3 et 2003 serveur sont recommandés (Vista pose problème, Windows 7 à priori non). Les versions x86 64bit ne sont pas recommandées Oracle Client >= 9i (10gR2 préférable ou identique a la version de la base) WebObjects 4.5.1 (fourni avec les applications) • Applications 3 tiers, dites Java client: JRE 1.4.2, 1.5 ou 1.6. L'idéal est d'utiliser pour le lancement Java Web Start 1.6 puis d'exécuter l'application avec Java 1.5 (voir la balise j2se et son attribut version dans le fichier .jnlp). • Applications 3 tiers Ajax: Firefox (Safari, Chrome, Opéra peuvent être utilisables sauf pour certaines applications, IE à éviter) A noter que : • Apple ne vend plus WebObjects comme ce fut le cas jusqu'à la version 5.2, il est fourni avec XCode (gratuit). • La licence XCode permet d'installer/distribuer WebObjects pour le déploiement d'applications réalisées avec ce dernier (voir l'extrait de la licence en annexe). • Java 1.4.2 est la version de Java supportée par WebObjects 5.3.x. Mais J2SE 5.0 / Java 1.5 ne pose pas de problème ainsi les applications Cocktail fonctionnent avec Java 1.5 et certaines en utilisent les spécificitées. La partie cliente fonctionne avec Java 1.5 et 1.6. • Cocktail peut encore fonctionner sous Oracle 9iR2 dont le support étendu est terminé mais il n'y aura pas de support Cocktail, notamment pour les problèmes de patch ou de performance. C'est aussi le cas pour la 10gR1 dont le support est terminé depuis Janvier 2009. Le support pour Oracle 10gR2 est aussi terminé depuis peut de temps, reste le support étendu, c'est la version minimal qui est encore supportée. Il est conseillé d'avoir le dernier patchset. La 11gR1 qui est une version "intermédiaire" n'est pas recommandée. L'utilisation de 11gR2 est conseillé , il faut cependant bien prendre connaissance des notes, bugs, patchs, Patch Sets, Critical Patch Updates (CPUs) et Patch Set Updates (PSUs) publiés sur le site du support Oracle. Il est donc important d'envisager un passage en 11gR2 dans le courant de l'année 2010. • Il faut regarder les notes/documentations d'Oracle pour connaître les dépendances et pré-requis à l'installation et au fonctionnement de son SGBDR. • Les applications n'utilisent pas forcement que des jar/binaires issus de l'installation de WebObjects mais ils sont tous utilisables gratuitement. 7 Important : • L'installation, l'utilisation de WebObjects (5 et supérieur) et du SGBD Oracle sous Microsoft Windows n'est pas recommandée par Cocktail (même si cela ne pose à priori aucun problème). Pour tout support il faudra alors se retourner vers les éditeurs. • Les éventuels scripts shell livrés par Cocktail sont en Bash. Les applications sont testées sous GNU/Linux dans un premier temps et éventuellement sous OS X (>=10.5) Les problèmes sur des applications Cocktail survenant sur d'autres OS (s'ils sont spécifiques à l'OS) ne seront pas supportés. Recommandations : • Linux est l'OS recommandé pour Oracle. Se référer à la grille de certification. Voir http://www.oracle.com/technology/support/metalink/index.html pour les versions/distributions supportées. • GNU/Linux est l'OS recommandés pour WebObjects et pour Oracle Il est important de préciser que pour WebObjects: ◦ Seul Mac OS X Tiger est l'OS "officiellement supporté" par Apple pour WebObjects 5.3 mais cela ne change rien, WebObjects est du Java pur. ◦ Pour les éditions serveur de Mac OS X, la version Snow Leopard (10.6) est sûrement la plus recommandée car elle n'inclut pas WebObjects. ◦ nous ne recommandons pas Mac OS X pour l'exploitation de WebObjects sauf si vous avez une bonne maîtrise de son l'administration. • WebObjects étant en Java, il peut fonctionner sur UNIX de manière générale du moment que la JVM de Sun est disponible sur cet OS (cela fonctionne donc sur des OS comme Solaris, Free BSD, OpenSolaris). • La version 2.2 d'Apache avec mod_WebObjects est seule supportée, l'Adaptor est maintenu par la communauté (Wonder). Les versions antérieures d'Apache (< 2.2) et les versions CGI/FastCGI doivent toujours fonctionner mais ne sont pas supportées. • La distribution GNU/Linux recommandée pour le serveur d'application WebObjects est Gentoo (particulièrement pour sa gestion de Apache et de Java). Les distributions Debian, RedHat ou qui sont basées sur ces dernières tel Ubuntu ou CentOS sont utilisables. 8 Annexes : Extrait de la licence XCode : "D. Logiciel WebObjects. En accord avec le conditions générales de cette licence, vous pouvez utiliser, installer et permettre l'accès à d'autres personnes au logiciel de déploiement WebObjects compris dans le logiciel de développement pour déployer des programmes d'application développés grâce au logiciel d'Apple WebObjects. Vous pouvez aussi reproduire et distribuer : (1) à travers un réseau, des composants du logiciel de déploiement WebObjects afin qu'ils soient installés et utilisés par d'autres personnes (« Utilisateurs finaux de Java Client ») sur la mémoire volatile d'ordinateurs distants (p.e. RAM) pour activer les fonctionnalités Java Client dans le but unique de communiquer avec le logiciel Apple WebObjects pouvant être installé et exécuté sur le même ordinateur de marque Apple sur lequel vous avez installé le logiciel de développement (le "Système sous licence"); et (2) tant manuellement qu'automatiquement via un réseau, des composants du logiciel de déploiement WebObjects afin qu'ils soient installés et utilisés par des utilisateurs finaux de Java Client sur la mémoire non volatile de tout ordinateur distant (p.e. ROM) pour activer les fonctionnalités Java Client dans le but unique de communiquer avec le logiciel Apple WebObjects pouvant être installé et exécuté sur le système sous licence; toute distribution à des utilisateurs finaux de Java Client est faite à des conditions au moins aussi restrictives que celles décrites dans cette licence et contient les avis de non-responsabilité et les limites décrits dans les Sections 6 et 7 de cette licence. en accord avec les conditions générales de cette licence, vous pouvez également déployer des applications serveur construites avec le logiciel WebObjects sur n'importe quelle plate-forme." 9