Top 13 Site Reliability Engineer (SRE) Tools

Die Rolle und die Verantwortlichkeiten eines Site Reliability Engineer (SRE) können je nach Größe der Organisation variieren, ebenso wie die Tools des Site Reliability Engineer. In den meisten Fällen konzentriert sich ein Site Reliability Engineer auf mehrere Aufgaben und Projekte gleichzeitig, so dass für die meisten SREs die verschiedenen Tools, die sie verwenden, ihre sich entwickelnden Verantwortlichkeiten widerspiegeln. Ein typischer SRE ist damit beschäftigt, Code zu automatisieren, Zu bereinigen, Server zu aktualisieren und Dashboards kontinuierlich auf Leistung usw. zu überwachen, so dass sie mehr Tools in diesem Toolbelt sehen werden. Aus diesem Grund können die Tools und Plattformen, die ein SRE verwendet, von Organisation zu Organisation sehr unterschiedlich sein.

Zum Beispiel ist in kleineren Organisationen oder Startups das Personal tendenziell begrenzter, so dass ein Site Reliability Engineer möglicherweise mit mehreren Tools wie Golang, Terraform, Docker, CircleCI und Puppet vertraut sein muss, um nur einige zu nennen. In größeren Organisationen kann ein Standortzuverlässigkeitsingenieur stärker auf bestimmte Verantwortlichkeiten fokussiert oder isoliert sein, daher kann sein Toolset eingeschränkter sein. Und in einigen Fällen kann ein SRE nur konzentriert oder damit beauftragt sein, Tag für Tag in Jenkins zu arbeiten. Es kommt nur auf die Situation an. Schauen wir uns einige der gebräuchlichsten und beliebtesten Tools für Die Zuverlässigkeit von Websites an. Dies ist offensichtlich keine umfassende Liste, sondern gibt Ihnen eine allgemeine Vorstellung von der Breite des Wissens und der Erfahrung, die ein SRE möglicherweise nutzen muss.

 

Programmiersprachen

Ingenieure für Die Zuverlässigkeit von Websites müssen Erfahrung mit verschiedenen Programmiersprachen haben, aber noch wichtiger ist, dass sie wissen, wie sie diese Sprachen verwenden, um alle Aufgaben zu automatisieren. Schauen wir uns einige der gebräuchlichsten Programmiersprachen an, auf die eine SRE-Gruppe stoßen wird, wie Python, Golang und Ruby.

 

1. Python

Python ist eine der gebräuchlichsten und beliebtesten Programmiersprachen auf dem Land. Es ist eine Allzwecksprache, was bedeutet, dass es eine breite Palette von Anwendungen hat, wie das Rückgrat von Websites oder Webanwendungen, das Automatisieren von Aufgaben oder sogar das Testen. Tatsächlich wird es von Unternehmen wie Netflix, Venmo und Dropbox verwendet, um nur einige zu nennen. Python ist leicht zu erlernen, daher ist es gut für jemanden, der gerade erst anfängt, aber auch vielseitig und umfangreich für Python-Experten. Das Beste von allem ist, dass es Open-Source ist und eine große Support-Community dahinter hat.

 

2. Golang

Golang oder Go ist eine Open-Source-Programmiersprache, die 2009 von Google entwickelt wurde und zur Erstellung von Softwareprogrammen verwendet wird. Go ist im Vergleich zu anderen Sprachen leicht zu erlernen, besonders wenn Sie bereits C oder Java kennen und auch gut skalieren können. Es ist auch extrem schnell, da es sich um eine kompilierte Sprache handelt, was bedeutet, dass der geschriebene Code sofort automatisch in Maschinencode konvertiert wird. Golang ist auch die Macht hinter anderen Diensten, die SREs verwenden, wie Docker, Terraform und Kubernetes. Im Vergleich zu Python ist Go nicht so beschreibend, so dass Programmierer in einigen Fällen möglicherweise mehr Codezeilen schreiben müssen, um eine bestimmte Funktion auszuführen, verglichen mit Python.

 

3. Rubin

Ruby ist eine serverseitige Open-Source-Programmiersprache, wie die Sprachen Python oder PERL. Ruby ist eine dynamische Programmiersprache, daher gibt es keine festen Regeln, wenn es um das Erstellen von Funktionen geht und wird hauptsächlich für die Entwicklung von Webanwendungen verwendet. Während Ruby selbst große Vorteile hat, wird es in Kombination mit dem Rails-Web-Framework als Ruby on Rails (RoR) bekannt. Andere Programmiersprachen wie HTML (HyperText Markup Language), JavaScript und CSS (Cascading Style Sheets) (Cascading Style Sheets) enthalten keine Aspekte von Front-End- und Back-End-Diensten, was Ruby on Rails von anderen Sprachen unterscheidet. Aufgrund der Flexibilität von Ruby on Rails wird es in einer Vielzahl von Branchen und Organisationen wie Airbnb, Shopify, GitHub und Fiverr eingesetzt.

 

Container/Microservices

Containerisierung und Microservices sind schnell zu einer entscheidenden Technologie geworden, die es Unternehmen ermöglicht, Anwendungen schneller zu entwickeln und freizugeben sowie sie über verschiedene Umgebungen hinweg zu skalieren. Plattformen wie Docker, Kubernetes und Nomad sind einige der führenden Lösungen für die Unterstützung moderner Anwendungen in den ständig wachsenden Cloud-nativen Umgebungen.

 

4. Docker

Docker ist eine beliebte Open-Source-Containerisierungsplattform, mit der Benutzer Anwendungsquellcode und Abhängigkeitspakete in einem einzigen Container oder Docker-Container verpacken können. Docker sowie andere Containerisierungslösungen ermöglichen es, Anwendungen in einer Vielzahl von Umgebungen zu verpacken und auszuführen, ohne Faktoren wie betriebssysteme oder andere spezifische Systemkonfigurationen berücksichtigen zu müssen. Aufgrund dieser Flexibilität werden Anwendungen tragbarer und können überall ausgeführt werden, ohne sich um äußere Faktoren kümmern zu müssen. Darüber hinaus eignet sich die Containerisierungstechnologie für CI/CD, sodass Entwickler kontinuierlich Code aktualisieren und Anwendungen schneller und effizienter bereitstellen können.

 

5. Kubernetes

Kubernetes ist ein Open-Source-Container-Orchestrierungssystem, das bei der Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen unterstützt wird. Umgebungen können komplex sein und aus mehreren Plattformen oder mehreren Cloud-Umgebungen bestehen. Kubernetes wird verwendet, um all dies für Sie zu verwalten. Während dies Docker bemerkenswert vertraut erscheinen mag, ist Kubernetes kein direkter Konkurrent zu Docker, da Kubernetes zusätzlich mit der Docker-Plattform verwendet werden kann. Docker hat jedoch eine eigene Orchestrierungslösung namens Docker Swarm. Kubernetes wird verwendet, um viele Container gleichzeitig zu verwalten, Anwendungen zu aktualisieren, ohne den Dienst für Benutzer zu unterbrechen, und den Gesamtzustand von Anwendungen zu überwachen. Kubernetes kann auch beim Lastenausgleich helfen, um sicherzustellen, dass Anwendungen in großem Maßstab funktionieren, sowie Unterstützung für Authentifizierung und Sicherheit auf Infrastrukturebene bieten.

 

6. Nomade

Nomad ist eine weitere Container-Orchestrierungsplattform. Der Hauptunterschied zwischen Nomad und Kubernetes besteht darin, dass Nomad für das Unix-Betriebssystem entwickelt wurde. Auf der anderen Seite ist Kubernetes für Linux-Container-basierte Anwendungen konzipiert. Im Vergleich zu Kubernetes ist Nomad viel einfacher, was die Anzahl der Dienste besteht, auf die es angewiesen ist. Kubernetes stützt sich auf eine Vielzahl anderer Dienste, um Funktionen bereitzustellen. Nomad benötigt oder verlässt sich nicht auf externe Dienste. Aus diesem Zusammenhang kann Kubernetes in Bezug auf Einrichtung und Konfiguration viel ressourcenintensiver sein. Zu den Unternehmen, von denen bekannt ist, dass sie Nomad verwenden oder verwendet haben, gehören Cloudflare, Pandora, Roblox und viele andere.

 

Konfigurationsverwaltung

Konfigurationsmanagement-Tools ermöglichen es einem Site Reliability Engineer, verschiedene Aufgaben wie Software-Upgrades und Patches, Sicherheit, Benutzerverwaltung und vieles mehr zu verwalten, zu verfolgen, zu steuern und vor allem zu automatisieren. Diese Tools helfen SREs auch, diese verschiedenen Aufgaben in großem Maßstab zu automatisieren. Schauen wir uns einige der gebräuchlichsten Konfigurationstools wie Terraform, Ansible und Chef an.

 

7. Terraform

Terraform ist eine Open-Source-Software von HashiCorp, die als IaC- oder Infrastructure-as-Code-Lösung gilt. Terraform ist zusammen mit Ansible, über das wir als nächstes mehr sprechen werden, zwei der am häufigsten verwendeten Tools für einen Site Reliability Engineer und DevOps-Teams. Terraform wird zum Bereitstellen, Verwalten und Orchestrieren von Infrastrukturen verwendet, unabhängig davon, ob diese Infrastruktur lokal, in der Cloud oder in einer Kombination aus beidem wie in einer hybriden Umgebung erfolgt. Die Verwendung einer Lösung wie Terraform ist effizienter als der Versuch, Infrastrukturen bereitzustellen und zu verwalten, insbesondere bei mehreren Anbietern. In der Vergangenheit hätte dieser Prozess ein ganzes Team von Individuen in Anspruch genommen. Jetzt können Entwickler und SREs infrastrukturengemäss bereitstellen. Eine Plattform zu haben, die all dies an einem Ort verwalten kann, ist auch für die Konsistenz und Zusammenarbeit von Vorteil.

 

8. Ansible

Ansible ist wie Terraform ein Open-Source-Konfigurationsmanagement-Tool. Sie haben viele Ähnlichkeiten und werden in einigen Fällen als komplementäre Lösungen verwendet, aber es gibt einige wichtige Unterschiede zwischen den beiden Lösungen. Zum Beispiel basieren die Playbook-Anweisungen von Ansible auf YAML, sind aber in python-Sprache geschrieben, die Erweiterbarkeit sowie die Handhabung einer Vielzahl von Rollen und Skripten bietet. Terraform verwendet eine eigene Konfigurationssprache namens HCL.

Wenn wir tiefer zwischen den beiden graben, konzentriert sich Ansible mehr auf die Veränderlichkeit, ein Konzept, mit dem Entwickler vertraut sind. Veränderlichkeit dreht sich um die Idee, dass etwas, in diesem Fall eine Ressource, verändert werden kann. Um eine Ressource zu ändern, können Sie sie ändern (veränderbar) oder vollständig neu erstellen (unveränderlich). Ansible konzentriert sich auf die Veränderlichkeit oder den Versuch, den Status einer Ressource zu ändern, anstatt sie zu zerstören, was für traditionellere IT-Umgebungen besser ist. Auf der anderen Seite konzentriert sich Terraform auf Unveränderlichkeit, die für Cloud- oder Hybridumgebungen besser sein kann.

 

9. Küchenchef

Chef ist ein weiteres Open-Source-Konfigurationsmanagement-Tool, das eher Ansible oder Puppet ähnelt, ein weiteres Tool, das häufig von SREs und DevOps-Teams verwendet wird. Chef unterstützt mehrere Plattformen wie Windows, Ubuntu, Solaris, Linux, FreeBSD und mehr. Es kann auch mit Cloud-basierten Anbietern wie Amazon, Google Cloud Platform, Azure und anderen integriert werden. Im Gegensatz zu Ansible basiert es jedoch auf der Programmiersprache Ruby, was es zu einer einfachen Wahl für Entwickler und Teams macht, die mit der Arbeit in dieser Sprache vertraut sind. Wie bei den anderen Tools, die wir besprochen haben, besteht das Ziel jedes dieser Tools darin, so viel manuelle Arbeit wie möglich zu entfernen. Umgebungen können täglich komplex und noch schwieriger zu verwalten sein, weshalb ein Tool wie Chef ein Segen für SREs und DevOps-Teams sein kann.

 

Überwachung & Analyse

Schließlich muss ein Site Reliability Engineer in der Lage sein, seine Anwendungen zu überwachen und den IT-Stack zu vervollständigen, um eine kontinuierliche Funktionalität, Leistung und Verfügbarkeit sicherzustellen. Diese Überwachungs- und Analysetools müssen auch in der Lage sein, sofortige Warnungen zu senden, wenn Anwendungen ausfallen oder diese Leistungsmetriken die vordefinierten Schwellenwerte nicht erfüllen. SREs verfügen über eine Vielzahl von Monitoring-Lösungen und Tools, um sicherzustellen, dass SLA (Service Level Agreements) und SLO (Service Level Objectives) immer in ausreichendem Bereich sind. Schauen wir uns beliebte Tools und Lösungen wie Prometheus, Grafana, Kibana und Dotcom-Monitor an.

 

10. Prometheus

Wie viele der Tools auf dieser Liste ist Prometheus eine weitere Open-Source-Software, die von Site Reliability Engineers verwendet wird. Es ist eines der beliebtesten Tools mit SREs, da es gut mit Kubernetes funktioniert und über umfangreiche Funktionen und Plugins verfügt, die es unterstützt. Prometheus wird verwendet, um Metriken über Ihre Infrastruktur und Anwendungen zu überwachen und zu sammeln und diese Daten in Form von Dashboards und Visualisierungen auszugeben. Einer der Hauptunterschiede zwischen Prometheus und anderen Überwachungstools besteht darin, dass Prometheus einen eigenen Datenspeicher verwendet, um Daten über die Metriken zu sammeln, die es überwachen kann. Andere Tools basieren auf einer separaten Datenbank, um Überwachungsdaten und Metriken abzuziehen. Prometheus kann jedoch in eine umfangreiche Liste anderer Datenbanken und Lösungen von Drittanbietern integriert werden.

 

11. Grafana

Grafana ist ein Open-Source-Analyse- und Überwachungstools, das von SREs verwendet wird, um Daten und Metriken auf einen Blick zu visualisieren. Grafana kann auch mit verschiedenen Warnungen konfiguriert werden, so dass die richtigen Teams oder Einzelpersonen sofort benachrichtigt werden können, wenn Probleme auftreten. Dashboard-Panels können mit den wichtigsten Metriken konfiguriert werden. Zu den von Grafana unterstützten Datenquellen gehören Prometheus, MySQL, Elasticsearch, SQL, AWS (Amazon Web Services) und viele mehr. Diese Dashboards können auch einfach mit anderen Teammitgliedern geteilt werden, indem Sie einen Link oder sogar einen schnellen Schnappschuss erstellen und senden. Schließlich unterstützt Grafana viele der Tools, die SREs und ihre Teams täglich über Plugins verwenden, wie Splunk, MongoDB, Jira, Cloudflare und viele andere.

 

12. Kibana

Kibana ist eine weitere Dashboard-Visualisierungssoftware, die bei SREs beliebt ist. Kibana ist eine Front-End-Anwendung, die kostenlos verwendet werden kann, jedoch proprietär für Elasticsearch ist und in Verbindung mit dem Elastic Stack (früher ELK Stack) funktioniert. Kibana verfügt über eine Vielzahl von Funktionen und Visualisierungstypen wie Heatmaps, Kreisdiagramme, Zeitreihendiagramme usw. Diese Daten können auch über geographische Karten eingesehen werden. Wie andere Tools können diese Visualisierungen sicher mit Teammitgliedern, Kunden, Stakeholdern usw. geteilt werden. Kibana unterstützt viele andere Tools, Integrationen von Drittanbietern und verfügt über eine starke Benutzergemeinschaft für technische Probleme und Supportanforderungen.

 

13. Dotcom-Monitor

Dotcom-Monitor ist eine umfassende Überwachungsplattform, die von Unternehmen verwendet wird, um alles von Websites, Webanwendungen und Webdiensten bis hin zu vollständiger End-to-End-Transparenz der IT-Infrastruktur zu überwachen. Die Plattform bietet Technikern für Standortzuverlässigkeit die Funktionen, die sie benötigen, um ihre spezifischen Überwachungsanforderungen einzurichten und anzupassen. Teams können verschiedene On-Demand-SLA- und Leistungsberichte ausführen sowie Echtzeit-Dashboards anzeigen, um die fortlaufende Leistung ihres gesamten Stacks sicherzustellen. Dotcom-Monitor lässt sich auch in Kommunikationsplattformen und Warnhilfen von Drittanbietern integrieren, die DevOps-Teams verwenden, z. B. Azure, Slack, PagerDuty, VictorOps und viele mehr.

Sehen Sie, wie Dotcom-Monitor im Vergleich zu anderen Überwachungsplattformen auf dem Markt wie Uptrends, Site24x7, Datadog und anderen abschneidt.

 

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on email
Email
Share on print
Drucken