Titus是一种Docker容器作业管理和执行平台。最初Titus主要用于实现包含算法训练(类似于视频推荐、A/B测试单元体分析等任务)的批处理作业,以及需要每小时运行一次的即席报表和分析作业。最近为了提供一致的本地开发体验以及实现更细化的资源管理,Titus开始为服务类型的作业(Netflix微服务)提供支持。Titus首个服务类型的用途是使用服务器端的NodeJS进行API的重构。
上述Titus体系结构示意图展示了使用Fenzo从Mesos代理分配资源的主节点。Titus可与Netflix微服务和AWS生态系统实现紧密集成,包括与服务发现、基于软件的负载平衡、监控,以及我们的CI/CD管线、Spinnaker等技术进行集成。在Mesos中编写自定义执行器的能力使得我们能够轻松地对容器运行时进行优化,使其与生态系统的其他部分更为匹配。
Meson
Meson是一种通用的工作流编排和调度框架,主要可用于管理机器学习管线。
Meson主要适用于对CPU、内存,以及磁盘空间等资源有着不同要求的作业所组成的异构环境。它可以支持通过一个共享集群运行Spark作业和其他批处理作业。在基于Cgroups的隔离机制帮助下,代理上的不同任务将使用相互隔离的资源运行。Meson的调度器会根据图表(Graph)评估任务的就绪情况,并通过Mesos提供的资源启动已经就绪的任务。失败处理措施包括重新启动失败的任务,以及自动终止被确定为已经出错的任务。
上述示意图展示了Meson的体系结构。Meson团队目前正在着手使用Fenzo调度库增强其调度能力。
Apache Mesos的继续完善在我们持续完善Mantis、Titus和Meson项目的过程中,Apache Mesos提供了稳定、可靠、可伸缩的资源管理平台。我们通过开源的Fenzo以及在MesosCon大会上分享创意等方式参与到了Mesos的社区贡献中。您可以在即将举办的MesosCon Europe 2016大会上与我们交流,或查看我们之前参与2014、2015年,以及今年上半年活动的总结(学到的经验和Meson)。
对于这些项目,我们的未来计划包括增加SLA(服务级别协议,例如为服务和批处理形式的作业提供不同的容量担保),对代理和容器的安全加固,改善运维效率和能见度,以及对更广泛用例的支持。为了取得更长足的进展,目前我们正在围绕Mesos、Fenzo以及我们的框架开展一些非常激动人心的项目。