Datum WCMS-Cluster der ETH Zürich © ETH Zürich |
18. März 2008 Bengt 2 Historische Entwicklung: Bottom-Up 2001/2002: ein Departement bricht komm. CMS- Projekt nach 125 kFr. Ausgaben ab 2002: Gemeinschaftsprojekt WCMS (Departemente + ID) beginnt Evaluation Wyona CMS (Java, Cocoon) Konventor (Zope), später Silva (Zope)
18. März 2008 Bengt 3 Historische Entwicklung: Top-Down SL-Beschluss: Jubiläum mit WebCD
18. März 2008 Bengt 4 Historische Entwicklung: Betrieb Start März 2003, 1 Server Sept. 2003, 3 Server ZEO-Cluster ab März x 2 CPU Xeon 2.6 GHz, 4 GB RAM bis Ende '06 (für gewisse Aufgaben noch im Einsatz) 6x 4 CPU Xeon GHz, 16 GB RAM heute
18. März 2008 Bengt 5 Historische Entwicklung: Zahlen Sites online seit Servicebeginn 2007: 10 TByte verschickt, 460 Mio. Requests, 10 Mio. verschiedene Dateien ZODB: 8 GByte, Assets (Binärdaten inkl. Bilder): 200 GByte
18. März 2008 Bengt 6 Aktuelle Abdeckung zentrale Site 11 (+1) von 16 Dept.-Sites Verwaltung: Personalabt., Rektorat, Finanzabt., Informatikdienste uvm. Institute, Kooperationen, Projekte 95% im Standard-Layout
18. März 2008 Bengt
18. März 2008 Bengt 8 Problem #1: Cache Trashing Dedizierte Zope-Installation für 'Protos' und ETH Dedizierte Prozesse auf Produktion für Editieren Suchmaschinen-Spider Logisches Subclustering reduziert Cache Trashing genug Sites für statistische Verteilung
18. März 2008 Bengt 9 Komponenten des Subclusterings Apache mod_rewrite jeder virt. Host mit eigener Regel für Weiterleitung auf Loadbalancer-Ports Distributions-Script verteilt Apache-Konfiguration auf 2 Apache-Server setzt Loadbalancer-Ports Loadbalancer pro Port 2 Zope-Prozesse + Failover
18. März 2008 Bengt 10 Matrix der logischen Subcluster Definitionen für den Loadbalancer Port auf Loadbalancer: N
18. März 2008 Bengt 11 Subcluster-Selektion durch Apache RewriteCond %{ENV:search_engine} 1 RewriteRule ^/(.*) /http/ [P,L] # site specific rewriting rules # RewriteRule ^/(.*manage(/.*|$)) [R] RewriteRule ^/(.*edit(/.*|$)) [R] RewriteRule ^/(.*intranet(/.*|$)) [R] RewriteRule ^/(.*) /http/ [P,L] Selektion pro Site-spezifischer Konfiguration search_engine: global anhand Browser-Kennung gesetzte Variable VIRTUAL_SERVER_PORT (_SEARCHENGINE_PORT, _EDIT_PORT): bei Transfer der Konfiguration auf Apache gesetzte Variablen, Portnummern der Clustermatrix
18. März 2008 Bengt 12 Strukturierung in Zope Zope Root Silva Root ETH RootFH Root LDAP, zentrale Code- Sources (Plugins), WebCD-Layout (CSS, Icons) Gruppe 1Gruppe 2Gruppe N Site 1Site 2Site N Header-Bilder, spez. CSS und Icons, komplette Layouts Ziele der Redirects Renderer, Silva Konfigu- rations-Services
18. März 2008 Bengt 13 SilvaExtETHLayout Standard-Layout im ETH WebCD Funktionen für Navigation, Sprachumschaltung, PDF-Umwandlung, Caching von externen Datenquellen, Formularbaukasten... Vielfältig konfigurierbar im SMI: HTML-Titel, Breadcrumb-Prefix, Menueinträge, Verbergen, 1- 3 Spalten, Suchfunktion, Farbschema...
18. März 2008 Bengt 14 Standard-Elemente Site Root /peopleSilvaExtPersonalInfo (Tel., Büro, Adresse aus LDAP) Deutsch oder Englisch (Seiten in DE, EN, FR, IT möglich) /contactstandardisiertes Kontaktformular /mail_this_pageSeiten als PDF verschicken /sitemapAuflistung aller Seiten Weitere Module: RSS-Viewer/Feed, Zugriff auf Vorlesungsverzeichnis, iCalender, Mensa-Menu, ETH-Veranstaltungskalender 'Code-Elemente': Formular-Bearbeitung, Einbinden von Flash, Java, Filmen vom Streaming-Server, IFRAME, Newsletter-Service, ETH-Telefonbuch
18. März 2008 Bengt 15 Problemzonen Assets: Inkonsistenzen möglich NAS ist netztopologisch weit weg Session-DB Koordination mit ID-KOM (Loadbalancer) Entwickler denken nicht grosstechnisch Steuerung von HTTP-Caches mangelhaft