Ein Docker-Container – und Deine Anwendung läuft überall

„But it works on my machine!“

Diese allseits bekannte Entwickler-Wahrheit deutet schon seit langem darauf hin, daß die Portierung einer perfekt funktionierenden Anwendung in einen anderen Kontext immer schwieriger wird. Immer mehr Tools, Konfigurationen und unvorhergesehene Sicherheitsbestimmungen.. da kann die Präsentation der schönsten Anwendung zum frustrierenden Erlebnis werden.

dockerlogo

Transport im Docker-Container

Die Macher von Docker haben sich gedacht, daß es ja wohl nicht sein kann, daß die Menschheit mittlerweile Waren in jeglicher Form an jeglichen Ort der Welt verschiffen kann, aber die IT-Welt es immer noch nicht hinkriegt, problemlos eine Anwendung von einem Kontext in den nächsten zu portieren. In Anlehnung an diese Allegorie wurde 2013 der Docker-Container erfunden. Ebenso wie ein großer Schiffscontainer ein einheitliches (seit 1956 nach ISO-Norm standardisiertes) Format hat, das gleichermaßen von Schiffen und LKWs transportiert und gestapelt werden kann und mit beliebigem Inhalt zu befüllen ist, ist der Docker-Container dafür zuständig, eine Anwendung beliebiger Art so in sich zu kapseln, daß der Container alle Kontextinformationen übernimmt und sich problemlos in verschiedene Umgebungen verschieben lässt.

docker-containers

Quelle: Eine Folie des Docker Erfinders Solomon Hykes aus seiner Präsentation während der DockerCon Konferenz im Juni 2014.

Weiterlesen

JIRA-Administration: Anzeigen von benutzerdefinierten Werten in Scripted Custom Fields

Für JIRA-Vorgänge lassen sich standardmäßig jede Menge benutzerdefinierte Felder hinzufügen, die jedoch vom Bearbeiter dann manuell ausgefüllt werden müssen. Um in benutzerdefinierten Feldern automatisch Werte anzeigen zu lassen (read-only), die auf Berechnungen auf Werten aus der Datenbank basieren, können Scripted Custom Fields verwendet werden.

In folgendem Beispiel wird ein Feld zu einem JIRA-Vorgang hinzugefügt, in welchem angezeigt wird, wie lange sich ein JIRA-Ticket in einem bestimmten Workflow-Status befunden hat. Dies ist beispielsweise für die Ausgabe eines Berichts über die Bearbeitungsdauer der Tickets in einem Projekt interessant. Alle Felder können nämlich auch in Spalten eines Excel-Exports oder in Diagrammen auf dem Dashboard angezeigt und ausgewertet werden.

Hierzu muss zunächst das kostenlose Script-Runner-Plugin in der JIRA-Instanz installiert werden.

Als nächstes wird in der System-Administration von JIRA ein neues benutzerdefiniertes Feld angelegt. Um die Zeit des Vorgangs in dem Status „In Progress“ zu berechnen, erstellt man ein Feld „Time In Progress“ und benutzt dafür den durch das Plugin hinzugefügten neuen Typ „Scripted Field“.

scriptedfields3

Weiterlesen

Wie schreibe ich eine ausführbare Datei für Unix-Systeme?

Zu diesem grundlegenden Beitrag kam ich deshalb, weil das TestManagement-System Zephyr ein solches Bash-file benötigt, um automatisierte Tests zu starten. Das wäre also ein Anwendungsfall für eine solche ausführbare Datei. Ich kann mir aber vorstellen, daß es noch viele weitere Einsatzmöglichkeiten gibt.

Eine ausführbare Datei schreiben:

Lege eine neue Textdatei an (.txt) und schreibe dort beliebige Unix-Befehle rein. (z.b. zur Übung: wechseln in ein Verzeichnis mit cd und aufrufen eines Programms). Da die Kommandozeile die Standardumgebung für ausführbare Dateien ist, muss kein weiterer Kontext angegeben werden. Anderenfalls wäre als erstes das Programm zu nennen, das das Skript ausführen soll, in diesem Fall:
#! /bin/bash

Füge jetzt Befehle hinzu um in das Verzeichnis zu wechseln, in welchem sich das Programm befindet, das wir aufrufen wollen. Dies kann auch ein Maven-Projekt sein, dann können im Anschluss alle Maven-Befehle die man ausführen will in die Datei geschrieben werden, z.B. mvn test zum Ausführen aller Unit-Tests.

## Wechsle in das System-Verzeichnis:
cd /
## Wechsle zum Beispiel in das Verzeichnis, in dem sich das Taschenrechner-Programm befindet, das auf jedem Mac im Programme-Verzeichnis verfügbar ist:
cd Applications/Calculator.app/Contents/MacOS/

## Führe das Taschenrechner-Programm aus:
./Calculator

image

Weiterlesen

Wie man JIRA-Vorgänge von einer JIRA-Instanz in eine andere überträgt

Wie der ein oder andere vielleicht schon feststellen mußte, wenn er mit mehreren JIRA-Instanzen zu tun hat, bietet JIRA leider standardmäßig nur den Export und Import ganzer Projekte oder des kompletten JIRA-Systems an. Wenn man aber nur eine individuelle Auswahl an Vorgängen übertragen möchte, kann der im folgenden beschriebene Workaround benutzt werden. Damit kann jeder beliebige Filter der sich in JIRA erstellen läßt exportiert und in einem anderen JIRA-System importiert werden. Da es dabei einiges bei der Bereinigung der Excel-Datei zu beachten gibt, kann der Arbeitsaufwand bei einer großen Anzahl an Vorgängen aus sehr unterschiedlichen JIRA-Versionen etwas ausarten. Aber für handliche Mengen ist dies durchaus eine Variante die gut funktioniert.

Daten in Excel exportieren

  • Erstelle einen Filter in JIRA mit allen Vorgängen, die du in das andere JIRA-System importieren möchtest
  • Gehe zu Ansichten/Views -> Excel (Alle Felder) und exportiere diese Vorgänge in eine Excel-Tabelle

Weiterlesen