Fachartikel

Praktische Überlegungen zu Anwendungsleistung und DevOps

Aufgrund der abteilungsübergreifenden Ausrichtung wird DevOps von vielen als ein Konzept angesehen, das über die Agile-Bewegung weit hinausgeht. So hat es sich bei der Beschleunigung von Entwicklungszyklen, der Leistungsverbesserung und der Fehlerreduzierung in den Entwicklungsteams als effektiv erwiesen. Allerdings setzt das Prinzip einen Kulturwandel und eine neue Palette an Fähigkeiten voraus. Die Kernfrage lautet also: Wo soll man anfangen? Unser Fachartikel widmet sich dieser Frage und erklärt dabei auch die Grundlagen von DevOps.
Ziel von DevOps ist es unter anderem, einen gemeinsamen Blick von Entwicklungs- und Betriebsteams auf Systemvorgänge herzustellen.
DevOps lässt sich aus verschiedenen Perspektiven betrachten: Zunächst einmal ist DevOps eine Entwicklungsmethodik, die auf einer fortlaufenden Integration und Übermittlung basiert. Es wird dabei durch eine Reihe von Konfigurationsverwaltungstools wie Chef, Puppet, Salt und Ansible unterstützt. Allerdings können wir uns DevOps auch als vereinfachte Reihe von Prinzipien vorstellen, die Richtlinien für Entwicklungs- und Bereitstellungsverfahren vorgeben: alles automatisieren, alles überwachen und alles protokollieren. Dabei liegt allen Verfahren das Ziel zugrunde, sichtbar zu machen, wie sich jede Änderung in einem schnelllebigen, iterativen Prozess auf die Leistung auswirkt.

Die Grundlagen
Die Grundidee von DevOps besteht darin, dass Entwickler und Betriebsteams zusammenarbeiten müssen. Die Betriebsteams müssen den Entwicklern beim Erstellen der Anwendungen in Echtzeit Informationen zu ihrer Ausführung liefern, sodass diese entsprechend die Leistung verbessern können. Somit liegt ein entscheidender Aspekt beim Aufbau einer DevOps-Kultur darin, dass Anwendungsausführung und Leistungsengpässe für die Entwicklungs- und Betriebsteams transparent sind. Jede kompetente Führungskraft weiß, dass Teams gut zusammenarbeiten, wenn sie ein gemeinsames Ziel haben und allen die Notwendigkeiten gleichermaßen bewusst sind. Bei der Anwendungsentwicklung heißt das: Damit DevOps einen Nutzen erzielt, muss jeder an einem Strang ziehen und denselben Blick auf die Fakten haben. Nur so ist allen in gleicher Weise klar, was funktioniert und was nicht.

Das mag zwar simpel klingen, doch sind in der Realität die verschiedenen Teams, die an Anwendungen arbeiten, meist isoliert organisiert. Jedes Team verwaltet dabei ein eigenes Dashboard und hat einen ganz eigenen Blick auf seinen speziellen Teil des App Stacks. Im Ergebnis führt dies dann schnell zu Schuldzuweisungen und Problemen, die sich im leeren Raum zwischen den Teams und in den Wechselbeziehungen zwischen den Komponenten des App Stacks verbergen.

Ein sinnvoller erster Schritt zur Verwirklichung von DevOps ist daher die Bereitstellung eines einheitlichen Blicks auf die Fakten für die Teams, das heißt eines gemeinsamen Rahmens, der allen Teammitgliedern zeigt, was in der Anwendung, der Datenbank, dem Betriebssystem, dem Hypervisor, dem Hostserver und den Speichersystemen vor sich geht. Wenn DevOps so organisiert ist, gibt es keine Schuldzuweisungen mehr, da klar erkennbar ist, wo die Probleme liegen – in einer Weise, die keine Zweideutigkeit zulässt, sondern nur Handeln.

Die Implementierung
In diesem Sinn finden Sie im Folgenden fünf Empfehlungen zur Implementierung einer DevOps-Kultur in Ihrem Unternehmen:
  1. Entwicklern direkte Überwachungsmöglichkeiten bieten für die Produktions-, Staging- und Testserver: Erst wenn ein Entwickler das tatsächliche Verhalten des Codes bei ausgelasteten Datenbanken sieht, kann er sich vorstellen, wie sich die Anwendung letztendlich verhält.
  2. Teams Autonomie bei der Leistungsbeobachtung verschaffen, indem Zugriffsbeschränkungen und isolierte Leistungsinformationen abgeschafft werden. Wenn die Entwickler einen direkten Einblick in die Leistung erhalten, ist ihre Kooperation mit den Datenbankadministratoren und den Betriebsteams konstruktiv – ganz ohne um Informationen betteln müssten.
  3. Leistung als ausdrückliche Anforderung benennen – und zwar im Vorfeld: Die Leistung ist schon viel zu lange ein Aspekt, der erst im Nachhinein Beachtung findet, wenn die funktionalen Spezifikationen abgehakt sind. Wenn die speziellen Leistungsanforderungen zu einem wesentlichen Bestandteil des Entwurfsprozesses werden und die Leistung früh im Entwicklungszyklus getestet und bewertet wird, ist sichergestellt, dass sie nicht zu einem späteren Zeitpunkt flüchtig abgehandelt wird.
  4. Gemeinsame Messdaten festlegen, sodass Entwicklung, Produktion und Management eine gemeinsame Basis haben, um Ergebnisse vergleichen, Fortschritte bewerten und die Auswirkung von Änderungen nachverfolgen zu können. Software- und Systemtechniker können ihre Arbeit mithilfe einer gemeinsamen Basis für Diskussionen und für die Bewertung des Fortschritts besser auf dasselbe Ziel ausrichten.
  5. Die Endbenutzererfahrung in den Fokus stellen, unabhängig davon, ob es sich beim Endbenutzer um einen externen Kunden oder den Owner einer Anwendung in einem internen Geschäftsbereich handelt. Wenn sich die IT auf den Service konzentriert, ist das Serviceniveau für den Kunden tatsächlich die einzig maßgebliche Metrik, nach der die IT-Abteilung zu bewerten ist. Mit dem gemeinsamen Ziel eines reaktionsschnellen, zuverlässigen Service für Endbenutzeranwendungen können Produktion und Entwicklung zusammen an der Verwirklichung dieses Ziels arbeiten.
Mehr als nur Monitoring
Zwei weitere Überlegungen sind wichtig. Zunächst einmal reichen Überwachungstools allein nicht aus. Eine Überwachung der Integrität liefert lediglich einen Status "betriebsbereit" oder "nicht betriebsbereit", wobei in der Regel vorwiegend grüne, gelbe oder rote Statusanzeigen für Dutzende oder Hunderte von Komponenten eine Rolle spielen. Diese sind zwar hilfreich, um festzustellen, ob etwas ausgefallen ist, sie können jedoch kaum die Ursache eines Problems und die Zusammenhänge zwischen den Komponenten aufzeigen. Ein System kann äußerst ineffizient sein, obwohl im Überwachungs-Dashboard alle Anzeigen grün leuchten, da keine spezielle Komponente ausgefallen ist. Deshalb muss ein System unbedingt auch aus der Leistungsperspektive betrachtet werden, um Wartezeiten und Engpässen auf den Grund zu gehen.

Die zweite Überlegung ist, dass DevOps-Teams versuchen, alles zu überwachen. Das Ergebnis sind Protokolle von einem GByte und mehr, die erweiterte Tools und sehr viel Zeit für die Analyse erfordern. Zwar können die resultierenden Diagramme visuell sehr beeindruckend sein, doch beschränkt sich ihr Nutzen auf ihre Fähigkeit, Einblicke zu vermitteln. Ein TByte an Protokolldaten ist nutzlos, wenn daraus nicht hervorgeht, wo das Problem liegt.

Fazit
Zusammenfassend lässt sich sagen, dass Entwicklungs- und Betriebsteams besser zusammenarbeiten, wenn sie die gleiche Ansicht vom System zur Verfügung haben, in der alle Schichten des App Stacks und die Abhängigkeiten zwischen ihnen transparent sind und sie über eine Leistungsperspektive verfügen, die sich auf die Suche nach Engpässen und Einblicken konzentriert, die ein Eingreifen fordern. Auch ohne die Komplexität eines umfassenden Konfigurationsverwaltungssystems kommen Sie mit den richtigen Zielen und effektiven Leistungstools einen Schritt weiter auf dem Weg zum DevOps-Nirwana – und damit zu schnelleren Anwendungen und einem beschleunigten Innovationsprozess.
29.04.2015/ln/Gerardo Dada, Vice President, Product Marketing and Strategy bei SolarWinds

Nachrichten

Paketanalyse mit Wireshark-Funktionen [19.11.2019]

Allegro Packets rollt für seine Analyse- und Monitoring-Software "Allegro Network Multimeter" ein umfassendes Upgrade aus. Highlight der Firmware 2.5 ist laut Hersteller das Feature Webshark, das Funktionen von Wireshark direkt im Browser bereitstellt. [mehr]

Besser im Blick [18.10.2019]

Axis Communications, Anbieter netzwerkbasierter Video-, Audio- und Zutrittskontrolllösungen, kündigt mit der "AXIS Companion version 4" die neueste Version seiner Software zur Verwaltung von Sicherheitssystemen an. Das Produkt bietet einige erweiterte Funktionen, unter anderem lassen sich Warnmeldung direkt an ein mobiles Gerät senden und die Systemverwaltung per Fernzugriff tätigen. [mehr]

Tipps & Tools

Vorschau Januar 2020: LAN, WAN & SDN [16.12.2019]

Die Netzwerkinfrastruktur gehört wahrscheinlich nicht zu den heißesten Themen im IT-Bereich, nimmt jedoch einen enormen Stellenwert für Administratoren ein. Denn ohne stabile Grundlage kommt es schnell zu Engpässen im Datendurchsatz und Ausfällen von Applikationen. IT-Administrator startet das neue Jahr deshalb mit dem Schwerpunkt "LAN, WAN & SDN". Darin zeigen wir unter anderem, wie Sie Netzwerkgeräte mit rConfig, Jinja2 und Netdisco verwalten. Außerdem lesen Sie, wie Sie Anmeldungen mit dem Microsoft Network Policy Server unter Kontrolle behalten. In den Tests werfen wir einen Blick auf die NetBrain Integrated Edition 8.0. [mehr]

Fernzugriff auf PRTG Core Server [24.11.2019]

PRTG Network Monitor wird in vielen Unternehmen für das Monitoring der IT-Infrastruktur verwendet. Nicht selten kommt die Frage auf, wie der Zugriff auf den PRTG Core Server auch von außerhalb des Unternehmensnetzwerks möglich ist. Was der Admin hier beachten muss und welche Vorkehrungen wichtig sind, um Zugriffe durch unautorisierte Dritte zu verhindern, zeigt dieser Tipp. [mehr]

Buchbesprechung

Technik der IP-Netze

von Anatol Badach und Erwin Hoffmann

Anzeigen