Isolierte BOSH-Jobs
bpm (BOSH Process Manager) ist eine Schicht zwischen monit
und Ihren BOSH-Jobs, die zusätzliche Funktionen hinzufügt und gleichzeitig fast alle Standard-Startskripte entfernt. Es ist abwärtskompatibel mit jeder BOSH-Version, die in den letzten Jahren veröffentlicht wurde.
Der aktuelle Joblebenszyklus hängt stark von monit
-Semantik ab. Die Startreihenfolge von Jobs und Prozessen ist nicht garantiert und es gibt versteckte Zeitüberschreitungen, die Ihr System in einen unerwarteten Zustand versetzen können.
bpm macht seine Erwartungen an Ihren Job sehr deutlich. Es definiert, wie lange die Dinge dauern sollen, wie BPM mit Ihrem Prozess kommuniziert und wie sich Ihr Job in bestimmten Szenarien verhalten soll. Die meisten Jobs werden bereits konform sein.
Jobs, die BPM verwenden, sind voneinander isoliert. Alle Betriebssystemressourcen (mit Ausnahme des Netzwerks) sind so benannt, dass ein Job andere Prozesse außerhalb seines enthaltenden Jobs nicht sehen oder mit ihnen interagieren kann.
Dadurch entsteht eine weitaus kleinere und leichter zu wartende Schnittstelle zwischen Ihren Jobs und dem System, aber vor allem auch eine Sicherheitsbarriere, sodass sich der Vorfall auf genau diesen Job und nicht auf alle Jobs auf demselben beschränkt, wenn einer der Jobs auf Ihrem Computer gefährdet ist Maschine.
Aufgrund der für die oben genannten Funktionen ausgewählten Technologien ist bpm auch in der Lage, eine Ressourcenbegrenzung anzubieten. Dadurch wird verhindert, dass ein Job anderen parallelen Jobs die Betriebssystemressourcen entzieht, die sie zum Funktionieren benötigen.
Die Dokumentation finden Sie im docs-Verzeichnis. Während wir BPM entwickeln, führt diese Dokumentation möglicherweise kurzzeitig zu den Implementierungsänderungen, wird aber schließlich zur offiziellen Quelle der BPM-Dokumentation.
bpm hat jetzt 1.0 erreicht und verfügt über eine stabile öffentliche API, die für die meisten BOSH-Jobs verwendbar sein sollte. Wir planen nicht, vor 2.0 weitere abwärtsinkompatible Änderungen an der öffentlichen API vorzunehmen.
Sie können anfangen, sich über das Ethos und das Glossar, die Laufzeitumgebung, die BPM für Ihren Job bereitstellt, das Konfigurationsformat und das undefinierte Verhalten des Systems zu informieren.
Die Entwicklung wird derzeit nur unter Linux unterstützt, die Ausführung der Docker-basierten Tests ist jedoch unter macOS möglich.
Für lokale Tests erforderliche Abhängigkeiten:
Docker
Gehen
Mit den folgenden Schritten sollten Sie die Tests in einem lokalen Docker-Container ausführen können:
Aktivieren Sie die Swap-Buchhaltung, indem Sie die folgenden Befehle als Root ausführen:
# sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="swapaccount=1"/' /etc/default/grub# update-grub# reboot
Klonen Sie dieses Repository und die Submodule:
$ cd ~/workspace $ Git-Klon https://github.com/pivotal-cf/bpm-release.git $ cd ~/workspace/bpm-release
Führen Sie Tests durch:
$ cd ~/workspace/bpm-release $ ./scripts/test-with-docker