7 DevOps-Taktiken zur allgemeinen Leistungsverbesserung

Der Einsatz von Devops kann zwar schwierig sein, aber die Wahl zwischen schnellerer Entwicklung und höherer Zuverlässigkeit kann und darf es nicht sein. [...]

Foto: Pexels/Pixabay

Devops steht in erster Linie für die Zusammenarbeit zwischen Entwicklern und operativen Teams, um die Bereitstellung und Zuverlässigkeit von Anwendungen in der Produktion zu verbessern. Die gängigsten Best Practices zielen darauf ab, manuelle, fehleranfällige Verfahren, die an den Grenzen zwischen Entwicklungs- und Ops-Teams verwaltet werden, durch robustere Automatisierungen zu ersetzen. Dazu gehören die Automatisierung der Bereitstellungspipeline mit CI/CD (Continuous Integration and Continuous Delivery), die Standardisierung von Konfigurationen mit Containern und die Konfiguration von Infrastruktur als Code.

Auf der Ops-Seite umfassen die Best Practices von Devops zur Verbesserung der Anwendungszuverlässigkeit die Verbesserung der Beobachtbarkeit von Anwendungen, eine verstärkte Überwachung und die Automatisierung von Cloud- und Infrastrukturoperationen.

Aber wie sieht es mit der Verbesserung der Leistung von Anwendungen, Datenbanken, Datenpipelines und der Cloud-Infrastruktur aus? In diesem Beitrag wurden sieben Möglichkeiten identifiziert, bei denen Devops-Praktiken und -Methoden die Leistung und das Benutzererlebnis erheblich beeinflussen können.

Integrieren Sie von Anfang an Sicherheitsmaßnahmen in Anwendungen

Das Letzte, was Devops-Teams brauchen, ist die Bereitstellung neuer Funktionen mit Sicherheitsschwachstellen. Ein Ausfall oder eine Beeinträchtigung der Sicherheit wirkt sich auf die Benutzererfahrung aus und führt zu erheblichen Geschäftsproblemen.

Eine Best Practice von Devops besteht darin, die Sicherheit zu priorisieren, indem sie bei Projekten eng mit Infosec zusammenarbeiten, innerhalb von CI/CD-Pipelines auf Code-Schwachstellen testen und andere Sicherheitspraktiken in der Softwareentwicklung implementieren.

Mike Elissen, Senior Developer Advocate bei Akamai, sagt: „Eine kritische Komponente der App-Zuverlässigkeit ist die Zuverlässigkeit, und die Ergreifung geeigneter Maßnahmen zur ordnungsgemäßen Absicherung einer App gegen Webanwendungsangriffe, DDoS-Angriffe und mehr kann den Unterschied zwischen online und offline bedeuten.“

Elissen sagt, dass der wichtigste Teil der Transformation von DevOps zu DevSecOps ist.

Er fährt fort: „Wir sehen, dass diese Transformation bei der Integration von Sicherheit in Devops immer ausgeprägter wird, was letztlich zu einer stärkeren Devsecops-Kultur führt und mehr Entwickler für die Sicherheit ihrer Apps sensibilisiert und verantwortlich macht.“

Standardisieren Sie Architektur- und Infrastruktur-Pläne

Amir Rozenberg, Vice President of Product Management bei Quali, weist auf ein Problem hin, das sich auf die Teamleistung auswirkt. Er sagt: „Viele Devops-Teams stehen vor dem Problem, das Chaos organisch gewachsener Definitionen von Anwendungsinfrastrukturen zu organisieren, die in guter Absicht zu einem frühen Zeitpunkt entwickelt wurden, um die Teameffizienz im Softwareentwicklungszyklus zu erhöhen.“

Rozenberg stellt die Frage, ob Devops-Teams bei der Erstellung von Umgebungen einen Do-it-yourself-Ansatz verfolgen sollten oder ob die Organisation Standards schaffen sollte.
Er sagt: „Der empfohlene Ansatz besteht darin, ein zentrales Team einzurichten, das Umgebungen in Form von Blaupausen modelliert, damit sie zuverlässig, wiederverwendbar und normgerecht sind. Sie müssen dann in der Lage sein, diese Infrastrukturdefinitionen so zu verteilen, dass sie für die Geschäftskomponenten über einen schnellen Self-Service zur Verfügung stehen, sei es integriert in die automatisierte Pipeline oder auf händische Art und Weise.“

Führen Sie kontinuierliche Tests und Beobachtung in die CI/CD Pipeline ein

Matt Sollie, Director of Devops bei 66degrees, ist der Meinung, dass CI/CD mehr kann als nur Code paketieren und pushen. Er sagt: „Nicht alle Devops-Prinzipien sind so glamourös oder sichtbar wie Continuous Delivery oder Building Everything as Code, aber sie sind genauso wichtig. Kontinuierliche Integration ist eine Komponente einer ausgereiften Devops-Position, die die Zuverlässigkeit einer Anwendung erheblich steigern kann, aber es braucht Zielstrebigkeit, eine Vision und Zeit, um sie auf sinnvolle Weise aufzubauen.“

Sollie räumt ein, dass das Erreichen von Zuverlässigkeits- und Leistungszielen nicht nur eine Vision, sondern auch Investitionen in Methoden und optimale Architekturen erfordert. „Beobachtbarkeit ist ein wichtiger und kostspieliger Grundsatz, denn Zuverlässigkeit ist kein ein- oder ausgeschalteter Zustand und erfordert eine differenzierte Datenerfassung. Bei all den Cloud-Computing-Diensten kann die Auswahl des richtigen Tools oder Dienstes für die jeweilige Aufgabe inhärente Zuverlässigkeits- und Leistungsvorteile bringen.“

Was sollten agile Entwicklungsteams in ihren Pipelines implementieren, um die Leistung zu verbessern? Einige Empfehlungen:

  • Implementieren Sie kontinuierliche Tests, bevor Sie die Häufigkeit der Bereitstellung erhöhen.
  • Ziehen Sie Service-Virtualisierung in Betracht, um Microservices und APIs von Drittanbietern zu testen.
  • Sorgen Sie für durchschaubare CI/CD-Pipelines [engl.], um die Fehlererkennung zu verbessern und Pipeline-Probleme zu isolieren

Kontrollieren Sie die Bereitstellung mit Feature Flags und Canary Releases

Die Bereitstellung muss nicht unbedingt so erfolgen, dass alle Benutzer alle Änderungen auf einen Schlag erhalten. Feature-Flags [engl.] im Code helfen dabei, die Verfügbarkeit eines Features zu konfigurieren und zu kontrollieren, während Canary-Release-Strategien [engl.] es Devops-Teams ermöglichen, neue Funktionen langsam und methodisch auszurollen.

John Kodumal, CTO und Mitbegründer von LaunchDarkly, fügt hinzu: „Feature-Management, insbesondere Feature-Flags, entwickeln sich schnell zu einer gängigen Devops-Praxis, die die allgemeine Zuverlässigkeit und Leistung von Anwendungen verbessert und es Entwicklern ermöglicht, kontinuierlich Innovationen vorzunehmen. Durch den Einsatz von Feature-Flags können Entwickler Feature-Updates vor der Produktion testen, um Probleme vor der Veröffentlichung zu beheben.“

Die Kontrollen verbessern nicht nur die Zuverlässigkeit und Leistung, sondern helfen Entwicklerteams auch, Unterbrechungen zu minimieren. Kodumal sagt: „Feature Flags verbessern die Leistung und geben gleichzeitig den Teams die notwendige Kontrolle, um Anwendungen ohne Unterbrechungen oder Ausfallzeiten zu aktualisieren.“

Legen Sie strenge Maßstäbe für die Beobachtbarkeit und Überwachung fest

Wenn wir uns nun auf die Ops-Seite der Devops-Verantwortlichkeiten konzentrieren, sollten Teams mehrere Best Practices zur Verbesserung der App-Performance in Betracht ziehen, darunter die Entwicklung von Beobachtungsstandards und die Verbesserung der Überwachung.

Frédéric Harper, Director of Developer Relations bei Mindee, sagt:

„Devops müssen strenge Überwachungs- und Beobachtungsprozesse implementieren, um sicherzustellen, dass jeder Teil der Anwendung korrekt funktioniert und dass die Serverprozesse reibungslos ablaufen. Durch die Sicherung dieses Elements können die Devops-Teams wertvolle Informationen sammeln, um zu verstehen, wie die Benutzer die Anwendungen nutzen, um möglicherweise zukünftige Probleme zu vermeiden, um den Kundensupport zu erleichtern und um Geschäfts- oder Architekturentscheidungen auf der Grundlage echter Daten zu verbessern.“

Erweitern Sie Ihre Möglichkeiten mit AIops und Automatisierung

In den Web 2.0-Tagen hatte der Betrieb nur eine Handvoll Protokolldateien und Überwachungstools zur Verfügung, die bei Ausfällen oder Leistungsproblemen überprüft werden konnten. Heute bedeutet der Betrieb von Microservices, serverlosen Anwendungen und Multicloud-Datenbanken, dass wesentlich mehr Daten und Tools zur Verfügung stehen, um Vorfälle zu lösen und die Ursachen von Problemen zu identifizieren.

AIops-Plattformen, die Überwachungsdaten zentralisieren, maschinelles Lernen nutzen, um Warnungen zu korrelieren, und den Betrieb dabei unterstützen, die Reaktion und Wiederherstellung über mehrere Plattformen hinweg zu automatisieren, können dazu beitragen, Leistungseinbußen zu minimieren.

Mohan Kompella, Vice President of Product Marketing bei BigPanda, stimmt dem zu: „AIops-Plattformen können Devops-Teams dabei helfen, ihre Tooling-Autonomie und -Flexibilität zu bewahren, während sie gleichzeitig zentralisierten Incident-Respondern die Transparenz geben, die sie benötigen, um die erste Abwehrmaßnahme bei Ausfällen zu sein.“

Definieren Sie SLOs und Fehlerbudgets

Devops-Teams sollten abwägen, welche Praktiken den größten Nutzen bringen und welche Risiken sie angehen. Dies erfordert, dass die Teams messen, lernen und bei den Devops-Prioritäten zusammenarbeiten, was nicht einfach ist, wenn die Vorteile erst Monate oder Jahre nach der Implementierung der Praktiken und Tools realisiert werden können.

Eine Methode, um Prioritäten zu setzen, ist die Einführung von Site-Reliability-Engineering-Praktiken, die Definition von Service-Level-Zielen (SLOs) und die Verwendung von Fehlerbudgets. Wenn eine Anwendung oder ein Microservice sein Fehlerbudget überschreitet, ist dies ein Signal für das Devops-Team, die Ursachen zu identifizieren und sich auf Lösungen zu konzentrieren.

Kit Merker, COO bei Nobl9, sagt: „Service-Level-Ziele setzen klare Ziele für Entwicklungsteams, um bessere Entscheidungen über die Priorisierung ihrer Arbeit zu treffen. Devs und ITops können nicht nur technikzentriert sein, sondern auch servicezentriert.“

Devops-Teams haben viel zu tun, und die Best Practices für Devops helfen ihnen dabei, ein Gleichgewicht zwischen der Beschleunigung der Entwicklung und der Verbesserung der Zuverlässigkeit und Leistung zu finden.

Der Schlüssel zum Erfolg kann dabei in der Definition von Problemstellungen, der Diskussion von Ansätzen, der Iteration von Lösungen und der Messung der Auswirkungen liegen.

*Isaac Sacolick ist Präsident von StarCIO und der Autor des Amazon-Bestsellers Driving Digital: The Leader’s Guide to Business Transformation through Technology, der viele Praktiken wie agile Planung, Devops und Data Science behandelt, die für erfolgreiche digitale Transformationsprogramme entscheidend sind. Sacolick ist ein anerkannter Top-Social-CIO und Influencer im Bereich der digitalen Transformation. Er hat mehr als 700 Artikel auf InfoWorld.com, CIO.com, seinem Blog Social, Agile, and Transformation und anderen Websites veröffentlicht.


Mehr Artikel

Fast jedes zweite Unternehmen sieht Investitionen in die Private Cloud vor (c) Unsplash
News

Das Jahr der Datacenter

Der Blick auf das IT-Trendportfolio 2024 zeigt eine hohe Marktdurchdringung in Bezug auf vorhandene Netzwerkinfrastruktur und Datacenter-Hardware, so eine aktuelle Studie von techconsult, die sich ITWelt.at genauer angesehen hat. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*