eBook – Sechs Stolpersteine auf dem Weg zu erfolgreichem DevOps
Warum ein Binär-Repository-Manager unerlässlich ist
In diesem eBook werden Sie lernen:
- Die 6 häufigsten Hindernisse für schnelle Releases, die in Software-Delivery-Pipelines auftreten – von manuellen Prozessen bis hin zum Verschieben von Builds durch Ihre Pipeline.
- Wie ein Binär-Repository-Manager helfen kann, diese zu lösen, für schnelle, konstante Updates vom Code zum Kunden, indem er diese Builds in Bewegung hält, Ihre Artefakte speichert und Automatisierung ermöglicht.
- Was ist JFrog Artifactory
Heutzutage ist jedes Unternehmen ein Softwareunternehmen – auch Ihres.
Software gehört in Ihrem Unternehmen mittlerweile zum Tagesgeschäft, ob über den Desktop, die Cloud oder ein mobiles Gerät. Software ist Ihre Verbindung zu jedem Winkel dieser Welt. Autos sind Computer auf Rädern. Thermostate sind Datenterminals. Ihre Bank haben Sie auf dem Handy.
In dieser neuen Welt erfüllen Softwareupdates die Anforderungen der Kunden. Jedes Update, das Sie liefern, ist Ihre Gelegenheit, das Vertrauen der Kunden in Ihr Unternehmen weiter zu stärken. Gleichzeitig laufen Sie aber auch jedes Mal Gefahr, dieses hart erarbeitete Vertrauen mit einem verpfuschten Update auf einen Schlag zu zerstören. Wie können Sie jedes Update blitzschnell und mit höchster Qualität bereitstellen?
Repository-Management ist die Lösung
DevOps beschleunigt die Bereitstellung von hochwertiger Software, indem es Reibungsverluste zwischen den einzelnen Phasen und Interessenvertretern bei Prüfung, Bewertung und Freigabe reduziert. Die Ermittlung und Beseitigung dieser Problempunkte ist die Grundlage für erfolgreiches DevOps.
Ein Binär-Repository-Manager hilft Ihnen, Ihre Builds zu verwalten. Er speichert Ihre Artefakte, bewahrt aber auch Informationen über sie auf. Dadurch werden Unsicherheiten reduziert und Ihre Automatisierungstools können ungehindert und schnell arbeiten.
Diese sechs Stolpersteine verhindern einen zügigen Release und treten in der Regel in Software Delivery Pipelines auf. Ein Binär-Repository-Manager kann Ihnen dabei helfen, diese Probleme zu lösen, und Ihren Kunden rasche, kontinuierliche Updates zur Verfügung zu stellen.
Stolperstein 1:
Fehlende Build-Informationen
Ihre Entwicklerteams können täglich viele Builds erstellen. Wie behalten Sie die alle im Auge?
Ohne eine vielseitige Lösung wissen Sie vielleicht, welcher Build der aktuelle ist. Aber wissen Sie auch, welcher Build am besten ist? Außerdem können Sie den Build-Verlauf nicht verlässlich verfolgen und wissen oft nicht, woher die vielen Bestandteile stammen. Können Sie die Problemteile aufspüren und zurücksetzen, wenn Ihre Builds fehlschlagen? Idealerweise sollten Sie exakt bestimmen können, bei welchen Builds es Probleme gibt und wo im Buildprozess sie auftreten. Nur so können Sie oder Ihre Entwickler schnell eine Lösung bereitstellen.
Lösung:
Ein gemeinsames Archiv
Ein zentrales System für Ihre Builds ist eine Single Source of Truth für alle Artefakte in Ihrer Pipeline. Durch das Organisieren und Versionieren Ihrer Builds in Repositories können Sie problemlos den am besten funktionierenden und aktuellen Build finden.
Ein Repository-Manager, der nachverfolgt, wo Artefakte und ihre Vorgängerversionen verwendet werden, bietet umfangreiche Daten, mit denen sich alles auf die entsprechende Quelle oder den Vorgänger zurückverfolgen lässt. Sie erkennen schnell die Unterschiede zwischen den Versionen, erhalten Einblick in die Entwicklung der einzelnen Versionen und gewinnen Insights, die Ihnen helfen, Ihre Builds bei Bedarf zu überarbeiten.
Stolperstein 2:
Manuelle Prozesse
Jede Stelle in Ihrer Pipeline, die ein manuelles Einschreiten erfordert, stellt ein Risiko dar. Einzelne Sign-offs sorgen für Verzögerungen. Redundante Rebuilds für den Release führen zu Unsicherheiten. Skripts für das Tool-Management oder die Buildbereitstellung, die manuell geändert, gewartet und ausgeführt werden müssen, sind zeitaufwändig und fehleranfällig.
Jeder dieser kostspieligen Blöcke verzögert den Prozess.
Lösung:
Automatisierung und Prozessmanagement
Ein zentraler Binär-Manager für Ihre Builds und Artefakte nimmt Ihnen viel Arbeit ab. Wenn er dann auch noch Informationen über diese Builds und Artefakte sammelt, bietet er Ihnen damit einen unbezahlbaren Mehrwert. Je mehr Sie über Ihre Binärdateien wissen, desto besser können Sie ihre Build-Produktionstools automatisieren. So sind Sie dann in der Lage, intelligente Entscheidungen zu treffen und Ihre gesamte Pipeline bis zur Bereitstellung zu vereinheitlichen und zu beschleunigen.
Ihre Repository-Lösung muss Ihren Build-Tools eine umfassende, vielseitige Schnittstelle für Abfragen und Befehle zur Verfügung stellen, damit Sie möglichst wenig eingreifen müssen. Wenn eine standardmäßige, plattformunabhängige Austauschtechnologie wie REST APIs verwendet wird, können Sie den CI-Server frei wählen.
Sobald Sie Ihre Pipeline automatisieren können, ist sichergestellt, dass jeder Build-Release nach dem gleichen Prozess entwickelt wurde und einem gemeinsamen Standard entspricht.
Stolperstein 3:
Ungeordnete Abhängigkeiten
Entwickler skizzieren Abhängigkeiten für viele Programmiersprachen und Technologien, jede mit ihren eigenen Anforderungen und Schnittstellen. Wie lassen sich alle diese Abhängigkeiten verwalten?
Diese externen Ressourcen können sich jederzeit ändern, und die Qualitätskontrolle reicht von strenger Aufsicht bis hin zu gar keiner. Wie können Sie sicher sein, wie genau jeder einzelne Build aufgebaut ist? Wie können Sie bestimmte Builds zuverlässig reproduzieren? Welche schädlichen Änderungen könnten sich einschleichen?
Darüber hinaus können Ihre Buildprozesse nicht schneller ausgeführt werden als Ihre Verknüpfung mit diesen Remoteressourcen. Große Workloads verlangsamen die Builds, ein Ausfall kann Ihre ansonsten soliden Builds zum Scheitern verurteilen.
Lösung:
Abhängigkeitsmanagement
Bringen Sie Ihre Abhängigkeiten mit lokalen Repositories unter Kontrolle, bei denen die Remoteressourcen, in denen Abhängigkeiten gespeichert sind, über einen Proxyserver zugänglich sind. Mit einem lokalen Cache dieser Abhängigkeiten ist die benötigte Version immer verfügbar, sodass Sie Ihre Builds in Rekordgeschwindigkeit fertigstellen können.
Und es kommt noch besser: Sobald Ihre Abhängigkeiten von Ihrem binären Verwaltungssystem gesteuert werden, stehen Ihnen dafür dieselben Informationen zur Verfügung wie für andere Artefakte. So können Sie ihren Verlauf und ihre Verwendung verfolgen und wissen immer, welche Version einer Abhängigkeit in den verschiedenen Builds genutzt wird.
Stolperstein 4:
Builds durch die Pipeline bewegen
Viele Pipelines erfordern bei jedem Staging-Übergang von Testen, Validieren und Freigeben einen neuen vollständigen oder teilweisen Build des Codes.
Jeder neue Build nimmt zusätzliche Zeit in Anspruch und kann dazu führen, dass jeder Beteiligte manuell bewerten und starten muss. Schlimmer noch: Da die Entwickler den gemeinsam genutzten Code immer wieder ändern, bringt jeder neue Build Unsicherheiten mit sich, die es erforderlich machen, die gleichen Qualitätsprüfungen in jeder Phase zu wiederholen.
Wie wird ein Build, nachdem er die Prüfpunkte durchlaufen hat, physisch in die nächste Stufe befördert? Ein manueller Prozess zur Weiterleitung eines Builds an den nächsten Staging-Ort ist fehleranfällig. Außerdem benötigen Sie eine Möglichkeit, den Status dieses Builds auf seinem Weg durch die Pipeline an das gesamte Team zu kommunizieren.
Lösung:
Build Promotion
Beschleunigen Sie Ihre Pipeline, indem Sie für jede Evaluierungsphase ein separates Repository erstellen und unveränderliche Builds von einem Repository zum nächsten bereitstellen. Da der identische Build durch sukzessive strengere Genehmigungen weitergegeben wird, sammelt er auf seinem Weg durch die Bereitstellungskette laufend Informationen. Dadurch ist Ihre Pipeline-Automatisierung in der Lage, noch intelligentere Entscheidungen zu treffen und einsatzbereite Mechanismen wie Webhooks zu nutzen, um Änderungen an das gesamte Team zu kommunizieren.
Stolperstein 5:
Wachsenden Anforderungen gerecht werden
Die Anforderungen steigen immer stärker. Große Workloads von vielen Line-of-Business-Teams können Ihre gesamte Entwicklungspipeline verlangsamen, während jeder Single Point of Failure in Ihrer Infrastruktur katastrophale Auswirkungen haben kann. Geografisch verteilte Teams müssen in der Lage sein, immer die gleichen Pipelineressourcen mit der gleichen Geschwindigkeit zu erreichen. Und durch jede Unterbrechung des Dienstes aufgrund von Kapazitätsupdates oder -upgrades wird wichtige Produktionszeit verschwendet.
Lösung:
Enterprise Readiness
Enterprise-fähige Lösungen bieten die nötige Flexibilität und Leistungsfähigkeit für spätere Skalierungen. Ein Repository-Manager in der Cloud kann die Kosten für Speicher und Computing entsprechend Ihrer Anforderungen unendlich skalieren. Je mehr Cloud-Anbieter mit Ihrem binären Verwaltungstool kompatibel sind, desto mehr Kontrolle haben Sie. Und eine SaaS-Abonnementoption stellt sicher, dass Ihre Ressourcen immer verfügbar und stets aktuell sind.
Eine Konfiguration mit hoher Verfügbarkeit und Aktiv/Aktiv-Clustering kann die Reaktionsfähigkeit des Repository auch angesichts hoher Workloads sicherstellen. Diese Redundanz bietet auch Failover für Disaster Recovery und ermöglicht Erweiterungen und Wartung ohne Ausfallzeiten.
Ein Binär-Manager, der die Replikation mehrerer Standorte unterstützt, kann geografisch verteilten Teams die regionale Nähe bieten, die sie brauchen, um Ressourcen ihrer Pipelines schnell weltweit teilen zu können.
Stolperstein 6:
Kosten für die Anpassung an den Wandel
Wenn Sie alle Ihre Kunden erreichen möchten, müssen Sie in zahlreichen Programmiersprachen und über viele Laufzeiten hinweg entwickeln. Eine Abteilung kann für die Cloud in Go programmieren, während eine andere für Mobilgeräte Java nutzt. Dennoch hat jede Technologie ihre eigenen Anforderungen und unterstützenden Tools.
Welche Art von Infrastruktur werden Sie für DevOps verwenden? Im Moment ist die Ausführung in Ihrem eigenen Rechenzentrum möglicherweise die beste und sicherste Alternative. Aber vielleicht benötigen Sie schon morgen die Flexibilität der Cloud oder müssen eine Hybridumgebung einsetzen. Sie sollten die Möglichkeit haben, sich für die Anbieter zu entscheiden, die Ihren Anforderungen am besten entsprechen, und flexibel auf Anforderungen reagieren können.
Lösung:
Eine universelle Lösung
Ein universeller binärer Repository-Manager automatisiert Ihre Bereitstellungspipeline, unabhängig davon, welche Programmiersprache verwendet wurde oder auf welcher Plattform das Ganze läuft. Die Steuerung über REST APIs ermöglicht die Arbeit mit den Tools, die Sie bereits verwenden.
Als Kernstück Ihres DevOps-Systems muss Ihr binärer Repository-Manager in der Cloud genauso gut funktionieren wie auf Ihren eigenen On-Premises-Servern. Eine Lösung, die Builds in diesen Umgebungen problemlos bereitstellen kann, ist DevOps in einer leistungsstarken Hybrid-Cloud. Und dank der integrierten Unterstützung für alle großen Anbieter wie AWS, Google Cloud und Azure ist eine Multicloud-Strategie kein Problem. Sie müssen sich also nicht auf einen Anbieter festlegen.
Wie Sie dafür bezahlen möchten, sollte ebenfalls Ihnen überlassen sein. Ganz gleich, ob Sie die fixen Lizenzkosten oder ein flexibles SaaS-Abonnement benötigen – mit einer Lösung, die beide Optionen bietet, können Sie Systeme aufbauen, die nicht nur heute, sondern auch in Zukunft Ihren Anforderungen entsprechen.
Nächste Schritte
Mit einem voll funktionsfähigen binären Repository-Manager können Sie Ihre Software Delivery Pipeline automatisieren und eine neue Arbeitsweise entwickeln. Er gibt Ihnen die Kontrolle über Ihre Prozesse und liefert Ihnen Insights, sodass Sie Probleme umgehen und Ihre Methoden kontinuierlich verbessern können. Wenn Ihr Repository-Manager robust konzipiert ist, kann er sich flexibel an die speziellen Anforderungen Ihres Unternehmens anpassen.
Genauso wichtig ist, dass Ihr Lösungsanbieter Sie auch beim Thema DevOps unterstützen kann. Und er sollte über unterschiedliche Ansätze und Branchentrends Bescheid wissen. Vor allem brauchen Sie einen Partner, der sich für Ihren Erfolg einsetzt.