zope : environnement professionnel steve giraud pentila 02/11/2004
TRANSCRIPT
Zope : environnement professionnel
Steve Giraud
Pentila
02/11/2004
Zope : Environnement professionnel
• CV de Zope
• Lettre de motivation
• Entretien
• Mise en concurrence
CV de Zope
• Etat civil– Né en 1996 à Digital
Creation– Fils de Jim Fulton
• Formation– Programmation OO– Base de donnée– Transaction– Sécurité– Divers Langage de
template
CV de Zope
• Stages– OTAN
– SGI
– Ministère de l’intérieur
– Ministère de l’éducation
– ENT Universitaire (Savoie,Bristol, ENS Lyon …)
CV de Zope
• Expérience professionnelle– Cap Gemini– Unilog– Atos Origin– Ingeniweb– Pentila– Logilab– Pilot system– …
CV de Zope
• Recommandation– "Parmi tous les projets
Open Source chez Cap Gemini Ernst & Young en France, la plus grande partie est basée sur Zope", dit Mickael Remond, responsable de l'Open Source chez Cap Gemini Ernst & Young.
Lettre de motivation
• Qualité de l’OO• Logiciel libre• Réutilisabilité• Scalabilité• Alternative
Entretien
• Comment réagiriez vous si vous étiez confronté à un usage intensif ?
Vous avez 1 heure …
Problématique
• Compromis en fonction des priorités du client entre :– Performance– Évolutivité– Disponibilité– Sécurité (ici intégrité des données)– Coût
Performance : Distribuer les responsabilités
• Principe de distribution– Séparer les responsabilités sur différents serveurs
• Architecture n-tiers– Présentation web
– Traitement
– Donnée
• Gérer au mieux le type de matériel (ex. SMP)
Performance : Clusturiser
• Principe de clusturisation– Augmenter le nombre de serveurs pour une
même responsabilité
• 3 niveaux de clusturisation– Présentation– Traitement– Donnée
Et Zope dans tout ça
• ZEO : Zope Entreprise Object
Performance : cache
• Système de cache– Stocker pour éviter le calcul et/ou le transfert
• 3 niveaux de cache :– Cache de donnée– Cache applicatif– Cache externe
Et Zope dans tout ça ?
• Cache– Support ICP (Internet
Cache Protocol)
– RAM Cache Manager
– HTTP Cache Manager
– Cache Storage ZODB
Performance : Équilibrer les charges
• Principe d’équilibrage– Répartir les charges sur les serveurs d’un même
niveau en fonction de leur disponibilité
• Plusieurs tactiques d’équilibrage– En fonction de variable– En fonction de poids– Round robin– ICP
Et Zope dans tout ça
• LoadBalancing– Squid + ICP– ZEO : Zope
Entreprise Object– Mountable Storage
Performance : Niveau application
• Optimisez en dernier mais optimisez
• Profilez avant d’optimiser
• Limitez le nombre de requête au serveur de traitement (éléments statiques…)
• Poids des éléments
• CSS
Evolutivité
• Principe– Augmenter simplement les capacités du système
• Des règles– Le nombre de couches doit pouvoir être augmenté
– Le nombre de composants de chaque couche doit pouvoir être augmenté
– Chaque composant doit pouvoir être remplacé
– Important : Les composants d’une même couche doivent s’ignorer
Et Zope dans tout ça
• Evolutivité– Squid + ICP– ZEO– Mise en place de
réplication des données
– SAN
Disponibilité
• Principe– Le service doit être disponible en permanence
• Des règles– Aucun point de failure unique– Les composants doivent être tous de bonne
qualité– Les composants d’une couche doivent gérer la
failure d’un composant de la couche inférieure
Et Zope dans tout ça
• Intérêt d’ICP + Squid
• Nécessité de ZEO + Réplicats readonly
• Nécessité de Mountable storage
• Problème : ZEO Main Solution matériel
Sécurité des données
• Principe– L’intégrité des données doit être assuré même lors
d’usage simultané important
• Utiliser des systèmes transactionnels ACID– Atomicité (toutes les actions sont réalisées ou aucune ne l'est )– Consistance (les transformations apportées par une transaction
préservent certains invariants : consistant avant consistant après)
– Isolation (les effets d'une transaction ne sont visibles de l'extérieur que si elle peut être totalement exécutée)
– Durabilité (une fois une transaction validée, quoiqu'il puisse arriver, ses effets deviennent permanents et visibles de l'extérieur. )
Et Zope dans tout ça• ZODB système transactionnel ACID
– get_transaction.commit()
• ZEO : Idem avec plusieurs serveurs• Choisir le bon type de storage
– Fichier (FileStorage)– Arborescence de fichiers (DirectoryStorage)– Base de données– Adaptable Persistence Engine
• Système de fichiers ReiserFS par exemple :– Journalisation,– Rapidité d’accès car il est basé sur les btree pour accéder
aux données, – Robustesse, – Capacité de gérer de grosses volumétries (en nombre de
fichier et en taille de fichier
Coût
• Principe– Faire au moins cher
• Possibilité d’économie– Licence logiciel– Hardware vs Software
• Importance de l’évolutivité !
Et Zope dans tout ça …
• Coût
• Logiciel libre (Squid, Zope, SGBD, Linux …)
• Squid vs Switch layer 4
Finalement
Zope1
www
Zope2 Zope n
Mise en concurrence
• SUN Java J2EE
• Microsoft C# .NET
• GNU Python Zope 2 et 3
Zope 3 en quelques mots
• Architecture par composant
• Interopérabilité avec J2EE et .NET via CORBA et Jython
• Internationnalisation
Intérêt de Zope dans votre CV
• Serveur d’application / Middleware / Infrastructure• Base de donnée objet• Langage de template• Sécurité• Workflow• Gestion de contenu• CSS et XHTML• Système transactionnel• Architecture par composant(Zope 3)• Connaissance alternative