Das Team

Auftraggeber

Evoila ist ein Startup-Unternehmen aus dem Bereich cloud-computing. Es bietet virtuelle Laufzeitumgebungen für computergestützte Schulungen an. Schulungszentren können sich für angebotene Kurse virtuelle Konfigurationen zusammenstellen. Diese bestehen aus mehreren virtuelle Rechnern, auf denen die Schulungen stattfinden. Die Konfigurationen können immer wieder verwendet werden, ohne dass sie jedes Mal neu erstellt werden müssen. Auf diese Art sparen sich die Schulungszentren das ständige, erneute Einrichten der Schulungsumgebungen.

Kurzbeschreibung

Das Projekt CloudMiner übernimmt die Aufgaben, die vorhandene Software von evoila um zwei Kernkompetenzen zu erweitern.

ChargeBack: Rechnungserstellung - Sammeln und archivieren von rechnungsrelevanten Daten zum Erstellen von rechtskräftigen Rechnungen.

Monitoring: Echtzeitanzeige von verwendeten Ressourcen - Sammeln von Betriebsdaten zur Kostenoptimierung und zum Aufzeigen von Engpässen.

Projektbeschreibung

Aktuell gibt es ein prototypisches System, welches bereits die Funktionen der Konfigurationserstellung und Kundenbetreuung ermöglicht. Die Rechnungen werden derzeit noch über ein Festpreisverfahren in Abhängigkeit der Mietdauer erstellt.

Evoila möchte die Nutzung dieses Systems, wie branchenüblich, über ein skalierendes Berechnungsverfahren in Abhängigkeit zur verursachten Auslastung stellen. Zurzeit fehlt jedoch eine Möglichkeit, die verbrauchten Ressourcen und damit verbundenen Kosten zu beobachten und sie dem Kunden in Rechnung zu stellen. Dies bedeutet im Genauen, dass die Ressourcen für die vom Kunden gebuchten, virtuellen Server im Verhältnis zum Buchungszeitraum berechnet werden müssen. Dies wären z.B. Speicherplatz, Anzahl der CPUs u.a. aber auch die Anzahl der Konfigurationen, die vorgehalten werden. Die hierfür benötigten Daten befinden sich jedoch sowohl auf den angemieteten Cloud-Servern, als auch auf den virtuellen Maschinen der Kunden. Es fehlt zudem eine Möglichkeit, die Ressourcen in Echtzeit zu überwachen, um das System zu warten.

Das Endprodukt CloudMiner soll einen Überblick über die Auslastung und Nutzung des Systems von evoila verschaffen und die Rechnungsstellung automatisieren. Dazu soll das System die Auslastungs-, Aktitvitäts- und Verbrauchsdaten der Kunden und Server auslesen, sammeln, archivieren und auswerten können. Als erstes werden Daten in Echtzeit von den verschiedenen Servern und Anwendungen gesammelt. Anschließend werden diese archiviert und auf Anfrage entweder für die automatische Rechnungserstellung oder zur Überwachung verwendet. Die relevanten Daten sollen gefiltert und in verschiedenen Darstellungsformen graphisch repräsentiert werden können. Weiterhin soll das System eine Langzeitarchivierung von Rechnungsdaten ermöglichen.

Benutzte Technologien

Name Beschreibung
Spring Spring ist ein Framework zur Entwicklung großer firmenbasierter Software. Es bietet unter anderem Unterstützung zu Dependency Injection und aspektorientierter Programmierung.
Eclipse Eclipse ist eine IDE. Anfänglich für Java entwickelt, dient es heute zur Entwicklung von Software verschiedenster Art.
kunagi Ein Projektmanagement-Tool, das auf den Entwicklungsprozess Scrum spezialisiert ist.
Jenkins Jenkins ist ein webbasiertes System zur Verwaltung von Continuous Integration. Es unterstützt Tools wie Maven und Git und automatische Testtools wie JUnit. Darüber hinaus verwaltet es Testergebnisse und bereitet diese optisch auf.
Maven Maven ist ein Projekverwaltungswerkzeug zur Verwaltung von einzelnen Modulen/Komponent und deren Zusammenstellung. Des Weiteren schlüsselt Maven Abhängigkeiten zu anderen Frameworks auf.
Git Git ist eine frei verfügbare Software zur Versionsverwaltung von Dateien. In der Softwareentwicklung wird es meist zur Verwaltung des Quellcodes eingesetzt.
Gerrit Gerrit ist ein kollaboratives Review-System für Git- Repositories.
Postgres Postgres ist ein freies Datenbanksystem auf Basis von SQL.
pgAdmin pgAdmin ist ein Programm zur Verwaltung von PostgreSQL Datenbanken.
MongoDB MongoDB ist ein dokumentbasiertes Datenbanksystem.
UMongo Ein Programm zur Verwaltung von Mongo Datenbanken.
RabbitMQ Die RabbitMQ ermöglicht asynchrone Nachrichtenübermittlung mit einem Queueingsystem.

Lessons Learned

Bilder