Projekt

Vision

Es soll eine Anwendung entwickelt werden, welche für Start-ups und Kleinunternehmen ein kostengünstiges Monitoring ermöglicht. Monitoring bietet den Vorteil, durch Beobachtung des jeweiligen Systems, richtige Entscheidungen zu treffen, Kosten zu sparen und Geschäftsprozesse optimieren zu können. Dabei werden Parameter, wie die Auslastung, Traffic, Fehlermeldungen und Bearbeitungszeiten von Anfragen beobachtet. Dadurch können wiederholende Überlastungen bzw. Fehlerquellen behoben werden.

Die Handhabung unserer Anwendung ist unkompliziert und für den Laien gut verständlich. Zudem sind nur notwendige Anwendungen und Funktionen vorhanden, um eine einfache Bedienung zu gewährleisten. Anders als Produkte der Wettbewerber ist unsere Anwendung auf das wenstlichste fokussiert und als OpenSource-APM kostenfrei.

Verwendete Technologien

AWS

Amazon Web Services (AWS) ist eine umfassende Cloud Computing-Plattform. Mit Hilfe des virtuellen Servers Amazon Elastic Compute Cloud (EC2) haben wir eine VM in der AWS Cloud-Umgebung aufgesetzt.

Prometheus

Prometheus ist ein Open-Source-Toolkit zur Überwachung und Warnung von Systemen, wie Server, Clouds oder virtua­lisierte Infra­strukturen. Der Monitoring-Server ruft dabei die Daten in einem spezifischen Textformat periodisch über HTTP von den Clients ab.

Grafana

Grafana ist eine Open Source Software, mit der sich Daten in dynamischen, interaktiven Dashboards visualisieren lassen. Die Software ist mit vielen Datenquellen kompatibel und kommt für Monitoring-Aufgaben und die Visualisierung und Alarmierung von Messdaten zum Einsatz.

Terraform

Terraform ist eine Open-Source-Infrastruktur als Code-Tool, welches dazu verwendet wird das gesamte Cloud-Infrastruktur-Setup in einer leicht zu erlernenden, deklarativen Sprache zu definieren und bereitzustellen..

Docker

Docker ist eine Freie Software zur Isolierung von Anwendungen mit Hilfe von Containervirtualisierung. Docker verpackt Software in standardisierte Einheiten (Container), die alles enthalten, was zum Ausführen der Software erforderlich ist.

Node Exporter

Node Exporter ist ein Exportprogramm, welches ermöglicht in der Linux Umgebung mit Prometheus die gewünschten Metriken auszulesen und zu überwachen. Es liefert die Daten an die Prometheus Datenbank, von wo die Metriken dann mittels Grafana visualisiert werden können.

Arbeitsinstrumenten

GitHub

GitHub ist ein netzbasierter Dienst zur Versionsverwaltung für Software-Entwicklungsprojekte. Da speichern wir auch unser Terraform-Script und den Code für diese Webanwendung

Miro

Miro ist ein schnelles, kostenloses und benutzerfreundliches digitales Whiteboard, das haben wir immer für Retros benutzt.

Trello

Atlassians Work-Management- und Collaboration-Lösung Trello haben wir darauf benutzt, um das Projekt nachzuvollziehen, Tasks zuzuweisen den Weg zur Zielerreichung zu dokumentieren.

Projektteam

Wer sind wir

Unser Team besteht aus

  • Anna Sokolov (Product Owner)
  • Paulette Carole Fokou Tsougong (Scrum Master)
  • Verena Kochs
  • Rabiye Hassan-Nejad
  • Julia Romanova
  • Lucie Naundorf
  • Sabina Mahoro-Nkundinera
  • Dana Khreis

Ergebnisse

Was wurde erreicht

Mit Hilfe eines Terraform Scripts ist es nun möglich, eine Referenzarchitektur automatisiert mit den von uns ausgewählten Open Source APM Komponenten - Prometheus und Grafana - in der Cloud Umgebung zu erstellen. Damit gibt es jetzt eine on-demand SaaS Lösung auf Basis von Open Source APM Werkzeugen mit denen sich Nutzer_innen diese Services bei Bedarf schnell und unkompliziert einrichten und für Ihre Anwendungen nutzen können. Eine detaillierte Anleitung unterstützt dabei auch User_innen mit wenig Cloud Computing Know-How das Terraform Script in wenigen Schritten auszuführen.

AWS

Overview Instances

Github

OpenAPM

Terraform Script

Default Variables

Grafana

Dashboard

Node Exporter

Metrics

Prometheus

Targets

F.A.Q

Häufig gestellte Fragen

  • Unter klassischem Monitoring versteht man die Überwachung des Verhaltens und des Status eines Systems, indem die vom System gelieferten Daten erfasst, gesammelt und beobachtet werden. Durch das Auswerten dieser Daten lassen sich Rückschlüsse auf den Status und die Performance des überwachten Systems ziehen.

  • Metriken sind Messwerte bestimmter Parameter zu einem definierten Zeitpunkt oder über ein vorgegebenes Zeitintervall. Sie sind strukturiert und einfach zu sammeln, zu speichern und auszuwerten. Die Metriken liefern konkrete Informationen über den Zustand einzelner Komponenten des Gesamtsystems. Zu den essenziellsten sogenannten goldenen Metriken gehören Latenz, Traffic/Verkehr, Fehler und die Sättigung.

  • - Amazon Machine: Ubuntu Server 20.04
    - Amazon Machine Images: ami-0a49b025fffbbdac6
    - Region: Frankfurt (eu-central-1)
    - AWS Instance type: t3.micro
    - Ports: 3000, 9090, 22, 9100

  • Application Performance Monitoring (APM) ist der Prozess, die Leistung einer Anwendung zu überwachen, zu verwalten und auf dem neuesten Stand zu halten. APM umfasst die Überwachung sowohl der technischen Leistung der Anwendung, als auch der von den Nutzern wahrgenommenen Leistung. Da die heutigen Anwendungen auf einer hochgradig verteilten Infrastruktur laufen, sind alle ihre Komponenten in ständigem Fluss und sehr komplex zu überwachen. Daher muss eine nützliche APM-Software über alle kritischen Teile einer Anwendung schauen, um die Fehlerbehebung zu erleichtern und die Leistung der Anwendung zu verwalten.

  • Prometheus ist ein Open-Source Tool im Bereich Monitoring, welches auch in einer Cloud Umgebung angewandt werden kann. Prometheus bezieht seine Daten aus HTTP und ist insbesondere für Umgebungen mit Micro-Services besser geeignet als andere ähnliche Tools. Es bietet viele Erweiterungen an. Da dieses Tool im Bereich Monitoring weit verbreitet und akzeptiert ist, besteht auch eine Community, um Hilfe bei Problemen zu erhalten.

    Grafana ist eine plattformübergreifende Open-Source-Anwendung zur grafischen Darstellung von Daten aus verschiedenen Datenquellen wie z. B. Prometheus. Es unterstützt die drei Säulen der Observability: Metriken, Logging und Tracing. Wir haben es für die grafische Darstellung von Metriken verwendet. Dabei bestehen vielfältige Möglichkeiten zur individuellen Darstellung von Daten. Diese Individualisierung ist einfach vorzunehmen.

    Die Kombination von Prometheus und Grafana bietet Ops einen Einblick in den Status ihrer verteilten Cluster. Die Indikatoren CPU, RAM und Festplatte ermöglichen es, die Kapazitätsplanung zu verwalten und Vorfälle in Bezug auf die Plattform zu antizipieren. Entwickler können über das Prometheus SDK ihre Metriken hinzufügen und messen, was für sie von Wert ist: Http-Codes, Seitenlatenz, Anwendungsbereitstellungen usw. Die Kombination von Dev- und Ops-Indikatoren ermöglicht es, die Auswirkungen der Infrastruktur auf die Anwendung und umgekehrt zu korrelieren. Die Kombination Prometheus / Grafana bietet ein sehr interessantes Paket für jede Art von Monitoring. Die Darstellung von Metriken über eine URL ist per Konstruktion einfach zu implementieren und das Hinzufügen von benutzerdefinierten Metriken auch.