Skip to content

Statuspage similar to statuspage.io made as a group project for distributed system lecture. Uses kubernetes and a microservice architecture.

License

Notifications You must be signed in to change notification settings

wbpascal/statuswebsite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Statuswebsite

Eine öffentliche (aber nur sehr einfache) Statusseite für Webseiten angelehnt an Statuspage.io, welche als Projekt im Rahmen der Vorlesung "Verteilte Systeme" angefertigt wurde. Aus diesem Grund setzt das Projekt auf eine Mikroservice Struktur, die über ein Kubernetes Cluster gehostet wurde.

Dieses Repository enthält sowohl die Dokumentation, als auch den Code des Projektes. Die anderen Teile des Projektes (wie z.B. die Vagrant VM und das Ansible Skript) sind auf dem GitLab Server der Universität Paderborn zu finden:

Autoren

Entwicklung

Für die Entwicklung wird eine Vagrant VM eingesetzt, auf der ein Kubernetes Cluster mit allen benötigten Diensten gehostet wird. Diese VM wird mithilfe des gleichen Ansible-Skripts aufgesetzt, wie auch die Produktionsumgebung, weshalb die VM zum größten Teil identisch zu Produktionsumgebung ist. Alle Informationen, wie mithilfe der Vagrant-VM entwickelt werden kann sind in der DEVELOPMENT.md Datei zu finden.

API Spezifikationen

Folgende API Spezifikationen sind über Swagger Hub zu erreichen:

Architektur

Als Grundstein der Architektur wird Icinga verwendet, welches den Status beliebiger Webseiten oder Dienste ausließt und die Messdaten in InfluxDB ablegt. Die Microservices lesen diesen Status von InfluxDB aus und stellen ihn in einem für den Benutzer lesbares Format dar. Echtzeitinformationen werden über RabbitMQ von einem InfluxDB Listener an das Frontend weitergegeben, welcher wiederrum diese Updates über Websockets an den Client weitergibt.

architecture

Ursprünglich war noch eine Admin-Oberfläche geplant, welche einen vereinfachten Zugrif auf das Management von Icinga bieten sollte. Dieses wurde jedoch aus Zeitgründen nicht umgesetzt. Einige Services, welche für diese Oberfläche nötig gewesen wären, sind jedoch bereits implementiert worden, wie z.B. der Token Service oder der Authentication Service.

Eine genauere Übersicht, wie die einzelnen Dienste miteinander kommunizieren, kann im folgenden Bild betrachtet werden.

communication

About

Statuspage similar to statuspage.io made as a group project for distributed system lecture. Uses kubernetes and a microservice architecture.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published