Ihre Herausforderungen bei Site Reliability Engineering

Wir stehen vor einer neuen Ära, in der Public Clouds den Markt beherrschen. In der Vergangenheit setzten die Kunden auf ein klassisches Betriebsmodell, bei dem Anwendungsentwicklung und Betrieb strikt getrennt waren und die Anwendungen im eigenen Rechenzentrum von explizit verantwortlichen Organisationseinheiten betrieben wurden.

SRE dagegen ist das was passiert, wenn man Software Engineering, DevOps Prinzipien und die Automatisierungsmöglichkeiten der Cloud Plattformen zu einem neuartigen Betriebskonzept kombiniert – Die bisherigen gegensätzlichen Interessen von Entwicklung und Betrieb verschwinden, da die Bereitstellung und Überwachung von virtualisierten Betriebsmitteln jederzeit und vollautomatisiert durch Skripte und Build-Pipelines gesteuert wird. Wir helfen Ihnen gerne diesen Schritt zu gehen.

Die Produktivitätssteigerung durch SRE ist ganz erheblich, Personalkosten werden gesenkt, Leerlaufkapazitäten vermieden und Betriebsmittel werden punktgenau bereitgestellt.

Wenn Sie sich andererseits bereits in der Cloud befinden und die Software von externen Dienstleistern entwickelt wird, diese aber keine operative Verantwortung übernehmen, können wir Ihnen ebenfalls helfen. Neben der Übernahme der Betriebsverantwortung bieten wir als Full-Stack-Lösungsanbieter sowohl Entwicklungs- als auch Betriebsdienstleistungen an. Wenn Sie an unseren Full-Stack-Softwarelösungen interessiert sind, schauen Sie bitte unter Individualsoftwareentwicklung.

In unserem SRE-Team denken wir immer zwei Schritte voraus, was es uns ermöglicht, präventiv statt reaktiv zu arbeiten. Dinge, wie das unerwartete Wachstum eines Unternehmens aufgrund einer plötzlichen Expansion, können schwierig zu handhaben sein, wenn man darauf nicht vorbereitet ist. Unsere Lösungen können solche Situationen bewältigen. Basiert Ihre Architektur auf Automatisierung, Skalierbarkeit und Zuverlässigkeit? Unsere Dienstleistung umfasst die Entwicklung einer robusten, skalierbaren Architektur, die Risiken mindert, die Einhaltung der Ziele zu RTO (Recovery Time Objective) und RPO (Recovery Point Objective) sicherstellt, die Ausfallzeiten von Anwendungen minimiert und die Zuverlässigkeit der Daten gewährleistet.

Ihre Architektur erfüllt bereits Ihre Ziele, Ihr Produkt entwickelt sich jedoch nicht so schnell, wie es der Markt verlangt? Änderungen dauern zu lange, bis sie in die Produktion einfließen – und dies mit Fehlern, die zusätzliche Kosten verursachen? Dann können wir mit der Automatisierung von Continuous Integration (CI) und Continuous Deployment (CD) behilflich sein. Im Ergebnis hilft dies Ihrem Entwicklungsteam, neue Versionen effizienter zu prüfen und schneller in Produktion zu bringen. Mit unserer Dienstleitung werden Sie eine Qualitätsverbesserung Ihrer Software feststellen, denn „Je früher Sie Fehler erkennen, desto kostengünstiger sind sie zu beheben”.

Wirtschaftliche Kosten sind etwas, das wir immer im Auge behalten müssen. Deshalb wird die Cloud genutzt, um bessere wirtschaftliche Ergebnisse zu erzielen. Wir müssen sicherstellen, dass die Cloud-Lösung wie erwartet funktioniert, dass wir sie richtig nutzen und dass wir alle Verfahren automatisieren. Ist Ihre operative Seite voller manueller Eingriffe? Eines unserer Hauptziele ist es, manuelle Tätigkeiten zu reduzieren, um menschliche Fehler durch Automatisierung so weit wie möglich auszuschalten.

Kostet Ihre Cloud-Lösung mehr, als Sie zu zahlen bereit sind? Ist sie richtig dimensioniert? Bewältigen Sie den ganzen Tag über die gleiche Arbeitslast oder haben Sie Probleme mit dem Monitoring, Tracing oder der Alarmierung der Anwendung? Diese Fragen führen uns direkt zum nächsten Punkt – Überwachung: Wenn das Projekt startet, wird Site Reliability Engineering (SRE) nicht nur dazu beitragen, eine belastbare Infrastruktur zu entwerfen, die alle Ihre Geschäfts- und Zuverlässigkeitsanforderungen erfüllt, sondern es wird Ihrem Entwicklungsteam auch zeigen, wie es diese korrekt umsetzen kann. Und wenn Ihre Website live ist, wird SRE weiterhin die Skalierbarkeit der Anwendung überwachen und Lösungen vorschlagen, wenn Änderungen erforderlich sind, um die richtige Nutzung aller Dienste in der Cloud zu gewährleisten.

Was ist Site Reliability Engineering?

Site Reliability Engineering
SRE wurde entwickelt, um Vorfälle proaktiv zu identifizieren und zu beheben. Durch die Konzentration auf die Beobachtbarkeit mittels verbesserter Metriken, Protokolle, Traces und Dashboards ist SRE in der Lage, Probleme schneller zu lösen und den Anwendungsverantwortlichen einen besseren Alarmkontext zu bieten. Dies ist auf das Wissen von SRE zurückzuführen und ermöglicht ein besseres Verständnis dafür, wie alles miteinander verbunden ist.

Wenn sich ein Fehler in der großen Menge einzelner Teile nicht mehr einfach identifizieren lässt, brauchen Sie jemanden, der die Punkte verbindet und das Problem beheben kann. Aus diesem Grund ist die Rolle eines Site Reliability Engineers eine Kombination aus Entwickler, DevOps-Engineer und Systemadministrator.

Wenn unser SRE-Team mit Ihnen zusammenarbeitet, werden Sie eine deutliche Verbesserung gegenüber dem traditionellen Ansatz feststellen. SRE überbrückt die Lücke zwischen Entwicklung und Betrieb. Die Entwickler möchten, dass neue Funktionen den Benutzern so häufig wie möglich zur Verfügung stehen, während die Mitglieder des Betriebsteams dafür sorgen, dass alles reibungslos läuft und nichts kaputt geht. SRE ermöglicht den Entwicklungsteams einen schnelleren Einsatz, wobei auftretende Fehler als Indikatoren zur Verbesserung des allgemeinen Zustands Ihres Systems verwendet werden können.

SRE nutzt die neuesten Technologien, damit Ihr Unternehmen schneller und sicherer wachsen kann. Technologien wie Microservices können sehr komplex sein, gleichzeitig aber auch sehr vorteilhaft für Ihr Unternehmen.

Einer ihrer größten Nachteile ist es, Fehler zu finden und sie im Netz zu verfolgen. SRE verfügt über einige Grundprinzipien und bewährte Verfahren für den Aufbau erfolgreicher Überwachungs-, Rückverfolgungs- und Warnsysteme, wodurch die Schwierigkeiten von Microservices leichter zu bewältigen sind.

SRE verfolgt einen datenzentrierten Ansatz, der sich auf die Schaffung von Systemen konzentriert, die aus unvermeidlich auftretenden Fehlern und Ausfällen lernen. Anstatt zu versuchen, Fehler zu vermeiden, nutzt SRE sie, um zukünftige Probleme zu vermeiden und eine Fehlersituation in einen Vorteil zu verwandeln. Jedes Mal, wenn das System auf Probleme stößt, wird es zu einer Lernerfahrung, die das System besser, stärker und zuverlässiger macht.

SRE sucht ständig nach Möglichkeiten, das System zu verbessern und manuelle Prozesse zu automatisieren. Da die Automatisierung zunimmt und menschliche Fehler zunehmend aus der Gleichung herausgenommen werden, wird die Zuverlässigkeit der Dienste erhöht. Site Reliability Engineers müssen herausfinden, wie kleine, mühsame Aufgaben, die monoton und zeitraubend sind, automatisiert werden können. Die Automatisierung dieser Aufgaben ermöglicht es den Engineers, ihre Zeit effizienter und effektiver zu nutzen. Infolgedessen werden SRE-Teams, die sich um die Automatisierung von Arbeitsabläufen über den gesamten Software-Lebenszyklus bemühen, Ihre Betriebskosten erheblich senken.

Grundlage beim Einsatz von SRE bilden die folgenden Annahmen:

  • Sie arbeiten mit agilen Methoden und den neuesten Technologien.
  • Ihr Unternehmen nutzt eine Public Cloud.
  • Sie müssen ein schnelles Wachstum Ihres Unternehmens oder bestimmter Geschäftsbereiche bewältigen.
  • Es ist erforderlich, dass Sie gleichzeitig Schritthalten mit dem technologischen Fortschritt und den Anforderungen Ihres Unternehmens.

Unser Hauptziel ist es, sicherzustellen, dass Ihr Unternehmen effizient arbeitet, indem wir eine DevOps-Mentalität für maximale Zuverlässigkeit und Skalierbarkeit einsetzen. Die wichtigsten Inhalte und Themen dafür haben wir in der folgenden Grafik kategorisiert:

Tätigkeitsfelder von Site Reliability Engineering.Quelle: eigene Darstellung

Ihre Vorteile bei der Nutzung von Site Reliability Engineering

Es gibt zahlreiche Vorteile, die Sie durch die Zusammenarbeit mit unserem SRE-Team erzielen können. Entwickler und Betriebsteams müssen keine Teamverantwortlichkeiten mehr diskutieren und müssen nicht entscheiden, wann es an der Zeit ist, sich auf Zuverlässigkeit oder Geschwindigkeit zu konzentrieren, da sich das SRE-Team darum kümmert. Resilienz sollte für das Entwicklungsteam kein zeitraubendes Thema mehr sein: mit SRE ist sie nun ein inhärenter Bestandteil der Vorgehensweise. Mit unserem Team an Bord müssen Sie sich nicht zwischen Zuverlässigkeit oder Geschwindigkeit entscheiden; wir helfen Ihnen, beides zu erreichen. Automatisierung ist eine der Prioritäten unseres SRE-Teams, und um Automatisierung zu erreichen, arbeiten wir mit vielen verschiedenen Technologien.

Wir reduzieren die menschliche Interaktion und heben CI/CD auf eine neue Stufe. Dies ermöglicht es, Ihre Software so zu testen und auszuliefern, wie es das Entwicklungsteam benötigt.

Die Kombination aus Zuverlässigkeit und verbesserter Bereitstellungsgeschwindigkeit bedeutet mehr Zeit für die Entwicklung. Ihr aktuelles Produkt mag von Ihren Kunden geliebt werden, aber es gibt immer Raum für Verbesserungen. Niemals hat ein erfolgreiches Unternehmen aufgehört, neue Funktionen zu entwickeln oder bestehende zu verbessern. Je mehr neue Funktionen oder Produktverbesserungen vorangetrieben werden, desto zufriedener werden die Kunden sein. Unser Verständnis dafür, wie alles miteinander verbunden ist, stellt sicher, dass wir gemeinsam in der Lage sind, die besten Metriken, Logs und Traces über die gesamte Architektur hinweg zu erfassen. Dadurch können wir ein ganzheitliches Bild vom Gesundheitszustand des Systems zeichnen.

Das Resultat für Sie ist

  • Geringere Kosten aufgrund passgenauen Einsatzes von Cloud-Lösungen.
  • Geringerer Personaleinsatz zum Betrieb Ihrer Lösung führt zu niedrigeren Kosten
  • Die erhöhte Zuverlässigkeit und Geschwindigkeit Ihrer Lösung wird Ihre Kunden erfreuen.
  • Eine geringere Abwanderungsrate der Kunden wird dazu beitragen, dass Sie mehr Geschäfte abschließen können.
  • Automatisierung eliminiert die meisten menschlichen Fehler.
  • Sie erreichen einen effizienteren Anwendungsbetrieb aufgrund der verbesserten Resilienz.
  • Das CI/CD verbessert Ihre Anwendung und ermöglicht eine frühzeitige Fehlererkennung.
  • Die Vermeidung von Fehlern macht Ihre Lösung robuster.

Die Funktionsweise von Site Reliability Engineering

Kommt es bei Ihrem System zu unerwarteten Ausfallzeiten? Wir können Ihnen helfen, eine hohe Verfügbarkeit für Ihr System zu erreichen, indem wir die Vorteile der Cloud nutzen! In einem hochverfügbaren System wird Redundanz hinzugefügt, so dass der Ausfall einer Komponente nicht den Ausfall des gesamten Systems bedeutet. Health Checks können so konfiguriert werden, dass sie einen Ausfall bemerken und automatisch neue Instanzen erzeugt werden. Dies bedeutet: Keine Ausfallzeit und damit eine bessere Nutzererfahrung im Fehlerfall.

Haben Sie eine Spitzenlast, die Ihr System nicht bewältigen kann? Machen Sie sich keine Sorgen! Wir können Ihre Infrastruktur mit Auto-Skalierung einrichten: Skalieren Sie nach oben, wenn es mehr Last gibt, und nach unten, wenn die Last abnimmt. Dies verhindert Ausfallzeiten, erhöht die Effizienz in Hochlastsituationen und senkt die Kosten, indem nur die Infrastruktur verwendet wird, die Sie benötigen.

Wollen Sie mehr Umgebungen schaffen? Wir verwenden Infrastruktur as Code. Dadurch können wir besser auf Ihre Bedürfnisse eingehen, indem wir das gesamte System neu erstellen oder in kurzer Zeit eine neue Umgebung schaffen.

Verlieren Sie Ihre Daten nicht! Wir können automatische Backups für Ihre Datenbanken in der Cloud ermöglichen. Speichern Sie Ihre Daten in verschiedenen Verfügbarkeitszonen und stellen Sie sie wieder her, wenn etwas schief geht. Dies wird Ihnen helfen, Ihre Recovery Point Objectives (RPO) zu erfüllen. Reduzieren Sie die Zeit, die für die Freigabe neuer Funktionen in die Produktion benötigt wird. Wir können Ihnen helfen, Ihre CD/CI-Pipelines einzurichten, um Ihre Tests automatisch durchzuführen und Ihre neuen Funktionen auszurollen.

Benutzen Sie Microservices? Wir unterstützen Sie bei der Einrichtung einer Infrastruktur für Microservices in der Cloud. Dockerisieren Sie Ihre Anwendung und betreiben Sie Ihr System mit einem Container-Orchestrator wie Kubernetes oder AWS ECS.

Wissen Sie jederzeit, ob Ihr System wie erwartet funktioniert? Haben Sie eine Latenz-Anomalien in Ihren Diensten festgestellt? Unser SRE-Team unterstützt Sie bei der Verbesserung Ihrer Dienste durch die Implementierung einer maßgeschneiderten Monitoring-, Tracing- und Alarmierungslösung.

  • Wir arbeiten mit den besten verfügbaren Lösungen wie instana, prometheus, grafana, ELK, Jaeger, ZipKin und anderen.
  • Finden Sie mit OpenAPM heraus, welche Tools für Ihren Stack am Besten geeignet sind. Oder sammeln Sie Leistungs-, Tracing- und Geschäftsdaten aus Ihrer Anwendung mit der Software inspectIT von Novatec.

Individuelle OpenAPM Landkarte.Quelle: OpenAPM

Unsere Dienstleitungen für Site Reliability Engineering

Unsere Dienstleistung im Bereich SRE ist vielschichtig, der Ablauf einer SRE-Initiative ist immer individuell. Eine Sache steht allerdings immer am Beginn: Wir setzen uns mit Ihnen zusammen um zu verstehen, was für Sie wichtig ist und welche Ziele Sie erreichen wollen. Dadurch gewinnen wir ein besseres Verständnis dafür, wie Ihr Produkt funktioniert und was die Schlüssel zu seinem Erfolg sind.

Weitere gemeinsame Abstimmungen dienen dazu, Ihre Architektur zu verstehen, die Gründe für das Design Ihrer Architektur und die Art und Weise, wie sie Ihren Bedürfnissen entspricht. Wir werden eine Analyse der bestehenden Systeme anhand einer Checkliste durchführen, um herauszufinden, wie SRE Ihrem Unternehmen zugutekommen kann.

Nachdem wir Ihr Geschäft und die Anwendung auf technischer Ebene verstanden haben, schlagen wir ein Kooperationsmodell vor, mit dem Sie Ihre Ziele erreichen können. Dies kann, je nach der tatsächlichen Architektur und Ihren konkreten Bedürfnissen, variieren.

Wir treffen hauptsächlich auf zwei verschiedene Situationen:

  1. Wenn es noch keine Zusammenarbeit bei der Software-Entwicklung gegeben hat, schaffen wir die Infrastruktur und legen los!
  2. Wenn die Anwendung bereits mit Novatec entwickelt wurde, integrieren wir SRE in das Produktteam.

Unabhängig von der Fragestellung steht unser SRE-Team für die notwendigen Verbesserungen an Ihrem Produkt zur Verfügung.

Schließlich endet die Arbeit von SRE nie wirklich. Wenn Ihr System in Betrieb geht, werden wir weiterhin die Skalierbarkeit der Anwendung überwachen und Lösungen anbieten, wenn Änderungen erforderlich sind. SRE arbeitet kontinuierlich daran, neue Wege zur Verbesserung bestehender Systeme zu finden und manuelle Prozesse zu automatisieren. Damit verbessern wir das Monitoring, Logging und Tracing und optimieren so die Produkteffizienz durch Anpassung an mögliche zukünftige Ereignisse. Wir überwachen ständig die Leistung im Hinblick auf die Kundenspezifikationen für Datenschutz, Datensicherheit und effiziente Ressourcennutzung.

Was macht uns so besonders?

Wir fühlen uns verpflichtet, uns um Ihre Projekte so zu kümmern, als wären es unsere eigenen. Wir sind bestrebt, Ihr Produkt, Ihre Produktbedürfnisse und die Möglichkeiten zur Optimierung des Endbenutzererlebnisses zu verstehen und all unsere Expertise zu deren Verbesserung einzubringen.

Testen Sie uns!

Ihre Ansprechpartner

Novatec_Markus-Mueller

Markus Müller

Director Software Engineering

Dominik Meyer

Managing Director
Inhaltsverzeichnis
Markus Müller Director Software Engineering
Novatec_Markus-Mueller