Blog

Alle Beiträge mit dem Tag Devops

Crows? von Dave W - Lizenz: Creative Commons BY

Schnelle Datacenter-Rollouts mit Krähenschwarm und BitTorrent

Das englische Wort Murder lässt sich nicht nur als Mord, also das Kapitalverbrechen, ins Deutsche übersetzen. Im Englischen hat es noch eine weitere Bedeutung, es ist nämlich auch die Bezeichnung für einen Krähenschwarm („a flock of crows“).

Twitter ist einer der größten Rechenzentren-Betreiber der Welt. Wenn der Kurznachrichtendienst eine neue Version seiner Webseite oder anderer Komponenten seines IT-Systems ausliefert, müssen astronomische Datenmengen auf unzählige Server verteilt werden. Mit herkömmlichen Rollout-Werkzeugen stößt man dabei schnell an die Grenzen des Machbaren.

Wenn es das Ziel ist, mehrmals täglich Updates zu verteilen, ein Update aber mehrere Stunden für sich in Anspruch nimmt, muss man besondere Wege beschreiten.
weiterlesen

TracEE – Log-Analyse in verteilten JavaEE-Anwendungen

Das Nachvollziehen von Systemaufrufen zur Problemanalyse in verteilen JavaEE-Anwendungen anhand von Log-Dateien ist anstrengend und kostet Zeit. Gerade bei der Analyse von Störungen in einer Produktionsumgebung ist man von der Geschwätzigkeit der erzeugten Log-Einträge abhängig. Auch ist man dort eher selten in der Lage, mal eben das Log-Level zu erhöhen – sofern ein zu analysierendes Problem überhaupt reproduzierbar ist.

Heute möchten wir ein neues Framework und Open-Source-Projekt vorstellen, das diesem Problem zu Leibe rückt: TracEE. Aussagen wie „Das kann man jetzt so leider nicht mehr nachvollziehen!“ könnten bald der Vergangenheit angehören.

weiterlesen

Von starken Hafenarbeitern und leichten Containern

Infrastructure as Code (IaC) ist ein mächtiges Werkzeug, das im Rahmen der DevOps-Bewegung die Entwicklung und den Betrieb näher zusammenbringt. Es ermöglicht vor allem das automatisierte Aufsetzen von Laufzeitumgebungen – von der Entwicklungs- bis hin zur Produktionsumgebung. Häufig werden bei der Umsetzung von IaC Virtuelle Maschinen und Werkzeuge wie Chef, Puppet und Vagrant zu deren Provisionierung eingesetzt. Im besten Fall gelangt man irgendwann an einen Punkt, an dem man mit nur einem Klick aus einem Betriebssystem-Basis-Image ein für den Produktionsbetrieb geeignetes VM-Image einschließlich Konfiguration und vorinstallierten Anwendungen erzeugen kann.

Nach dem Immutable Server-Ansatz wird bei Änderungen an einer Infrastrukturkomponente, sei es eine Konfigurationsänderung, eine Aktualisierung des Betriebssystems oder eine neue Anwendungsversion, einfach ein komplett neues Image nach der Bauanleitung bzw. dem so genannten Rezept des Konfigurationsmanagement-Tools erstellt.  Ein wichtiger Aspekt dabei ist, dass bestehende VM-Instanzen bei Konfigurationsänderungen nicht geändert (z.B. durch Einspielen einer neuen Anwendungsversion) sondern jedes Mal vollständig neu erzeugt werden. Damit wird sichergestellt, dass die ausgeführten Konfigurationsschritte sowie deren Reihenfolge für jeden Server und jede Umgebung stets reproduzierbar sind.

weiterlesen

Infrastruktur als Code

Es gibt Unternehmen, die es unter großen Anstrengungen schaffen, einmal im Quartal eine neue Softwareversion produktiv zu setzen. Andere Unternehmen tun dies stattdessen mehrmals am Tag. Wenn man das Innenleben zweier solcher Organisationen vergleicht, wird man viele Unterschiede feststellen. Einer dieser Unterschiede ist das Verständnis von Infrastruktur. Während in der einen Organisation Softwarebetrieb und Entwicklung als organisatorisch und methodisch unabhängige Bereiche angesehen werden, gibt es diese Trennung in der mehrmals am Tag liefernden Organisation nicht.
weiterlesen