目前,我们正在devise新的Apache Mesos云设置的架构。 目标是通过将不同的堆栈移动到相同的架构来统一我们的系统。 主要工作负载是使用Apache Spark的大数据分析以及我们的企业基础架构,包括Web服务器,邮件服务器等。
我们的想法是在运行在Mesos(Marathon / Chronos,Aurora或Singularity)可用调度器之上的Docker容器中运行我们的Web服务。 这将成为第一个Mesos框架组。 在它旁边,我们将拥有Apache Spark框架和多个用于数据存储的数据库框架。 这将是第二组Mesos框架。 我们将在并行运行之后select具体的testing。
然而,我们很难决定运行Mesos本身的基础。 理想情况下,我们希望尽可能靠近金属。 我们也希望使用一个编排解决scheme来确保Mesos&framework守护进程总是在失败时运行/重新启动。 我们正在考虑的选项如下:
1)在最小的OS中运行Mesos&框架作为docker容器。 在这方面,我们正在倾向于CoreOS和舰队。
2)直接在Ubuntu / Debian服务器上运行Mesos和框架。 对于这个select,我们倾向于工头和木偶。
至于这个问题,我们正在寻找解决scheme,按照重要性:
我们之前没有和CoreOS合作过,但是我们似乎正在向前迈进。 我有一个很大的(主观)问题,就是我们在Docker容器上运行Mesos,然后在Mesos上运行Docker容器。 这似乎“不洁净”,对我来说是错误的。 这是没有价值的考虑吗?
类似的想法涉及层之间的冗余。 为了解释我来自哪里,我宁愿如果Mesos是一个真正的操作系统,只是在金属顶部运行。 看来,不pipe你使用什么样的基础,你最终都会在不止一层的架构上(即CoreOS&Fleet&SystemD == Mesos&Marathon&Chronos)具有相同的function。 这是不可避免的?
有没有其他好的select来运行我们没有考虑到的Mesos下面的图层,牢记我们的标准?
在Mesos下configuration和运行服务可能是一个复杂的操作,也可能是一个简单的操作,您应该首先根据您的需要和目标定义一个您想在其下运行的服务模式,以获得您想要的灵感。
我运行了70多台机器和HAProxy下的各种不同的服务,以便与Mesos-DNS和Marathon,Api网关,Chronos,Jenkins,Docker,Collectd和Graphite进行dynamic负载平衡。
现在回答你的直接问题:
所以我最好的答案是使用你最喜欢的Linux发行版,并把Mesos,或者如果你想学习一些新的,可能快速和毫不费力地使用(开源)DCOS和CoreOS 。