Infrastructure et pré-requis au PGI Cocktail

publicité
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
Téléchargement