Emplois BOSH isolés
bpm (BOSH process manager) est une couche entre monit
et vos tâches BOSH qui ajoute des fonctionnalités supplémentaires tout en supprimant presque tous les scripts de démarrage standard. Il est rétrocompatible avec toutes les versions de BOSH publiées au cours des dernières années.
Le cycle de vie actuel des tâches dépend fortement de la sémantique monit
. L'ordre de démarrage des tâches et des processus n'est pas garanti et vous pouvez respecter des délais d'attente cachés qui mettront votre système dans un état inattendu.
bpm expose très clairement ses attentes à l'égard de votre travail. Il définit combien de temps les choses doivent prendre, comment bpm communiquera avec votre processus et comment votre travail doit se comporter dans certains scénarios. La plupart des emplois seront déjà conformes.
Les tâches utilisant bpm sont isolées les unes des autres. Toutes les ressources du système d'exploitation (à l'exception de la mise en réseau) sont dotées d'un espace de noms tel qu'une tâche ne peut pas voir ou interagir avec d'autres processus en dehors de la tâche qui la contient.
Cela fournit une interface beaucoup plus petite et plus facile à maintenir entre vos tâches et le système, mais fournit surtout une barrière de sécurité telle que si l'une des tâches sur votre machine est compromise, l'incident est limité à cette tâche plutôt qu'à toutes les tâches sur le même. machine.
bpm est également en mesure d'offrir une limitation des ressources grâce aux technologies choisies pour les fonctionnalités ci-dessus. Cela empêche une tâche de priver d'autres tâches colocalisées des ressources du système d'exploitation dont elles ont besoin pour fonctionner.
La documentation peut être trouvée dans le répertoire docs. Au fur et à mesure que nous développons bpm, cette documentation peut conduire brièvement aux modifications d'implémentation, mais elle deviendra finalement la source officielle de la documentation bpm.
bpm a maintenant atteint la version 1.0 et dispose d'une API publique stable qui devrait être utilisable pour la majorité des tâches BOSH. Nous ne prévoyons pas d'apporter d'autres modifications rétrocompatibles à l'API publique avant la version 2.0.
Vous pouvez commencer à lire sur la philosophie et le glossaire, l'environnement d'exécution que bpm fournit à votre travail, le format de configuration et le comportement indéfini du système.
Le développement n'est actuellement pas pris en charge sur autre chose que Linux, bien que l'exécution des tests basés sur Docker soit possible sur macOS.
Dépendances requises pour les tests locaux :
Docker
Aller
Les étapes suivantes devraient vous permettre d'exécuter les tests dans un conteneur Docker local :
Activez la comptabilité des swaps en exécutant les commandes suivantes en tant qu'utilisateur root :
# sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="swapaccount=1"/' /etc/default/grub# update-grub# redémarrage
Clonez ce référentiel et ses sous-modules :
$ cd ~/espace de travail $ git clone https://github.com/pivotal-cf/bpm-release.git $ cd ~/workspace/bpm-release
Exécutez des tests :
$ cd ~/workspace/bpm-release $ ./scripts/test-avec-docker