1. Docker-Meetup in Frankfurt

:: IT, Docker, Veranstaltungen

Am 13. Januar 2015 fand in Frankfurt das bereits dritte Docker-Meetup statt, hier einige Notizen von mir dazu.

Neues zum Them Orchestrierung

Peter Rossbach hat in einem munteren Vortrag einige Neuerungen aus dem “Docker Universum” zum Thema Orchestrierung vorgestellt. Unter anderem Docker Machine, Docker Swarm, Docker Compose (ehemals fig.sh, das wohl aufgrund von Aussprachemehrdeutigkeiten umbenannt wurde) etc. Ein sehr interessanter Überblick, insbesondere da Peter auch die ganzen Sachen immer mal angefasst und ausprobiert hat. Im Kern scheint es mir jedoch so zu sein, als wäre die Frage nach “Was nimmt man am besten, um Docker auf einer oder mehreren Maschinen im Produktivbetrieb zu nutzen?” noch recht in Bewegung. Für mich kristallisiert sich für meine Anwendungsfälle da bisher noch keine überzeugende Lösung heraus. Was ich jedoch einmal testen werde ist das fig.sh bzw. Docker Compose, da man damit eigentlich sehr schön in einem YAML-Dokument mehrere Container und ihre Abhängigkeiten darstellen kann.

Docker Linking

Erkan Yanar hat in einem Einsteigervortrag die Grundlagen von Links zwischen Containern vorgestellt. Hier scheint die Entwicklung auch noch in Bewegung zu sein, insbesondere Links über mehrere Hosts hinweg scheinen doch noch nicht so ganz einfach handzuhaben zu sein (vorgestellt wurden Ambassador-Ansätze mit socat und anderes).

Besonders erhellend fand ich den Hinweis, dass ab Docker Version 1.3 nun bei Links zwischen den Containern die /etc/hosts auch nach Neustarts von gelinkten Containern immer deren richtige IP-Adresse erhält, wohingegen die Umgebungsvariablen nur die Ursprungs-IP-Adressen enthalten (also ein klares “Verlasst Euch nicht auf die Umgebungsvariablen!”).

Netzwerken mit Docker

Andreas Schmidt stellte eine ganze Reihe von Varianten vor, mit denen man die Container im Netzwerk auf unterschiedliche Arten und Weisen verknoten kann. Soweit ganz interessant, aber nicht meine “Liga”, wo ich mich gut auskenne.

Fazit

Bei Docker in Bezug auf Orchestrierung und Container-Linken gibt es recht viel Bewegung und für mich kristallisieren sich die überzeugenden Konzepte noch nicht so richtig heraus, um damit in eine Produktivumgebung zu gehen. Im Bereich der Entwicklung und der Tests nutze ich die Container von Docker schon recht gerne, bei Produktiv-Umgebungen schreckt mich die Vielzahl an Werkzeugen und zum Teil auch die Komplexität doch noch etwas.

Jedenfalls wieder ein gutes Meetup mit Ideen und Anregungen. Ich finde das schon sehr außergewöhnlich (besonders wenn man es mit anderen Branchen vergleicht), dass sich Leute zum Austauschen über Technologie treffen, Vorträge vorbereiten etc.

Eindrücke vom 31C3

:: IT, Veranstaltungen, Reisen, MorgenGrauen

Dieses Jahr habe ich mich einmal aufgerafft und bin das erste mal zum Congress des CCC nach Hamburg gefahren. Im Folgenden ein paar Eindrücke:

Drumherum

Ich fand den 31C3 ein tolles Ereignis: Sehr professionell und umsichtig organisiert. Überall, wo ich hinkam, war man nett und freundlich, insgesamt eine sehr willkommende Atmosphäre. Nur der Termin, der ist ja doch etwas sperrig.

Vorträge

Ich konnte einige Vorträge anhören, von denen haben mir die folgenden besonders gut gefallen (ich habe mal die Links zu den Videos und die Links zu den Einträgen im Fahrplan aufgeführt, oft gibt es im Fahrplan auch noch zugehöriges Material und weitere Hinweise):

  • “Wir beteiligen uns aktiv an den Dikussionen” (Link im Fahrplan) von Martin Haase, der die Digitale Agenda der Bundesregierung aus sprachwissenschaftlicher Sicht entlarvt als das, was es ist: Heiße Luft und wenig Konkretes, schon gar nicht für den “Bürger”. Besonders spannend fand ich den Teil des “PDF befreien”, denn die Bundesregierung hat nur ein wenig konsistentes PDF bereit gestellt, dass maha erst einmal in einen Text umwandeln musste, mit dem er mit seinen Werkzeugen arbeiten konnte. In der Diskussion wurde er dazu auch noch einmal befragt und meinte, Markdown, das sei eigentlich ein ganz gutes Format.

  • Die beiden SS7-Vorträge von Tobias Engel (Fahrplan) und Karsten Nohl (Fahrplan): Die Talks fand ich incl. der Live-Vorführungen sehr eindrücklich und haben mir vor Augen geführt, dass es mit der Sicherheit im Mobilfunk noch schlechter aussieht, als ich so befürchtet habe.

  • ECCHacks (Fahrplan) von djb und Tanja Lange: Ein Bekannter empfahl mir den Vortrag und meinte, ich könnte da schon was verstehen, obwohl ich mich mit diesen Ellpitischen Kurven nicht wirklich auskenne. Der Talk war didaktisch sehr gut aufbereitet und ich habe trotz der späten Stunde ein bisschen verstanden (glaube ich), worum es da eigentlich geht.

  • Vor Windows 8 wird gewarnt (Fahrplan) von ruedi: Ein kurzweiliger Vortrag über “Secure Boot” und andere Schwierigkeiten mit “Windows 8”.

  • Reconstructing naraatives (Fahrplan) von Jacob Appelbaum und Laura Poitras: Das war im voll besetzten Saal 1 ein sehr eindrücklicher Vortrag, der mit Standing Ovations endete.

  • What Ever Happened to Nuclear Weapons? (Fahrplan) von Michael Büker: Diesen Vortrag fand ich vom Aufbau und der Didaktik sehr gut vorbereitet. Als wichtige Erkenntnis habe ich für mich den Kernwaffenstopp-Vertrag (englisch Comprehensive Nuclear-Test-Ban Treaty) mitgenommen, einen internationalen Vertrag, der sämtliche Kernwaffentests verbietet, der aber noch nicht in Kraft getreten ist; dieser Vertrag geht weiter als der Nuclear Test Ban Treaty aus den 1960er Jahren, der Kernwaffenversuche in der Atmosphäre, im Weltraum und unter Wasser verbietet. Dennoch gibt es hierzu schon eine Organisation, die Preparatory Commission for the Comprehensive Nuclear-Test-Ban Treaty Organisation, der man auch auf Twitter folgen kann. Diese “Preparatory Commission” bereitet das Inkraftreten vor und baut ein Überwachungssystem auf.

  • EFI bootkits for Apple MacBooks (Fahrplan) von Trammell Hudson: Ich fand das sehr spannend vorgetragen (incl. Hexdumps etc.), wie Trammel Hudson durch “Reverse Engineering” auf ein Sicherheitsproblem bei Apple-Produktion gestoßen ist und dieses dann in einem Proof-of-Concept auch ausnutzen konnte.

Aufgrund des riesigen Angebots an Vorträgen, Workshops etc. muss ich mir in den kommenden Tagen glaube ich noch den einen oder anderen Vortrag als Video ansehen.

MorgenGrauen-Stammtisch

Etwas spontan und nicht so sonderlich koordiniert haben wir auch einen MorgenGrauen-Stammtisch ausgerufen und siehe da: Drei Spieler und zwei Gäste fanden sich ein, so dass man bei einem Bier ein wenig plaudern und sich austauschen konnte.

Aus zwei mach eins

:: Homepage, IT

Bisher hatte ich meine Blog-Einträge auf zwei Blogs aufgeteilt, eines mit mehr technischen (und zum Teil englischen Texten) und dieses hier mit deutschen Texten. Ich denke, ich werde das auf dieses eine Blog hier konzentrieren. Das reduziert doch etwas den Verwaltungsaufwand. Ich habe die Texte vom nun etwas still gelegten Blog hier herüber kopiert.

Ich habe mal Octopress aktualisert

:: Homepage, Octopress

Neulich fiel mir auf, dass die Suchfunktion, die auf Google basiert, nicht nur auf der eigenen Homepage, sondern im “gesamten” Suchindex von Google gesucht hat. Eben flatterte dieser Tweet mit Link zu einem Fix an mir vorbei und da hat sich wohl die API geändert.

Octopress-Tweet

Octopress-Tweet

Also habe ich mich einmal an den Hinweisen zum Aktualisieren von Octopress orientiert. Hierzu werden die folgenden Schritte vorgeschlagen:

git pull octopress master      # Get the latest Octopress
bundle install                 # Keep gems updated
rake update_source             # update the template's source
rake update_style              # update the template's style

Soweit lief das auch. Es tauchten anschließend zwei Probleme auf:

  1. Das execjs jammerte, dass ihm irgendwie eine JavaScript-Bibliothek fehlte. Nach kurzer Recherche gab es die Empfehlung, die Zeile gem 'therubyracer' in das Gemfile aufzunehmen. Okay, das funktionierte schon einmal.

  2. Bei den Feeds für die Kategorien jammerte das Octopress ein ungültiges Layout an. In category_feed.xml stand in der Tat layout: nil. Ich habe das auf layout: page geändert. Nun tat auch dies.

Mit dem Update funktioniert nun auch das Such-Formular wieder.

Ergänzung: Ich lasse das Jekyll und Octopress in einem Docker-Container laufen und irgendwie bekam ich bei rake preview meine Seite nicht mehr zu sehen. Da ich mich mit Ruby und den Komponenten nicht so gut auskenne, weiß ich nicht, ob mein “Fix” so gut ist: Ich habe im Rakefile den rackup-Aufruf um den Parameter -o 0.0.0.0 ergänzt. Dann bekam ich vom Host wieder eine Verbindung zum Webserver im Octopress-Container.

Update vom 04. Januar 2014: Nach einem kurzen Gespräch via Twitter habe ich mich entschieden, den eingebauten Server doch wieder so zu belassen, wie es im Rakefile ursprünglich stand. Statt dessen habe ich einfach in dem Docker-Container einen nginx hinzuinstalliert, der dann mein public-Verzeichnis an den Port 4000 ausliefert. So funktioniert es wieder prima: Ich starte den nginx und lasse dann das rake watch laufen, um die Seiten immer wieder neu zu erzeugen, wenn sich Dinge geändert haben.

Aus der Entscheidung des BVerfG zur Erbschaftsteuer

:: Steuern

Das Bundesverfassungsgerichts hat in seiner Entscheidung vom 17. Dezember 2014 (1 BvL 21/12) Regelungen zur Erbschaftsteuer als verfassungwidrig moniert. Ich finde in der Entscheidung eigentlich den fünften Leitsatz mit am interessantesten:

“Ein Steuergesetz ist verfassungswidrig, wenn es Gestaltungen zulässt, mit denen Steuerentlastungen erzielt werden können, die es nicht bezweckt und die gleichheitsrechtlich nicht zu rechtfertigen sind.”

Nun bin ich kein Steuer-, Verfassungsrechtsspezialist (genaugenommen gar kein Rechtsspezialist) und weiß nicht, ob dieser Satz nicht ohnehin schon gilt oder Verfassungs- und Steurrechtsrealität ist. Ich habe es allerdings in dieser Klarheit noch nicht gelesen. Und wenn ich mir so das eine oder andere Steuergesetz und seine Wirkungen ansehe, dann kommt da unter diesem Leitsatz vielleicht in den kommenden Jahren einiges auf die Gerichte zu.

Migration alter Blog-Einträge

:: Homepage, Org-Mode, Octopress

Es kamen lange Winterabende und ich habe die alten Blog-Einträge von der mittels Org-Mode erstellten Seite hier nach Octopress migriert. Im Archiv sind diese zu finden und die Links etc. sollten nun auch passend mit migriert worden sein.

Bei der Konvertierung habe ich ein Programm kennengelernt, das mir sehr geholfen hat: Pandoc. Das ist ein Konverter, der Text- und Markupdateien hin und her konvertieren kann. Dabei beherrscht er eine ganze Reihe von Formaten. Insbesondere kann er das Org-Mode-Format (das ich für viele Dinge verwende) ebenso wie LaTeX und Markdown (daneben aber auch noch eine Legion von Formaten).

Da mein Hauptdateiformat ohnehin “Textdateien” sind (“Never trust a file that isn’t ASCII”) ist das sehr praktisch, um zwischen verschiedenen Markup-Formaten hin und her zu springen.

Für die Migration meine Blog-Einträge lief dies wie folgt: Ich hatte die in der alten Homepage mit Org-Mode und Org-Jekyll erstellt. Dabei hatte das Org-Jekyll-Modul entsprechende HTML-Dateien mit einem YAML-Header erzeugt. Mittels Pandoc konnte ich die nun wieder nach Markdown konvertieren, habe die YAML-Header ein wenig angepasst, Kategorien aktualisiert und noch mal das Markup zwecks Zeilenumbrüche, Fußnoten und Links geprüft und leicht angepasst. Insgesamt sehr schnell bewältigbar.

Dieser ganze Zoo rund um Markdown und andere ähnliche Formate ist zwar manchmal ein bisschen unübersichtlich, aber mir gefällt das sehr gut, dass man mit wenig Markup schön Textdateien strukturieren kann und dann mit Pandoc auch gut hin und her konvertieren kann.

Wie das Haus von Bundesministerin Nahles mauert

:: Politik, Behörden

Ein Gesetzesvorhaben der großen Koalition ist eine Regelung zur Tarifeinheit. Passend in die Tarifauseinandersetzungen bei der Deutschen Bahn zeigte Bundesministerin Nahles Entschlossenheit und Tatkraft:

Am 28. Oktober 2014 informierte sie die Presse über den Gesetzentwurf ihres Hauses zur Tarifeinheit. Dieser solle in die Ressortabstimmung gehen und am 3. Dezember im Kabinett verabschieden werden. Den Abschluss des parlamentarischen Verfahrens erwartete Frau Nahles für den Sommer 2015.

Über die Vorstellung und den Inhalt des Entwurfs berichtete ausführlich in zwei Berichten die FAZ (hier und hier). Den Berichten nach fand ein Gespräch der FAZ mit der Bundesministerin statt. Der FAZ lag der Referentenentwurf vor. Den Berichten ebenfalls zu entnehmen war, dass sozialpolitische und arbeitsrechtliche Interessenverbände wie die Bundesvereinigung der Arbeitgeber und auch der Deutsche Gewerkschaftsbund über den Entwurf verfügten, diese genannten sogar an “der Ausarbeitung des Gesetzes beteiligt” waren (Zitat aus dem FAZ-Bericht).

Ich bin ja skeptisch, wie man das, was die Koalition sich da vorgenommen hat, regeln kann. Also dachte ich mir: Wenn die Zeitung davon weiß, die Interessenverbände mitgearbeitet haben und auch denen der Entwurf vorlag und dann die Bundesministerin auch noch hierüber Pressegespräche führt und den Entwurf öffentlich “vorstellt”, dann kann ich da ja auch einmal einen Blick hineinwerfen. Ich habe, da ich den Entwurf nicht auf der Homepage entdeckte, diesen beim Bundesministerium für Arbeit und Soziales angefordert.

So einfach geht es aber nicht: Es antwortete mir am 29. Oktober 2014 das “Kommunikationscenter” des Bundesministeriums für Arbeit und Soziales wie folgt:

Sollten Sie (…) den Gesetzentwurf zur Tarifeinheit meinen, so müssen wir Ihnen mitteilen, dass dieser noch nicht veröffentlicht wurde. Er geht in Kürze in die Ressortabstimmung und kann erst danach veröffentlicht werden.

Ich wies in einer Antwort darauf hin, dass das ja nicht so ganz sein könnte, dass die Tarifparteien, interessierte Verbände und die Presse den Entwurf vorliegen hätten, der gemeine Bürger sich aber mit der Presseerklärung der Bundesministerin (ein MP3-File mit 2:36 Minuten Länge) bescheiden müsse. Am 30. Oktober 2014 teilte das Kommunikationscenter mit, dass sie die Anfrage an die Fachabteilung weitergeben wollten, dafür aber noch meine Postanschrift benötigten. Diese habe ich umgehend übermittelt. Es passierte erst einmal nichts. Am 4. November 2014 wollte ich dann den Stand wissen (es kann ja nicht so schwer sein, ein PDF per E-Mail zu versenden) und außerdem, welche Fachabteilung dafür zuständig ist (dann kann man das ja schnell per Telefon oder E-Mail klären). Nichts passierte. Am 7. November 2014 habe ich dann noch mal erklärt, dass ich den Entwurf wirklich möchte und die Anfrage formal auf das Informationsfreiheitsgesetz gestützt. Nun wachte das Kommunikationscenter am 10. November 2014 auf und teilte mit, dass sie die Anfrage an die zuständige Fachabteilung weitergeleitet hätten. Welche das ist, mochte man mir aber immer noch nicht mitteilen.

Das war es dann wieder, das Bundesministerium verfiel erneut in Stille. Seit dem sind zwei Wochen vergangen.

Da mich der Entwurf wirklich interessierte, habe ich einmal einen Interessenverband angeschrieben und nach ca. einer Stunde erhielt ich den Entwurf.

Ich stelle mir da ja schon einige Fragen: Was ist eigentlich so schwer daran, einen Referentenentwurf, den man ohnehin breit hat zirkulieren lassen, einem Bürger zur Verfügung zu stellen? Warum antwortet die Fachabteilung über einen Zeitraum vom 4. November 2014 bis heute einfach gar nicht?

Mir drängt sich jedenfalls der Eindruck auf, dass das Ministerium von Frau Nahles die Diskussion gestalten möchte. Dabei soll wohl die Bundesministerin als zupackende und problemlösende Politikerin dargestellt werden. Hierzu werden Verbände und Medien exklusiv mit Details versorgt. Der gemeine Bürger soll sich davon beeindrucken lassen und bloß nicht nach Details fragen; die erfährt er dann schon, wenn die Politik und Ministerialverwaltung es für geboten halten.

P.S.: Ich weiß, dass Referentenentwürfe normalerweise nicht auf der Homepage erscheinen und Gesetzesvorhaben vorab mit Verbänden diskutiert werden. Ich halte das auch grundsätzlich für sinnvoll. Ich habe aber bisher noch nicht ein solches “Mauern” erlebt. Bisher erhielt ich dort, wo ich angefragt hatte, immer ohne Schwierigkeiten Auskunft.

Update (01. Dezember 2014): Zwischenzeitlich habe ich den Referentenentwurf für jedermann zum Download bei der taz gefunden: PDF

Update (13. Dezember 2014): Am 11. Dezember 2014 hat das Bundeskabinett den Gesetzentwurf zur Tarifeinheit beschlossen, er findet sich nun auf der Homepage des Bundesministeriums für Arbeit und Soziales: PDF Wenig erstaunlicherweise habe ich auf meine Anfrage vom 29. Oktober 2014 außer den oben dargestellten Nachrichten des “Kommunikationscenters” nichts gehört.

Warten auf den technischen Fortschritt als politisches Prinzip?

:: Politik

Am 12. November 2014 sendete der Deutschlandfunk in der Reihe “Hintergrund” einen Bericht über die energetische Sanierung mit Wärmedämmverbundsystemen.

Zu der Diskussion wollte sich die zuständige Bundesministerin Barbara Hendricks nicht äußern, das Thema sei nur ein Randthema und sie habe andere Prioritäten. Sehr interessant waren dafür dann die Meinungen des sie vertretenden Staatssekretärs Gunther Adler.

In diesem Blogpost will ich auf einen Aspekt des Berichts eingehen. Es sei wohl so, dass die Entsorgung von Wärmedämmverbundsystemen (also im Wesentlichen auf verschiedene Arten behandeltes Polystyrol) schwierig ist. So wird gesagt:

“Das große Problem ist gerade bei der Polystyrol-Dämmung, dass die Lebenserwartung der Dämmplatten relativ gering ist. Man geht davon aus, dass sie 20 oder 30 Jahre an der Fassade bleiben können, dann ersetzt werden müssen.”

Über die Entsorgung wurde gesagt:

“Das Dämmmaterial Polystyrol darf nicht auf die Mülldeponie, unter anderem wegen der erwähnten Flammschutzmittel. Das Material soll in Müllverbrennungsanlagen vernichtet werden, …”

Auf diese Thematik angesprochen, entgegnete der Staatssekretär unter anderem:

"… da gibt es berechtigte Fragen, da gibt es auch nichts unter den Tisch zu kehren. Da gibt es im Moment noch Forschungsbedarf."

Die DLF-Redakteure wiesen hier jedoch darauf hin, dass das Material seit Langem eingesetzt würde. In den vergangenen 35 Jahren seien 900 Millionen Quadratmeter Wärmedämmverbundsysteme verbaut worden, davon 80 Prozent mit Polystyrol. Hierauf der Staatssekretär:

“Wenn wir da schon heute die Forschung anlaufen lassen und fragen, was passiert eigentlich in 30 oder 40 oder 50 Jahren, wenn das dann mal in die Müllverbrennungsanlage geht, da sollten wir doch offen für technischen Fortschritt in Deutschland sein, dass es unserer Industrie und unserer Forschung gelingen wird, beispielsweise Filteranlagen zu entwickeln, die wirklich garantieren, dass hundert Prozent aller Schadstoffe abgefangen werden.”

Ich fasse zusammen: Das Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit unterstützt offen das Inverkehrbringen von Stoffen, deren Entsorgung zumindest “offene Fragen” und “Forschungsbedarf” bringt und das Ministerium findet, der technische Fortschritt wird es schon richten. Kurzum, es gilt das Prinzip “Hoffnung auf die Zukunft” und die Last, sich die Entsorgung zu überlegen, bürdet man den nachfolgenden Generationen auf.

Wo sind in diesem Zusammenhang eigentlich die ganzen Papiere und politischen Ansätze zu Nachhaltigkeit, Verantwortung, Schutz zukünftiger Generationen geblieben? Im Übrigen widerspricht die Haltung auch dem vom Bauministerium selbst herausgegebenen Leitfaden Nachhaltiges Bauen 2013, in dem besonderer Wert auf den Lebenszyklus von Gebäuden auch unter dem Gesichtspunkt der Entsorgung von Materialen gelegt wird.

Wenn schon das Thema “Wärmedämmverbundsysteme” nicht die Priorität der Bundesministerin hat, so muss sie sich fragen lassen, ob gerade im Umwelt- und Bauressort das Prinzip “Hoffnung auf die Zukunft” Leitlinie ihrer Politik ist.

Erfahrungen mit Docker

:: Docker

Ein Bekannter bat mich, einmal von meinen Erfahrungen mit Docker zu berichten. Also hier als Blog-Post dazu. Ich werde nicht beschreiben, was genau Docker ist und wie es funktioniert. Hierzu gibt es mittlerweile schon eine Reihe von guten Quellen (bspw. auf der Docker-Homepage, in der c’t war in Heft 17 (Seiten 146–151) auch eine ganz gute Einführung enthalten).

Hintergrund

Seit einigen Jahren verwende ich zum Ausrollen von Software OpenVZ als Container-Lösung. Das funktioniert sehr gut, schont die Ressourcen, lässt sich gut verwalten und überwachen. In den OpenVZ-Containern befindet sich ein kleines Linux der gewünschten Distribution mit so allem, was man im Standard dafür erwartet. Darin installiert und konfiguriert man seine Software und rollt sie dann auf dem Zielsystem bequem aus. Der einzige Nachteil hierbei ist, dass der Host einen eigenen OpenVZ-Kernel benötigt, da nicht oder noch nicht alle Features im Standard-Kernel bereit stehen. Das macht das Zusammenstellen auf meinem Notebook etwas schwierig, denn dort habe ich den OpenVZ-Kernel in der Regel nicht installiert.

Warum nun Docker?

Im April bin ich eher zufällig (tauchte in den Release-Notes von Ubuntu 14.04 auf) auf das Docker-Projekt gestoßen und habe damit begonnen herumzuexperimentieren.

Rund um Docker und den Einsatz haben sich eine Vielzahl von Projekten angesammelt. Nicht alles verstehe ich auf Anhieb und mir fällt es zum Teil auch schwer, die unterschiedlichen Projekte zum Ausrollen, Verwalten etc. zu bewerten und zu entscheiden, was davon auch “zukunftsfähig” ist. Wahrscheinlich muss man hier auch ein bisschen Geduld haben.

Einsatzbereiche

Für mich haben sich im Wesentlichen zwei Haupteinsatzbereiche herauskristallisiert: * als Werkzeug in der Software-Entwicklung und * als Werkzeug zum Ausrollen und dauerhaften Betrieb von Anwendungen

Werkzeug in der Software-Entwicklung

Ich arbeite in Teams zusammen, bei denen die Entwickler mal nen Windows-Notebook und mal nen Linux-Notebook ihr Eigen nennen. Docker bot sich hier an, eine definitierte Test- und Entwicklungsplattform bereit zu stellen. Ich habe dazu alles, was man so braucht in ein Image zusammengeworfen, dies lässt sich mit dem aktuellen Source Code starten.

Dauerhafter Betrieb

Eigenarten und Erfahrungen

Was toll ist:

  • Sehr leicht zu installieren und man kann schnell damit anfangen herumzuspielen.
  • docker build / Dockerfile
  • Es entwickelt sich sehr schnell eine aktive Gemeinschaft, so habe ich auch schon an MeetUps in Frankfurt und Darmstadt mit Gewinn teilgenommen.
  • Nicht zu vergessen das Logo.

Was nicht so toll ist:

  • Images und Container erhalten zur Identifikation Hash-Werte; man kann Images und Container auch mit Namen versehen. Ist man allerdings ein wenig am experimentieren und herumbasteln, so sammeln sich schnell eine Reihe von Containern mit wenig sprechenden Ids an und zumindest ich verliere da schnell den Überblick.

  • Eigentlich sind die Container nicht so mobil, wie die Analogie es vermuten lässt. Am ehesten sind es noch die Images, die man in eine Registry einspielen und dann auf unterschiedlichen Systemen herunterlädt. Mir würde allerdings auch so etwas wie Live Migration (funktioniert beispielsweise bei OpenVZ für meine Einsatzzwecke ganz hervorragend) gefallen.

  • Für den dauerhaften Betrieb gibt es eine Reihe von für mich offenen Fragen. Hierzu gibt es zwar Lösungsansätze oder Produkte, aber viele entwickeln sich erst. Ich will einmal exemplarisch einige offene Enden herausgreifen:

  • Irgendwie muss man sich um seine Logfiles kümmern, wo die so landen sollen. Hat man in einem “normalen Linux” (oder auch einem Standard-OpenVZ-Container) meist so etwas wie ein logrotated am laufen, so fehlt das (wenn man der Docker-Philosophie folgt, die Container so schlank wie möglich zu halten) in einem Docker-Deployment. Also muss man für jede Anwendung prüfen: Schreibt sie ihr Log auf Platte? Dann muss man das da irgendwie herausholen (bspw. über einen Log-File-Volume) oder überwachen, nutzt sie syslogd muss man das auch irgendwie in den Griff bekommen oder rotzt sie ihre Meldungen über die Standardausgabe heraus, dann sammelt immerhin Docker die auf und man kann darin blättern (die können dort aber auch recht groß werden).

  • Was tut man mit persistenten Daten? Also beispielsweise einer Datenbank? Der Docker-Weg-zum-Glück bietet an, dass man einen Container mit der Datenbank erstellt und dann einen für die jeweilige Anwendung (ist bspw. für das Wordpress-Image auch so gut zu studieren). Damit die Daten der Datenbank nicht in dem Container herumliegen, kann man diese noch in ein Volume packen. Damit die beiden Container nun miteinander kommunizieren können, kann man deren Daten über Links einander bekannt machen. Da man sich als Container und Anwendung nicht um IP-Adressen etc. kümmern “soll”, ist das auch ganz fein. So erhält man im Anwendungscontainer dann Umgebungsvariablen zum Datenbankcontainer sowie auch einen Eintrag in /etc/hosts. Dumm nur, wenn der Datenbankcontainer mal abschmiert und neu gestartet werden muss, denn dann erhält er in der Regel eine neue IP-Adresse und der Link vom Anwendungscontainer zur Datenbank funktioniert nicht mehr. Sicher, es gibt nun Mittel und Wege damit umzugehen (DNS-Geschichten, Entdecken der Dienste, etc.), aber ich fände es eigentlich toll, wenn das Out-of-the-box funktionieren würde.

Fazit

Ich finde es ein spannendes Projekt und wenn sich für mich die einen oder anderen Unklarheiten lichten, werde ich es sicherlich auch für den Produktiveinsatz in Erwägung ziehen. Ich vermute, dass das Projekt sich noch deutlich weiterentwickeln wird, die knapp 65 Mio Venture Capital werden neben Marketing hoffentlich auch ins Produkt gesteckt.