Über unsMediaKontaktImpressum
[Sponsored Post] 02. Juni 2020

Entwicklungsplattform automatisiert installieren

Die Bereitstellung und der laufende Betrieb der Entwicklungs-Toolchain ist sehr aufwändig. Besonders, wenn durch eine Vielzahl von Projekten hohe Anforderungen an deren Flexibilität gestellt werden. Hierdurch entstehen für Unternehmen nicht nur erhebliche Kosten, auch die Agilität der Entwicklungsteams leidet darunter. Abhilfe bietet die Lösung des Braunschweiger IT-Dienstleisters Cloudogu. Das Cloudogu EcoSystem ist so konzipiert, dass die Toolchain in weniger als einer Stunde implementiert werden kann. Eine effiziente Wartbarkeit schont zudem die Ressourcen, die für einen reibungslosen Betrieb benötigt werden.

In der Softwareentwicklung nimmt die Marktdynamik beständig zu. Deswegen müssen die Entwicklungsteams in der Lage sein, zeitnah auf Veränderungen und neue Kundenanforderungen zu reagieren. Das bedingt eine Toolchain, die sich schnell an die Anforderungen von neuen Projekten anpassen lässt. Hierzu müssen der unternehmensinterne Betrieb und die Entwicklungsteams eng zusammenarbeiten. In den vergangenen Jahren hat sich für genau diese Zusammenarbeit der Begriff DevOps etabliert. Die Idee hinter DevOps ist es, Software schneller und in besserer Qualität zum Kunden zu bringen. Dafür ist neben einer entsprechenden Unternehmenskultur eine technische Umsetzung wichtig, die eine enge Zusammenarbeit zwischen Abteilungen ermöglicht.

Die Herausforderung dabei ist, die sich über die Jahre hinweg etablierten Arbeitsweisen und Tools im Rahmen der Einführung von DevOps abteilungsübergreifend zu synchronisieren und zu vereinheitlichen. Hinzu kommt, dass Mitarbeiter oft genug in mehrere Projekte gleichzeitig eingebunden sind und ihre Leistung von unterschiedlichen Standorten aus erbringen – wobei die einzelnen Projekte wiederum häufig individuelle Arbeitsweisen, Prozesse und Tools ausgebildet haben. Damit die kollaborative Entwicklung über Projekt- und Abteilungsgrenzen hinweg gelingt, müssen also zwei Voraussetzungen im Unternehmen geschaffen werden: Es muss ein gemeinsames Set an Vorgehensweisen vorhanden sein, dass alle Entwicklungsprojekte verbindlich umspannt. Und es ist eine zentrale Plattform notwendig, die standardisiert alle Werkzeuge bereitstellt. Ein gemeinsames Tool-Set erlaubt es den Fachleuten, überall und an jedem Projekt zu arbeiten, ohne sich jedes Mal neu in die zugrunde liegenden Werkzeuge einarbeiten zu müssen. Und neue Teammitglieder müssen nur den Umgang mit einer Toolchain erlernen.

Wirtschaftliche Toolchain

Auf dem Weg zu einer integrativen und kollaborativen Entwicklungsinfrastruktur über das gesamte Unternehmen hinweg sind also einige Hürden zu nehmen. Im Idealfall werden im ersten Schritt die Prozesse und Tools vereinheitlicht. Im zweiten Schritt muss dann die übergreifend definierte Toolchain implementiert werden. Häufig sind diese Toolchains individuelle Zusammenstellungen unterschiedlicher Werkzeuge. Diese uneinheitlichen Teile zu einem Gesamtsystem zusammenzufassen und zu integrieren, ist alles andere als trivial. Denn jedes Tool verfügt über eigene Authentifizierungsmechanismen, unterschiedliche Schnittstellen, spezifische Konfigurationsmöglichkeiten und dergleichen mehr. Auch die Wartung der Tools erfordert einiges an Ressourcen. Es ist also wirtschaftlich und organisatorisch wichtig, den laufenden Betrieb der Toolchain bereits im ersten Schritt mitzudenken.

Welchen Aufwand die Implementierung einer Toolchain erfordert, zeigt sich an einem einfachen Beispiel: Allein um eine aus vier Tools bestehende Basis-Toolchain komplett von Hand aufzusetzen, muss der Administrator mehrere Arbeitstage einplanen. Zunächst sind die benötigten Server zu installieren und zu konfigurieren – ein Vorgang, der bei einer Bare-Metal-Installation schon zwei bis vier Tage in Anspruch nehmen kann. Zusätzlich schlägt die Konfiguration der Tools in der Praxis mit ein bis zwei Tagen zu Buche. Die Integration der Tools, etwa in eine Single-Sign-On-Lösung, würde weitere Arbeitszeit binden. Der Einsatz von Container-Technologien wie Docker macht den Vorgang etwas einfacher und damit schneller. Die Installation der Server ist dann in der Regel in gut einem Arbeitstag zu schaffen. Die Konfiguration der einzelnen Tools erfordert aber denselben Aufwand wie bei einer manuellen Installation, hier müssen erfahrungsgemäß auch ein bis zwei Tage eingeplant werden. Bis die Toolchain also komplett verfügbar ist, ist eine halbe Arbeitswoche des Administrators notwendig.

Mit dem Setup der Entwicklungs-Toolchain ist die Arbeit der IT-Administratoren allerdings noch nicht erledigt. Der tägliche Betrieb einer individuell zusammengestellten Werkzeugsammlung ist ebenfalls sehr aufwändig. Allein die zum Teil deutlich voneinander abweichenden Update-Verfahren und -Zyklen der Tools verursachen viel Arbeit: Der beliebte Build-Server Jenkins zum Beispiel erhält normalerweise alle zwölf Wochen eine neue LTS-Version – in den ersten neun Wochen des vergangenen Jahres kam Jenkins auf elf Releases, die getestet und integriert werden mussten. Jedes Tool hat seine eigenen Update-Zyklen, dazu kommen noch unregelmäßige Security-Patches.

Automatisch und zentral

Beide Ansätze engen dadurch die Möglichkeiten der Entwicklungsteams ein, flexibel und adaptiv auf neue Herausforderungen zu reagieren. Um die Bereitstellung der Toolchain innerhalb kürzester Zeit zu ermöglichen, bietet sich ein Ansatz an, der weitgehend automatisiert alle benötigten Komponenten installiert und konfiguriert. Das Cloudogu EcoSystem (CES) basiert auf containerisierten Tools, die über ein zentrales Backend verfügbar sind. Die Lösung versammelt zahlreiche bewährte und beliebte Tools wie Jenkins, Nexus Repository, SonarQube oder Smeagol. Diese sind eng miteinander integriert und vorkonfiguriert. Installiert werden die Tools in einer virtuellen Maschine, die vor Ort betrieben werden kann. Die Implementierung erfolgt in drei einfachen Schritten:

  1. Benötigt wird nur ein Server mit Hypervisor. Das CES unterstützt hier die meisten üblichen Systeme wie VMWare oder OpenVM. Die Basis-VM muss lediglich heruntergeladen und importiert werden. Weitere Informationen dazu im CES Quickstart-Guide [1].
  2. Im zweiten Schritt wird zunächst das System konfiguriert und installiert. Dazu greift der Administrator über ein Web-Interface auf das CES zu und registriert die Instanz am Backend. Das kann zum Beispiel bequem über das eigene GitHub-Konto erfolgen. Anschließend werden grundlegende Einstellungen wie die Auswahl des gewünschten Verzeichnisdienstes oder des Mailservers vorgenommen und die benötigten Entwicklungstools per Mausklick ausgewählt. Die Installation der Tools erfolgt dann komplett automatisch.
  3. Nach dem Setup steht die Entwicklungsplattform ohne weitere Konfigurationsschritte bereit. Optional kann noch das persönliche Dashboard nach Wunsch eingerichtet werden.

Die Installation nimmt so weniger als eine Stunde in Anspruch. In größeren Unternehmen oder in Entwicklungsorganisationen mit einer geringen Tool-Varianz können auch diese manuellen Schritte überflüssig gemacht werden. Dazu lässt sich die komplette Installation des Cloudogu EcoSystem über einen Deployment Descriptor end-to-end automatisieren. Damit eignet sich dieser Ansatz auch für den Einsatz mit Self-Service-Portalen, wie sie in vielen großen Unternehmen bereits zum Standard gehören.

Industrialisierung der Softwareentwicklung

Auch nach dem Setup entlastet das CES den Administrator erheblich, da alle Updates zentral und vereinheitlicht über das Cloud-Backend bereitgestellt werden. Sie können dadurch nicht nur mit wenig Aufwand und für alle Tools auf exakt dieselbe Weise eingespielt werden. Sie haben außerdem bereits Integrationstests durchlaufen und verursachen deswegen nur wenig Testaufwand. Das gilt auch für Major-Updates, bei denen oft viele Abhängigkeiten überprüft werden müssen.

Erfolgen die Abläufe automatisch, sinkt die Gefahr von schwerwiegenden Fehlern.

Neben der deutlich einfacheren Implementierung und Wartung bringt ein hoher Automatisierungsgrad noch einen weiteren, nicht zu vernachlässigenden Vorteil mit sich: Zuverlässigkeit. Denn manuelle Eingriffe in bestehende Prozesse bergen immer die Gefahr von Fehlern. Fehler bei der Konfiguration der unterschiedlichen Tools können auch einem erfahrenen Administrator schnell unterlaufen. Erfolgen die Abläufe so weit als möglich automatisch, sinkt die Gefahr von Varianzen – und damit auch von schwerwiegenden Fehlern, die zu Behinderungen bei den Entwicklungsprozessen oder im schlimmsten Fall zu Sicherheitslücken führen können. Durch diese hohe Zuverlässigkeit ist das Risiko bei Änderungen deutlich geringer, wodurch es wiederum möglich ist, auf die speziellen Anforderungen von Teams einzugehen – etwa, um neue Tools für einzelne Teams in die Toolchain zu integrieren oder um ein Upgrade eines Tools zu installieren, damit eine neue Funktion nutzbar wird.

Fazit

Automatisierung ist eine zentrale Forderung von DevOps – und das zu Recht, denn Automatisierung hilft dabei, unvermeidbare Fehler durch manuelle Interaktion zu vermeiden und gleichzeitig einen Prozess schnell zu durchlaufen. Doch sollte die Automatisierung nicht nur auf die Entwicklungs- und Build-Prozesse der eigenen Softwareprodukte zielen, sondern auch die Bereitstellung und den Betrieb der zugrundeliegenden Entwicklungsinfrastruktur umfassen. Erst sie erlauben es, einen hohen Standardisierungsgrad und eine niedrige Fehlerwahrscheinlichkeit zu erreichen, ohne dass bei Funktionalität oder Usability Abstriche gemacht werden müssen. Der Ansatz des Cloudogu EcoSystem nutzt dazu die Vorteile eines cloud-basierenden Backends wie Flexibilität und einfache Nutzbarkeit. Gleichzeitig sorgen die vor Ort installierten Instanzen für ein hohes Maß an Sicherheit und Kontrolle, da sich alle relevanten Daten jederzeit innerhalb der eigenen Organisation befinden. So können Entwicklungsabteilungen und -teams agil und flexibel arbeiten. Das standardisierte Toolset entlastet die IT-Administratoren, senkt die Betriebskosten und wird dabei allen Anforderungen an eine moderne, zukunftssichere Entwicklungsplattform gerecht. Dadurch werden die industriellen Tugenden auf die Softwareentwicklung übertragen und neue Möglichkeiten bei Flexibilität, Agilität und letztlich Time to Market geschaffen.

Autor

Daniel Huchthausen

Daniel Huchthausen ist Consultant bei der Cloudogu GmbH aus Braunschweig. Er steht sowohl Kunden als auch Kollegen als Scrum Master und als Experte für Anforderungs- und Testmanagement, sowie Prozessanalyse und -optimierung zur…
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben