Blox is a collection of open source projects for container management and orchestration on Amazon ECS

Blox gives you more control over how your containerized applications run on Amazon ECS. It enables you to build schedulers and integrate third-party schedulers on top of ECS, while leveraging Amazon ECS to fully manage and scale your clusters.

Scheduling Framework

The following components provide a scheduling framework to help you easily build custom tooling, such as schedulers, on top of Amazon ECS. The framework makes it easy to consume events from Amazon ECS, store the cluster state locally, and query the local data store though APIs.

The cluster-state-service consumes events from a stream of all changes to containers and instances across your Amazon ECS clusters, persists the events in a local data store, and provides APIs (e.g., search, filter, list, etc.) that enable you to query the state of your cluster so you can respond to changes in real-time. The cluster-state-service tracks your Amazon ECS cluster state locally, and manages any drift in state by periodically reconciling state with Amazon ECS.

The daemon-scheduler is a scheduler that allows you to run exactly one task per host across all nodes in a cluster. The scheduler monitors the cluster state and launches tasks as new nodes join the cluster, and it is ideal for running monitoring agents, log collectors, etc. The scheduler can be used as a reference for how to use the cluster-state-service to build custom scheduling logic, and we plan to add additional scheduling capabilities for different use cases.

Command Line Tools

The following project provides local development tools for Amazon ECS.

The Amazon ECS Command Line Interface (CLI) is a command line interface for Amazon ECS that provides high-level commands to simplify creating, updating, and monitoring clusters and tasks from a local development environment and deploying tasks to production on Amazon ECS. You can use the CLI, as an alternative to the AWS Management Console, for everyday development and testing.

Releases and Roadmap

The following pages provide deployment packages for the latest releases and the roadmap for the Blox projects.

The release page tracks various release and deployment packages for Blox. The scheduling framework can be deployed on AWS using AWS CloudFormation templates or locally using the provided Docker compose file. This folder contains both deployment automation methods. As more projects are added, this folder will act as the central location for downloading Blox release packages.

The roadmap page organizes and tracks issues across the Blox projects. The Blox team will share and collaborate on the project roadmap here.

What is Amazon ECS?

Amazon ECS is a container management service for deploying and scaling Docker containers in production. Amazon ECS makes it easy to securely run containerized applications at high levels of scale and fault tolerance. You just add the server capacity you need to your cluster and upload your container images. Amazon ECS takes care of the rest.

It runs your containers across a cluster of servers and takes care of load balancing and scaling your containers. There is no container management software to install and operate because it is all provided to you as a service, making it great for production applications.

Contributing to Blox

All projects under Blox are released under Apache 2.0 and the usual Apache Contributor Agreements apply for individual contributors. All projects are maintained in public on GitHub, issues and pull requests use GitHub, and discussions use our Gitter channel. Our roadmap proposals are maintained under the roadmap repo. We look forward to collaborating with the community.