EC2 容器服务与 Apache Mesos

EC2 Container Service vs Apache Mesos

我们希望使用 Docker 容器来 运行 我们在集群环境中的批处理作业。 我们正在评估使用 AWS ECS 容器 Service/Chronos/Mesos。 据我所知,Apache Mesos 与 EC2 有一些重叠 features/purpose,比如集群管理。 Chronos 是一个分布式调度程序。

我很难关联所有这些技术来创建架构!

EC2 服务取代 Mesos?调度器呢?

我们是一个小团队,在集群开发方面经验不多。哪种堆栈更适合我们的批处理?

编辑 我进行了大量编辑,现在我想我了解了架构:

这是由 Mesos 管理的两个集群的示例图片。

阅读 ECS 容器服务文档(http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html),AWS 正在将 ECS 与 Mesos Apache 框架集成在一起。所以我设想以后使用,我们可以使用mesos框架来管理ECS Cluster中的资源。因此,将有可能使用 Chronos(用于批量调度)和 Marathon(用于 long 运行ning 应用程序。)

编辑 目前,我们没有分布式作业 运行ning,例如 hadoop 作业或 sparks 作业。我们的工作要简单得多,运行ning 在 EC2 的单个实例上。我们计划使用 Docker 来 运行 我们的批量 运行ning 作业。

我认为这取决于批处理作业的类型,但 Apache Mesos 生态系统肯定比 ECS 更灵活,可以满足您的需求。灵活性来自于 Mesos 使用所谓的两级调度模型这一事实,这是一个奇特的名称,因为它将调度决策外包给框架(而不是试图在其核心中实现每个现有和未来的工作负载调度策略,本身)。

您已经提到了一个这样的框架,Chronos, which is a good working horse, just maybe don't use the dependencies for jobs, ok? Then there is another great batch framework called Cook. Depending on your needs (for example SQL-based batch report generation) you could use Apache Spark。等等等等。

顺便说一句,我是否已经提到过,使用 Mesos,您不会冒被供应商锁定的风险,同时能够根据您的需要将其完全部署在一个云(例如 AWS)、混合云(说 AWS 和 GCP/Azure) 还是本地?

更新:澄清一下,Mesos 当然有第一个 class Docker 支持。