<p>You should take a look at <a href="http://bosh.io/" rel="nofollow noreferrer">BOSH</a>.  Its the tool that is used by CloudFoundry, its services and a distro of Kubernetes called Kubo for installation,  management and "Day 2" operations.  </p>

<p>It's basically a declarative, cloud-agnostic orchestration tool that features rolling updates, canary deployments, scaling, monitoring and self healing.  It can monitor VMs as well as processes on those VMs (i.e. services) and will make sure that the deployment is running as you specified it to in the deployment manifest.</p>

<p>In order to do all of this (especially the monitoring and self-healing bits) it has a client-server architecture which is deployed with a cut-down version of BOSH itself called <a href="https://github.com/cloudfoundry/bosh-bootloader" rel="nofollow noreferrer">bosh bootloader</a> or <code>bbl</code> for short.  You use this to deploy the BOSH director.  You talk to the bosh director by installing the bosh-cli (brew install bosh-cli on a mac).</p>

<p>For you deployment you would first need to create what's called a BOSH release and this can, admittedly, be a little daunting if you are not familiar with BOSH but as CF, its services and Kubo are all open source there are tons of references out there.  There are also lots of pre-backed releases and stemcells (OSes).</p>

<p>After creating your release you upload it to your bosh director and <code>bosh deploy</code>.  To upgrade it you upload the next version of your release and <code>bosh deploy</code>.  To patch a security vulnerability you upload the latest blessed stemcell from bosh.io and <code>bosh deploy</code>.  I am sure you get the picture.</p>

<p>If you want to go the next level then there is a good getting started guide <a href="https://ultimateguidetobosh.com/" rel="nofollow noreferrer">here</a>.</p>

CC BY-SA 3.0
2018-04-10T03:34:54.043Z
2018-04-10T03:34:54.043Z
Paul Warren
<p>I am looking for best tool that, does below jobs for deployment.</p>

<p><strong>Configuration:</strong></p>

<p>1) Configuration of deployment node machines in specific environment</p>

<p>2) Configure no of service instances to be alive in environment at all time</p>

<p><strong>Deployment:</strong></p>

<p>Now, Just doing above configuration. When I trigger deployment of N services. It will randomly pick up nodes from deployment environments and will start total N services.</p>

<p><strong>Multiple Services:</strong></p>

<p>If I have 2 nodes and I want to bring up 4 services, it should bring up 2 services on each node.</p>

<p><strong>Service Failure recovery:</strong></p>

<p>If any machine goes down or any service goes down in any node. It will bring up a new service in any of environment node.</p>

<p><strong>Scenario to handle:</strong></p>

<p>Choosing nodes at random used in distributed system with system discovery/failure.</p>

<p><strong>1) Service deployment :</strong></p>

<p>I required 2 services of calculator, and other services as well. And I have total 4 machines. Now 2 calculator services will be deployed in any node. </p>

<p><strong>2) Service discovery/failure:</strong> </p>

<p>These 2 calculator services will be registered with service registry. Now my application will query to service registry, and service registry will provide node details with service running. Same in failure case, service will be started in any node, and discovered by application through service registry.</p>

CC BY-SA 3.0
2017-11-02T12:57:00.343Z
Chef can handle the configuration part, but choosing nodes at random and ensuring the whole environment match your needs doesn't sound its job. I've a hard time understanding what you're aiming to do in fact.
Tensibai
CC BY-SA 3.0
2017-11-02T13:17:26.617Z
In brief: Chef alone won't do, orchestration and supervision is none of its business.
Tensibai
<chef><orchestration>
Chef Provisioning for canary deployment and orchestration
Nitul
# Chef Provisioning for canary deployment and orchestration

(Asked by: username_0 on 2017-11-02)

I am looking for best tool that, does below jobs for deployment.

**Configuration:**

1) Configuration of deployment node machines in specific environment

2) Configure no of service instances to be alive in environment at all time

**Deployment:**

Now, Just doing above configuration. When I trigger deployment of N services. It will randomly pick up nodes from deployment environments and will start total N services.

**Multiple Services:**

If I have 2 nodes and I want to bring up 4 services, it should bring up 2 services on each node.

**Service Failure recovery:**

If any machine goes down or any service goes down in any node. It will bring up a new service in any of environment node.

**Scenario to handle:**

Choosing nodes at random used in distributed system with system discovery/failure.

**1) Service deployment :**

I required 2 services of calculator, and other services as well. And I have total 4 machines. Now 2 calculator services will be deployed in any node.

**2) Service discovery/failure:**

These 2 calculator services will be registered with service registry. Now my application will query to service registry, and service registry will provide node details with service running. Same in failure case, service will be started in any node, and discovered by application through service registry.

**Tags:** chef, orchestration

> **Comments:**
> **username_1**: Chef can handle the configuration part, but choosing nodes at random and ensuring the whole environment match your needs doesn't sound its job. I've a hard time understanding what you're aiming to do in fact.  
> **username_1**: In brief: Chef alone won't do, orchestration and supervision is none of its business.  

---

## 1 answers

### Answer by username_2 on 2018-04-10. Score: 1

You should take a look at [BOSH](http://bosh.io/). Its the tool that is used by CloudFoundry, its services and a distro of Kubernetes called Kubo for installation, management and "Day 2" operations.

It's basically a declarative, cloud-agnostic orchestration tool that features rolling updates, canary deployments, scaling, monitoring and self healing. It can monitor VMs as well as processes on those VMs (i.e. services) and will make sure that the deployment is running as you specified it to in the deployment manifest.

In order to do all of this (especially the monitoring and self-healing bits) it has a client-server architecture which is deployed with a cut-down version of BOSH itself called [bosh bootloader](https://github.com/cloudfoundry/bosh-bootloader) or `bbl` for short. You use this to deploy the BOSH director. You talk to the bosh director by installing the bosh-cli (brew install bosh-cli on a mac).

For you deployment you would first need to create what's called a BOSH release and this can, admittedly, be a little daunting if you are not familiar with BOSH but as CF, its services and Kubo are all open source there are tons of references out there. There are also lots of pre-backed releases and stemcells (OSes).

After creating your release you upload it to your bosh director and `bosh deploy`. To upgrade it you upload the next version of your release and `bosh deploy`. To patch a security vulnerability you upload the latest blessed stemcell from bosh.io and `bosh deploy`. I am sure you get the picture.

If you want to go the next level then there is a good getting started guide [here](https://ultimateguidetobosh.com/).


---

