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 virtualisierte Infrastrukturen. 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.
F.A.Q
Häufig gestellte Fragen
-
Monitoring : Was ist das?
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 oder auch „Die vier goldenen Signale des Monitoring“
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.
-
Welche AWS Services haben wir in unserem Projekt benutzt?
- 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
-
Was genau ist APM?
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.
-
Warum haben wir uns für Grafana und Prometheus entschieden?
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.