CloudFoundry-Mesos replaces the current auctioning process of CloudFoundry Diego with "Mesos Offers" and at the same time makes the Diego auctioneer component as a Mesos framework. This is a very initial version of the framework and is a work-in-progress. In the coming days and weeks, all of us as a community will keep refining these details as we go along. The main goal is to achieve “Improvements in Resource Management and Efficiencies as well as overall Scalability” across all applications frameworks, including Cloud Foundry PaaS environment.
Create Mesos Scheduler and Executor. The scheduler currently provides two strategies,
binpack
which tries to put CloudFoundry apps into as few cells as possible, and spread
which is the opposite of binpack
.
Both of these scheduling strategies are based on the RAM usage and the implementation is simply for demo purpose at this time.
The executor uses rep
API to launch and monitor Diego Tasks
and LRPs
.
Package Diego cell
into Docker image to minimize the Mesos Slave host system dependency and be able to create a cell on the fly.
Due to Garden-Linux
requirements, the Docker Container is started in privileged mode and uses the host
networking.
It also maps two directories for storing data and logs.
The executor binary is packed together with the Diego Cell jobs (consul, metron, rep and garden) into this image as well.
In the future, we are planning to make Mesos Garden aware so that Mesos can directly see the detail resource usage of each running garden container. There will be no need for nesting the Garden container within the Docker container.
Create a new auctionrunner
that collects the auctions
and hands them over to the Mesos scheduler.
Patch auctioneer
by replacing the previous auctionrunner
package.
Patch rep
so the /state
API would return not only LRPs
but the Tasks
as well (this is no longer needed in latest version of Diego).
Please find the demo video on YouTube.
To get up and running with CloudFoundry-Mesos, please follow the Getting Started Guid.
If you are not familiar with CloudFoundry or Mesos, the following documents would help:
rep
and executor
router
for example)Contributions are welcome. Please refer to CONTRIBUTING.md for guidelines.