GTUG Juni 2010 IT-Großprojekte mit vertikaler Partionierung bewältigen Jürgen Depping CommitWork GmbH © CommitWork GmbH IT Projekte benötigen eine durchdachte Architektur • Logische und physikalische Bausteine eines Systems (Schichten, Komponenten, Subsysteme, ...) • Ihre Beziehung zueinander und wie sie miteinander kommunizieren • Die Verantwortlichkeiten der einzelnen Bausteine • Kriterien, nach denen die Aufteilung eines Systems erfolgt. Neben der Architektur muss auch der zu verwendende Container, in dem das System leben soll, berücksichtigt werden. In Projekten wird oftmals nur eine horizontale Partionierung (2-Tier, 3-Tier Architektur) berücksichtigt. IT-Großprojekte starten oftmals als kleines Projekt, ohne dass ein Wachstum geplant ist. Hieraus ergibt sich die Gefahr eines monolithischen Systems. Seite 2 Geclusterte J2EE oder NSJSP (Tomcat) Container Heute werden entweder J2EE Application Server oder NSJSP (Tomcat) Container für Java basiserte Sytsteme genutzt. • • Ausfallsicherheit und Skalierbarkeit durch Clustering der Container Instanzen. Am Beispiel: NSJSP (Tomcat) WS1 WS1 TC1 DB1 TC2 WS2 Seite 2 DB2 Was befindet sich in einem Container Container: • NonStop JSP (Tomcat) ist ein Container, in dem der serverseitige Teil der Java-Anwendung läuft. • Die virtuelle Java Maschine (JVM) ist die Laufzeitumgebung für den Tomcat. • Innerhalb eines Containers sind meist mehrere Teilprojekte eines ITGroßprojektes installiert. Seite 4 Was passiert, wenn man ein Cluster mit zu vielen Projekten überfrachtet? Auf der HP NonStop gibt es eine Speicherobergrenze von 1 GByte pro JVM. Lösung: Man nehme viele Cluster! => PARTITIONIERUNG Vertikale Partitionierung Projektvielfalt: • Speziell beim Rich Client Lösungen möchte man von einer Oberfläche aus mehrere Projekte bedienen. • Ein Verteilung von Projekten auf unterschiedliche Tomcat‘s macht das Gesamtsystem pflegeleichter und störunanfälliger. • Hieraus folgt, dass man von einem Client aus mehrere Cluster erreichen muss. Seite 7 Weitere Vorteile der vertikalen Partitionierung Releasepflege: • Um die Downtime einer Anwendung zu minimieren, ist es sinnvoll, nicht nur ein Cluster, sondern n-Cluster für eine Projekt-Familie anzusprechen. Hierdurch kann ein Cluster eingefroren und Änderungen vorgenommen werden. Anschließend wird das Cluster wieder gestartet. So kann man Schritt für Schritt Upgrades oder Software Updates durchführen und die Downtime der Produktion minimieren. Seite 8 Realisierung • Das Cluster mit Basisdiensten ist per Konfiguration im Client bekannt. Die Konfiguration wird per Java Webstart an den Client verteilt. • Ein Client nutzt einen BusinessObjectLocator zum Auffinden der Serverbeans. • Der BusinessObjectLocator verwaltet für jedes Projekt die zugehörigen Server-URLs, die in der Datenbank liegen. Hier dürfen zu einem Projekt auch mehrere Server-URLs definiert sein! Existiert kein Eintrag in der Datenbank, so liegt dieses Projekt im Basiscluster. • Anmerkung: Der Projekt- bzw. Modulname ist im Packagepfad enthalten. • Im Fehlerfall und in konfigurierbaren Zeitabständen (falls >0 Minuten eingestellt) werden die Server-URLs aktualisiert. Vertikale Partitionierung von hochverfügbaren Anwendungen Cluster 1 Projekte A F od ailo Fr er ve ee r ze Rich Client Cluster 2 Projekte A F od ailo Fr er ve ee r ze Cluster 3 Projekte B S E R V E R Cluster 4 Projekte B Cluster können zum Softwareupdate oder Konfiguration separat heruntergefahren werden! (J2EE Cluster oder NSJSP Cluster) Seite 10 Update der Clusterzuordnung im Onlinebetrieb Cluster 1 Projekte A Cluster 2 Projekte A Rich Client Cluster 3 Projekte B Cluster 4 Projekte B Cluster 4 Projekte A Msg: takeover A from 1 to 4 Seite 11 S E R V E R Fazit • Mit der vertikalen Partitionierung von CommitWork kann die Hochverfügbarkeit von Java Systemen auf HP NonStop nochmals verbessert werden. • Insbesondere die Nutzung von Projektfamilien für Rich Clients wird unterstützt. • Ein Cluster Failover kann mit diesem Produkt abgedeckt werden. Eine Nutzung des zukünftigen HP Produkts „Pathway Domäne“ ist durch Änderung der Konfiguration möglich. • Eine Zuordnung zu einem neuen Cluster ist jederzeit im laufenden Betrieb möglich. Dies ermöglicht sowohl eine Lastverteilung als auch die Reduzierung der „Downtime“ bei Softwareaupdates. • Auswahl zwischen Test- und Produktionssystem ist weiterhin möglich. Seite 11 Java auf HP NonStop Packen wir´s an! Jürgen Depping [email protected] +49 231 94116912