Mesos1.0.0的革新(转)
2016年7月27号 Apache 社区发布了 Apache Mesos 1.0.0, 这是 Apache Mesos 的一个里程碑事件。相较于前面的版本,1.0.0首先是改进了与docker的集成方式,弃用了docker daemon;其次,新版本大力推进接口规范化问题,新的HTTP API使得开发者能够更容易开发Mesos框架;最后,为了更好的满足企业用户的多租户,安全,审计等需求,新版本提供了更细粒度的授权验证机制。
HTTP API
1.0.0通过统一的基于RPC的HTTP API对以前的两种不同用途的接口 Framework SDK 和 REST API进行了整合,这个是最近几个月Mesos社区在大力推进了的一个事情。
借助这次重构,社区首先是规范了Mesos接口,为API标注了版本信息并且规范了发布流程,从而避免了以前的版本黑盒导致的不兼容问题,减少 breaking news和客户生产环境的surprise。
其次,以前的局限于开发语言的Framework SDK,功能有限的 REST API都极大限制了第三方开发者的手脚,为开发基于Mesos的框架带来了额外的困难,另外客户端和服务器的双向通信也增加了程序的维护成本和局限了程序的部署方式,新版本从软件工程的角度,解耦了上诉双向通信问题。
最后,Mesos也开始支持事件流。上述种种,我们可以看出Mesos社区正在以更开放的态度来便利社区开发者,为各种框架提供更好的对接。
一致的容器化技术
Mesos 1.0.0的agent无需安装docker程序也可以运行docker容器了,或者说,Mesos可以自己解析docker镜像来启动容器了。腹黑的说,继RKT之后,Mesos也抛弃了docker daemon。我们知道,虽然在docker1.11之后,container的引入已经解决了docker daemon重启带来的容器重启问题,但是宿主机的init系统仍然无法直接跟踪进程的生命周期。
网络
对容器网络标准CNI的支持,CNI标准是多家网络厂商参与定制的容器网络标准,Mesos兼容了CNI标准,相当于间接支持了 VxLAN, DC/OS overlay, Calico, Weave, Flannel 等多种网络技术。这是继容器-ip功能后,Mesos的又一重要的网络功能。
安全
多租户,安全,审计等一直是企业用户对平台软件的基本诉求,Mesos在1.0.0中通过提供更细粒度的授权验证机制对此做出了响应。首先,在1.0.0中,Mesos的所有敏感数据入口都是经过SSL/TLS加密的;其次,Mesos管理员现在可以通过配置ACLs来限制用户之恩能够在WebUI/API看到自己的任务了,而这就是企业的must-have要求,最后Mesos也提供了完善的authorizer接口,企业用户可以通过该接口添加自己的特有安全策略。
GPU支持
现在你可以通过Mesos来跑TensorFlow的任务了,与管理cpu,内存资源类似,Mesos现在也将GPU资源纳入帐下。参照 nvidia-docker 的实现, Mesos 现在可以无缝的运行 GPU docker 容器了。同时, Spark, Marathon 和 Aurora 社区也加入了在 Mesos 上调度GPU的行列。