Blox – New Open Source Scheduler for Amazon EC2 Container Service
Back in 2014 I talked about Amazon Elastic Container Service (Amazon ECS) and showed you how it helps you to build, run, and scale Docker-based applications. I talked about the three scheduling options (automated, manual, and custom) and described how a scheduler works to assign tasks to instances.
At the time that I wrote that post, your custom scheduler had to call the
DescribeContainerInstances functions on a frequent basis in order to discover the current state of the cluster. A few weeks ago we simplified the process of tracking the state of each cluster by adding support for Amazon CloudWatch Events (read Monitor Cluster State with Amazon ECS Event Stream to learn more about how this works).
With this new event stream in place, we want to make it even easier for you to create custom schedulers.
Today we are launching Blox. This new open source project includes a service that consumes the event stream, uses it to track the state of the cluster, and makes the state accessible via a set of REST APIs. The package also includes a daemon scheduler that runs one copy of a task on each container instance in a cluster. This one-per-container model supports workloads that process logs and collect metrics.
Here’s a block diagram (no pun intended):
This is an open source project; we are looking forward to your pull requests and feature proposals.
To learn more, read Introducing Blox From Amazon EC2 Container Service or register for our webinar on December 14th.