This is a technical report for Apollo (Microsoft), a highly scalable and coordinated scheduling framework.
-
The framework performs scheduling decisions in a distributed manner, utilizing global cluster information via a loosely coordinated mechanism.
-
Each scheduling decision considers future resource availability and optimizes various performance and system factors together in a single unified model.
-
Apollo is robust, with means to cope with unexpected system dynamics, and can take advantage of idle system resources gracefully while supplying guaranteed resources when needed.
-
Pros
- High scheduling quality, with 95% of regular tasks experiencing a queuing delay of under 1 second.
- Achieving consistently high (over 80%) and balanced CPU utilization across the cluster.
- Coping well with the dynamics in diverse workloads and large clusters.
-
Cons
- The estimates of Apollo are not good enough, which can be improved by leveraging statistics of recurring jobs and better understanding task internals.
- It is not open source which is only deployed on production clusters at Microsoft until now.
Apollo schedules jobs in cloudscale production clusters at Microsoft, which does a good job in both performance and balance. Although it still has flaws, Apollo is the state-of-art framework in this field.
-
Eric Boutin, et al. "Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing", Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation.
-
Burns, Brendan, et al. "Borg, omega, and kubernetes." Queue 14.1 (2016): 10.
