Blog

Alle Beiträge mit dem Tag Devops

Security Holistisch

Security First, aber holistisch

Security ist wichtig — es ist aber auch wichtig zu beachten, dass das Thema nicht einfach am Ende „draufgepackt werden“ kann. Gerade bei agil arbeitenden Teams ist es deshalb auch wichtig, das entsprechende Bewusstsein zu etablieren — und zwar am Anfang. Das Prinzip der Automatisierung aus DevOps trägt auch hier: Es gibt viele Tools, die dabei helfen, manuelle Aufgaben zu eliminieren, die z.B. Schwachstellen scannen oder Codeanalysen durchführen. So können veraltete Komponenten auch Bußgelder mit sich bringen.
Bei DevOps geht es nicht nur um Entwicklungs- und Betriebsteams. Wer die Agilität und Reaktionsfähigkeit eines DevOps-Ansatzes voll ausschöpfen will, muss auch der IT-Sicherheit eine integrierte Rolle im gesamten Lebenszyklus Ihrer Anwendungen zugestehen.
In der Vergangenheit wurde die Rolle der Sicherheit in der Endphase der Entwicklung auf ein bestimmtes Team beschränkt. Das war nicht so problematisch, wenn die Entwicklungszyklen Monate oder gar Jahre dauerten, aber diese Tage sind vorbei. DevOps setzt auf schnelle und häufige Entwicklungszyklen (manchmal Wochen oder Tage), aber veraltete Sicherheitspraktiken können selbst die effizientesten DevOps-Initiativen zunichte machen.


weiterlesen

Sicher entwickeln, aber holistisch

In der agilen Softwareentwicklung arbeiten wir meist sehr kleinteilig, was uns erlaubt, Software oft und zuverlässig zu produzieren. Das Ganze erreichen wir im Allgemeinen durch Fokus auf Qualität und Automatisierung: Sprich, als Entwickler wollen wir zuverlässige Software automatisch deployen. Wesentlich ist dabei die Build Pipeline, die durch automatisierte Prozesse alle Build-Artefakte zuverlässig erstellt und auf die entsprechenden Systeme verteilt. Durch mehrfache Tests an der richtigen Stelle wird schnelles Feedback über Seiteneffekte und Regressionen geliefert. So können auch Sicherheitslücken leichter erkannt werden.


weiterlesen
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