Blogartikel

30.07.2019

EcoSystem

So sparen Sie Administrationsaufwand mit dem EcoSystem

Kurioserweise ist in der Softwareentwicklung, bei der es darum geht jeden Tag etwas neues zu erschaffen, der Ansatz “Never change a running system” sehr weit verbreitet, wenn es um die zugrundeliegende Toolchain geht. Zu teuer sind Ausfallzeiten, wenn beim Update eines wichtigen Systems etwas schief geht und die Entwickler für einige Zeit nicht arbeiten können, oder wenn gar der aktuellste Arbeitsstand verloren geht. In diesem Post wird der notwendige Aufwand für die Installation und den Betrieb einer Toolchain auf unterschiedlichen Wegen miteinander verglichen.

Kurioserweise ist in der Softwareentwicklung, bei der es darum geht jeden Tag etwas neues zu erschaffen, der Ansatz “Never change a running system” sehr weit verbreitet, wenn es um die zugrundeliegende Toolchain geht. Zu teuer sind Ausfallzeiten, wenn beim Update eines wichtigen Systems etwas schief geht und die Entwickler für einige Zeit nicht arbeiten können, oder wenn gar der aktuellste Arbeitsstand verloren geht. Bereits die allgemein notwendigen Tätigkeiten zum Betrieb einer Toolchain benötigt sehr viel Aufwand und produziert Personalkosten. Die DevOps 2.0 in Deutschland Studie der IDC z.B. hat ergeben, dass die Personalkosten einer der größten Kostenblöcke für den Betrieb einer DevOps optimierten Infrastruktur darstellen.

Total Cost of Ownership

Hinzu kommt, dass die Administration einer Toolchain keine unmittelbar wertschöpfende Tätigkeit ist. In dieser Zeit könnte man stattdessen ja auch etwas für einen Kunden erledigen und damit die Arbeit in Rechnung stellen. So kommt es, dass häufig die benutzte Toolchain einmal aufgesetzt und anschließend nur mit minimalem Aufwand am Laufen gehalten wird.

Der Nachteil an diesem Vorgehen ist, dass man auf neue Features für bestehende Tools, oder gar komplett neue Tools, die die Arbeit effizienter machen würden oder die Qualität des entwickelten Produkts verbessern könnten, verzichtet. Um jedoch langfristig am Markt bestehen zu können, darf man nicht zu sehr ins Hintertreffen geraten, ansonsten wacht man an einem Tag auf und stellt fest, dass man einen wichtigen Trend verschlafen hat. Ist das der Fall, muss man umso mehr Aufwand in das Aktualisieren von Tools, Prozessen und Arbeitsweisen stecken.

Installation einer DevOps Toolchain

In diesem Artikel wollen wir zeigen, dass unser Cloudogu EcoSystem eine Plattform ist, um mit minimalem Aufwand eine Toolchain aufzusetzen und zu betreiben, wodurch mehr Kapazität für wertschöpfende Tätigkeiten frei wird. Unsere Plattform ermöglicht es, eine DevOps Toolchain an neue Gegebenheiten anzupassen, um flexibel wichtigen Trends folgen zu können und damit langfristig effizient Software zu entwickeln. Um dies zu verdeutlichen, werden wir den Aufwand zum Aufsetzen und zum Betrieb einer On-Premises-Toolchain in drei möglichen Wegen miteinander vergleichen:

  • Cloudogu EcoSystem: Benutzung der vorkonfigurierten Toolchain
  • Docker: Aufsetzen einer Toolchain unter Benutzung von Docker Containern
  • Konventionell: Tools werden “from scratch” installiert

Den konventionellen Weg beziehen wir in den Vergleich mit ein, da unserer Erfahrung nach noch viele der aktuell benutzten Tools so installiert wurden und auch in vielen Organisationen das noch der ganz übliche Weg ist, um Tools zu installieren. Ganz bewusst lassen wir SaaS-Toolchains aus der Betrachtung heraus, da diese eine komplett andere Zielgruppe, nämlich eine für die die Hoheit über die Bewegungsdaten eine untergeordnete Rolle spielt, ansprechen.

Ziel der Gegenüberstellung ist es, eine Basis-Toolchain ohne viele Extras und goldene Türklinken bereit zu stellen. Sie soll einen LDAP Server zur Authentifizierung, sowie Server für Build, Source Code Management, Issue Tracking, statische Code Analyse, sowie ein ArtifactRepository enthalten.

Aufwand zum Installieren der Toolchain

Wie zuvor beschrieben, wollen wir miteinander vergleichen, wie viel Aufwand entsteht, um eine Basis-Toolchain für Softwareentwicklung auf drei unterschiedlichen Wegen aufzusetzen. Die Aufwände, die wir angegeben haben, sind natürlich stark von der Erfahrung der durchführenden Person abhängig. Ein sehr erfahrener Administrator kann eine Toolchain sehr viel schneller aufsetzen als jemand Unerfahrenes. Daher haben wir versucht, die Zeiten auf Grundlage von eigenen Erfahrungen und Interviews für durchschnittlich erfahrene Administratoren abzuleiten. Alle drei Wege umfassen im Wesentlichen diese beiden Schritte:

  • Installation der Tools und Basis-Konfiguration
  • Verknüpfen der Applikationen mit Plugins und Konfiguration

Im Anschluss daran kann die Toolchain noch weiter individualisiert werden. Der Aufwand hierfür ist aber stark von den Vorkenntnissen und der Komplexität bzw. Anzahl der Schritte in den Prozessen abhängig und darüber hinaus auch eher eine Frage der Gestaltung durch die Softwareentwicklung und damit unabhängig vom Betrieb. Außerdem ist der Aufwand für diese Individualisierung für alle drei Wege identisch, daher wird diese hier nicht weiter betrachtet.

Vergleich der Installationsarten

Vergleich Aufwand Installation

1. Toolchain mit Docker

Wenn man bei Null anfängt, eine Toolchain mit Docker aufzusetzen, kann man das wahrscheinlich innerhalb einer halben Woche oder etwas weniger schaffen.

Die Installation der Applikationen umfasst die Auswahl der Container für die Applikationen und ggf. benötigten Datenbanken oder anderer sekundärer Applikationen und die Konfiguration von z.B. Ports und Systemusern zum grundsätzlichen Betrieb der Applikationen. Bei der Verknüpfung der Applikationen werden z.B. die Anbindungen an den LDAP Server konfiguriert und weitere Plugins für das Zusammenspiel der Applikationen installiert und konfiguriert.

2. Toolchain mit dem Cloudogu EcoSystem

Wenn man das Clodogu EcoSystem für seine Toolchain benutzt, kann man diese in weniger als 30 Minuten bereitstellen.

Nachdem man das EcoSystem installiert hat, ist keine grundsätzliche Konfiguration notwendig, da die gewünschten Tools bereits konfiguriert erhält und alle wesentlichen Plugins installiert sind.

3. Installation einer Toolchain auf konventionellem Wege

Durch Containerisierung ist das Administrieren von Applikationen bereits deutlich effizienter geworden, um das zu zeigen, wollen wir auch den konventionellen Weg, das Aufsetzen einer Applikation “from scratch” zeigen. Insgesamt kann man hier davon ausgehen, dass man ca. eine Woche benötigt um die Basis-Toolchain bereit zu stellen.

Dafür nehmen wir an, dass sobald die Applikationen laufen, dieselbe Zeit zum Konfigurieren und Individualisieren der Toolchain benötigt wird. Der Unterschied ist einfach der deutlich höhere Aufwand für die Installation der Applikationen.

Das Ergebnis

Wie in aus den Grafiken abgelesen werden kann, wird am wenigsten Zeit dafür benötigt, eine Basis-Toolchain mit dem Cloudogu EcoSystem aufzusetzen. Der konventionelle Weg ist mit Abstand der aufwändigste und der Docker-Weg ist auf jeden Fall schon deutlich schneller als der konventionelle. Die beiden großen Vorteile des Cloudogu EcoSystem sind die vorinstallierten und -konfigurierten Tools. Das spart sehr viel Zeit. Zusätzlich bietet das Cloudogu EcoSystem noch weitere Features, die ohne zusätzlichen Aufwand genutzt werden können.

Updates/Betrieb

Auch nach dem Aufsetzen der Toolchain im alltäglichen Betrieb gibt es je nach Art, wie sie aufgesetzt wurde, Unterschiede im notwendigen Aufwand zum Updaten der Toolchain. Wie beim Vergleich der Aufwände zum Installieren einer Toolchain, werden wir auch die Durchführung von Updates in den einzelnen Schritten vergleichen. Auch hier ist die benötigte Zeit stark von der eigenen Erfahrung abhängig und auch die Frequenz von Updates ist für jedes Tool unterschiedlich. Wir gehen davon aus, dass jedes Tool der Toolchain einmal geupdated wird. Ob man das nun einmal im Monat, im Quartal oder im Jahr macht, bleibt jedem selber überlassen.

Normalerweise beginnt man ein Update mit einer Recherche über die Verfügbarkeit eines Updates und den darin enthaltenen Änderungen. Anschließend führt man das Update durch und abschließend muss das Update noch getestet werden.

Der Betrieb im Detail

Vergleich Aufwand Betrieb

Recherche zu den Updates

Während der Recherche braucht man ca. 5 bis 10 Minuten pro Applikation dafür, um herauszufinden, ob es eine neue Version gibt und die Release Notes zu lesen und zu bewerten, ob man das Update durchführen sollte. Mit dem Cloudogu EcoSystem entfällt dieser Schritt, da man sich darauf verlassen kann, dass man alle relevanten Updates bekommt.

Durchführung der Updates

Bei der Durchführung von Updates mit dem Cloudogu EcoSystem müssen lediglich die Dogus aktualisiert werden, wobei der Vorgang für jede Applikation genau gleich ist:

  1. Liste aller verfügbaren Updates anzeigen lassen mit cesapp list-upgrades
  2. Updates der Dogus durchführen mit cesapp upgrade jenkins

Deswegen ist das Updaten etwas schneller als mit Docker, da man dort ggf. bei den Applikationen auf besondere Gegebenheiten Rücksicht nehmen muss. Außerdem ist es oft ratsam, die installierten Plugins der Applikationen zu aktualisieren. Bei nicht-containerisierten Applikationen können die Updates nochmal deutlich länger dauern, da diese in manchen Fällen komplett neu installiert werden müssen.

Ein Fall, den wir hier bisher noch nicht betrachtet haben, ist die Durchführung eines Major Updates. In diesem Fall kann die Durchführung durch eine eventuell notwendige Migration der Daten oder durch Inkompatibilität von Plugins auf dem konventionellen und dem Docker Weg sehr, sehr aufwändig werden. Beim Cloudogu EcoSystem ist der Aufwand für die Durchführung genauso gering wie bei Minor Updates.

Test der neuen Versionen

Im Nachgang des Updates müssen die neuen Versionen der Applikationen getestet werden, um sicherzustellen, dass alle Prozesse weiterhin funktionieren. Diese Tests sind für die konventionelle und die Docker Toolchain gleich. Bei der Toolchain mit dem Cloudogu EcoSystem fallen diese Tests etwas kürzer aus, da die Updates bereits grundsätzlich vor der Veröffentlichung der neuen Version der Dogus von uns getestet wurden. Daher müssen lediglich Individualisierungen überprüft werden.

Zusammenfassung Updates

Natürlich sind die Annahmen stark vereinfacht, da es schon große Unterschiede zwischen Minor und Major Updates der Applikationen geben kann und auch bei den Updates ist der Zeitaufwand stark von der Erfahrung des Administrators abhängig.

Grundsätzlich können wir aber festhalten, dass die Durchführung von Updates mit dem Cloudogu EcoSystem deutlich weniger aufwändig ist. Infolgedessen können diese regelmäßig durchgeführt werden, wodurch man wiederum immer den aktuellen Stand von Applikationen mit allen Sicherheitsfeatures, Bugfixes und Funktionen zur Verfügung hat.

Backup und Restore

Neben dem Updaten von Applikationen ist die Vermeidung von Datenverlust und das vereinzelte Wiederherstellen von Daten noch eine Regeltätigkeit im Betrieb der Tools. Das Cloudogu EcoSystem verfügt über ein integriertes Backup und Restore System, das es einem erlaubt auf sehr einfache Art und Weise Backups des gesamten Systems zu erstellen und bei Bedarf wieder herzustellen. Bedient wird das ganze bequem über eine Weboberfläche.

Backup und Restore

Einen Vergleich des Aufwands zur Durchführung von Backups und dem Wiederherstellen von Daten werden wir an dieser Stelle nicht vornehmen, da diese Systeme in der Regel individuell erstellt werden. Dadurch gibt es Implementierungen, die fast vollständig manuell sind und andere, die fast vollständig automatisiert sind. Wir können aber festhalten, dass Backup und Restore mit dem Cloudogu EcoSystem sehr bequem und schnell über eine Weboberfläche konfiguriert und durchgeführt werden können, ohne dass man etwas dafür tun muss.

Fazit

Effiziente Installation und Betrieb mit dem Cloudogu EcoSystem

Zu sehen ist, dass sowohl die einmalige Installation als auch der fortlaufende Betrieb einer Toolchain auf Basis des Cloudogu EcoSystem deutlich weniger Aufwand verursacht als vergleichbare Toolchains auf Basis von Docker Containern oder “from scratch”installierten Tools.

Bei der Installation ist außer der Auswahl der Tools keine weitere Konfiguration oder Recherche notwendig. Auch während des Betriebs ist keine Recherche für Updates notwendig, da die Updates der Tools bereits in den Dogus vorgetestet sind. Außerdem ist der Updateprozess an sich standardisiert.

Zusätzliche Features des Cloudogu EcoSystem

Wie zu Beginn dieses Posts erwähnt, haben wir die Installation und den Betrieb einer sehr rudimentären Toolchain untersucht. Das Cloudogu EcoSystem bietet zusätzlich zu der beschriebenen Toolchain noch weitere Features und Tools, die ohne zusätzlichen Installations- und Betriebsaufwand genutzt werden können und die die alltägliche Arbeit weiter vereinfachen.

Da gibt es einerseits die vereinfachte Navigation zwischen den Applikationen mit dem Warp Menü, selbstredend mit einem Single Sign-on und nicht nur dem gleichen DirectoryService, für alle Tools. Darüber hinaus gibt es noch weitere Tools wie das Wiki Smeagol mit PlantUML-Integration oder das Cockpit, in dem personalisierte Dashboards bequem per Drag-n-Drop erstellt werden können. Ein weiterer Vorteil ist die einfache Vervielfältigung der Instanzen des Cloudogu EcoSystem. So kann man auf einfache Art mehrere, komplett voneinander getrennte Instanzen seiner Toolchain parallel betreiben. Auch können weitere Tools sehr einfach aus den verfügbaren Dogu-Pool installiert werden, um die Toolchain zu erweitern.

Wie schon im Abschnitt zu Updates und Betrieb erwähnt, bringt das Cloudogu EcoSystem ein Backup und Restore System mit, das den Nutzern ohne zusätzlichen Aufwand zur Verfügung steht. Das spart vor allem Aufwand bei der Installation der Toolchain, da man sich keine Gedanken über Worst-Case machen muss. Oft wird dieser auch in kleineren Organisationen zunächst ausgelassen; bis man dann einmal vor einem Scherbenhaufen steht und sich denkt: “Hätten wir mal bloß schon unsere Backups eingerichtet…”

Man kann also sehen, dass das Cloudogu EcoSystem nicht nur sehr viel Zeit bei der Installation und beim Betrieb einer Toolchain sparen kann, sondern dass es darüber hinaus auch noch eine Menge Features mitbringt, die einen zusätzlichen Nutzen bringen.

Tags