TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Entwicklung eines Frameworks zur Evaluation von verteilten Systemen

Betreuer Johannes Behl
Professor Prof. Dr. Rüdiger Kapitza
Projekt tclouds
refit
IBR Gruppe DS (Prof. Kapitza)
Art Projektarbeit
Status abgeschlossen

Einleitung

Eine besondere Herausforderung, die sich bei der Entwicklung von verteilten Systemen darstellt, ist ihre - wer hätte es gedacht - Verteilung. Soll ein verteiltes System bzw. eine verteilte Applikation getestet oder ausgiebig evaluiert werden, so muss in der Regel das System auf verschiedene Weise konfiguriert, dessen Komponenten innerhalb eines Netzwerks verteilt, mehrere Testläufe ausgeführt und die Resultate zusammengefasst werden.

Problem

Sicherlich gibt es bestehende Frameworks, die diese Aufgaben zumindest teilweise abnehmen. Oftmals erscheinen sie jedoch zu komplex für das jeweilige, an sich einfach erscheinende Problem, machen Voraussetzungen, die im gerade anstehenden Fall nicht gegeben sind, offerieren doch nicht genau das, was man will oder lassen sich nicht entsprechend anpassen. Daher werden häufig für diese Aufgaben eigene Skripte geschrieben, die speziell an eine Applikation angepasst sind und danach wieder in der Versenkung verschwinden, nur um bei nächster Gelegenheit in ähnlicher Form wieder das Licht der Welt zu erblicken - vollkommen neu und überhaupt besser geschrieben, versteht sich.

Aufgabenstellung

Im Rahmen dieser Arbeit soll ein Framework implementiert werden, dass das Testen und die Evaluation von unterschiedlichen verteilten Systemen und Anwendungen unterstützt. Das in Python zu verfassende Framework soll es ermöglichen, Anwendungen in verschiedenen Konfigurationen automatisch in einem Netzwerk zu verteilen, auszuführen und Resultate von Testläufen zusammenzufassen. Dabei sollte das Framework einfach und dennoch möglichst flexibel für verschiedene Einsatzszenarien anpassbar sein, weshalb auf eine saubere Softwarearchitektur zu achten ist.

Folgende zusätzliche Anforderungen sollten unter anderem erfüllt werden:

  • Das Framework sollte sich sowohl für unterschiedliche Anwendungen als auch je Anwendung für verschiedene Testszenarien einsetzen lassen.
  • Die Ausführung von Testläufen sollte über die Kommandozeile einfach steuerbar sein. Neben allgemeinen Befehlen sollten auch anwendungs- bzw. szenarienspezifische Befehle unterstützt werden.
  • Es sollte die Möglichkeit bestehen, einer laufenden Anwendung interaktiv Befehle zu senden.
  • Der Ressourcenverbrauch (CPU, Speicher, Netzwerk) der verteilten Anwendungen sollte erfassbar sein.
  • Es ist darauf zu achten, dass ein verteiltes System aus mehreren Subsystemen bestehen kann (verschiedene Clients, Server, Replikatgruppen, ...), die unter Umständen unterschiedliche Einzelkonfigurationen benötigen.
  • Für Standardsysteme wie Apache ZooKeeper oder Apache Tomcat sollte das Framework womöglich entsprechende Standardlösungen bieten, die bei Bedarf verwendet werden können.
  • Eine Dokumentation zum Beispiel in Wiki-Form wäre zu erstellen.


aktualisiert am 04.02.2015, 11:17 von Johannes Behl
printemailtop