Trabalhos BOSH isolados
bpm (gerenciador de processos BOSH) é uma camada entre monit
e seus trabalhos BOSH que adiciona recursos adicionais enquanto remove quase todos os scripts de inicialização padrão. É compatível com versões anteriores de qualquer versão do BOSH lançada nos últimos anos.
O ciclo de vida atual do trabalho depende muito da semântica monit
. A ordem de início do trabalho e do processo não é garantida e há tempos limite ocultos que você pode atingir, o que colocará seu sistema em um estado inesperado.
A bpm deixa bem claras as expectativas em relação ao seu trabalho. Ele define quanto tempo as coisas devem levar, como o bpm se comunicará com o seu processo e como o seu trabalho deve se comportar em determinados cenários. A maioria dos trabalhos já estará em conformidade.
Os trabalhos que usam bpm são isolados uns dos outros. Todos os recursos do sistema operacional (com exceção da rede) possuem namespaces de modo que um trabalho não possa ver ou interagir com outros processos fora do trabalho que o contém.
Isso fornece uma interface muito menor e mais fácil de manter entre seus trabalhos e o sistema, mas fornece crucialmente uma barreira de segurança de modo que, se um dos trabalhos em sua máquina for comprometido, o incidente será limitado apenas a esse trabalho, e não a todos os trabalhos no mesmo. máquina.
O bpm também é capaz de oferecer limitação de recursos devido às tecnologias escolhidas para os recursos acima. Isso impede que qualquer trabalho deixe outros trabalhos colocados sem recursos do sistema operacional necessários para funcionar.
A documentação pode ser encontrada no diretório docs. À medida que estamos desenvolvendo o bpm, esta documentação pode levar brevemente às mudanças de implementação, mas eventualmente se tornará a fonte oficial da documentação do bpm.
O bpm atingiu agora 1.0 e possui uma API pública estável que deve ser utilizável para a maioria dos trabalhos BOSH. Não planejamos fazer mais alterações incompatíveis com versões anteriores na API pública antes da versão 2.0.
Você pode começar a ler sobre o ethos e o glossário, o ambiente de tempo de execução que o bpm fornece ao seu trabalho, o formato de configuração e o comportamento indefinido do sistema.
Atualmente, o desenvolvimento não é compatível com nada além do Linux, embora a execução de testes baseados em docker seja possível no macOS.
Dependências necessárias para testes locais:
Docker
Ir
As etapas a seguir devem permitir que você execute os testes em um contêiner docker local:
Habilite a contabilidade de troca executando os seguintes comandos como root:
# sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="swapaccount=1"/' /etc/default/grub# update-grub# reboot
Clone este repositório e submódulos:
$ cd ~/espaço de trabalho $ git clone https://github.com/pivotal-cf/bpm-release.git $ cd ~/workspace/bpm-release
Execute testes:
$ cd ~/workspace/bpm-release $ ./scripts/test-with-docker