VMware 在 DockerCon EU 宣布开源“Photon Controller”基础设施控制器

阅读数:518 2015 年 12 月 2 日

话题:DevOps语言 & 开发

在 2015 年DockerCon EU中,VMware 通过企业的Github 账号开源了他们的Photon Controller产品。Photon Controller 是VMware 中 Photon platform的一个组件。它为了优化“容器与云”工作负载,作为一个基础结构堆栈被设计出来。这个虚拟化平台通过许多框架,例如KubernetesDocker SwarmMesos,提供了 API 优先的用户体验、可扩展的控制平面和原生容器支持。

VMware blog声明,Photon platform 是一个新型基础结构堆栈,为了优化“原生云应用”,它基于 VMware ESXi管理程序,但是“它更倾向于在规模和速度上超过vSphere提供的丰富的管理功能”。此平台由 Photon Machine,一个轻量级的、基于ESX的、有内置Photon OS的“microvisor”,和 Photon Controller,一个分布式的、API 驱动的、多租户的、包括Project Lightwave容器安全性项目的控制平面组成,并且为“极高的规模与改动”而设计。

Photon platform 在八月份的 VMworld 中被发布,并承诺了“将 Photon Controller 开源,让开发者、客户和伙伴直接参与进来”。Photon Controller 网站声明这个项目交付了:

  • 一个 API 优先的模型:一种用户体验,利用 RESTful API、SDK 和 CLI 工具的,专注于基础结构消费与操作的自动化;
  • 一个快速、可扩展的控制平面:一种新的用于优化规模和速度的基础结构控制平面,允许每分钟创建 1000 个新的 VM 隔离的工作负载,并且支持总数 100000 个的同时发生的工作负载;
  • 原生容器支持:Photon Controller 为了“用来运行为原生云(分布式的)app 而设计的工作负载的大型环境”而建立,开发团队可以用各种各样的容器编排框架,例如 Kubernetes、Docker Swarm、Pivotal CF/Lattice 和 Mesos 来部署基于容器的应用。

Photon Controller 架构由若干低耦合的部件或是由“分布式协作”管理的服务组成。端点在Apache Zookeeper注册,服务可能作为“横向扩展”(主动 / 主动)操作,使用备用服务器(主动 / 被动),或有明显分区的工作(例如计划程序)。Photon Controller 的技术架构如下图:

图 1. Photon Controller 的技术架构

Photon Controller 的外部 API 以REST(基于 HTTP 的 JSON)接口提供,用基于 Java 的Dropwizard框架实现。这些外部 REST API 是为了被水平扩展的、共享一个持久数据库(“CloudStore”)的 API 服务器显示而设计的。其中的持久数据库充当了一个容器状态、簇、VM、磁盘、网络和物理宿主的单一事实来源。面对 API 服务器,负载平衡器(例如haproxy)将典型地被取代。

Photon Controller 的大多数管理平面是用 java 实现的,其中有一些服务是在 VMware 的Xenon 框架上实现的。这个框架是一个“分散的系统开发框架”,现在只能作为技术预览得到。ESX 代理用 Python 实现,Photon Controller CLI,作为完备产品的集成测试,用 Ruby 实现。

每个由 Photon Controller 控制的物理宿主都有一个代理在其之上运行,提供用Apache Thrift实现的 RPC 接口,被其他所有部件用于与宿主交流。有很多特殊的部件用于监督其他部件的运行状况和开支管理。例如,“Chairman”负责计划程序的运行状况和树状拓扑结构。

VMware 网站声明 Photon Controller 还实现了一种新奇的分布式计划程序:

它是计划程序服务节点的层次结构,其中树中的每个节点只能访问它的直接子节点。其中由父节点决定的负载 / 使用上的重要统计(stats)在计划程序中不断涌现,父节点沿计划程序树向下发送请求来解决配置需求。这样的话计划程序就避免了单一权值 / 配置数据库上的重负载。

有关 Photon Platform 和Photon Controller的更多信息可以在项目网站上找到,开源的代码可以在VMware 的 Github 库中查看。开发者们可以使用项目的“Devbox”下载并运行一个小型的、单机的、测试用 Photon Controller 部署。有关项目的问题可以在Photon Controller Google Group中提问,也可以通过在Stack Overflow使用“photon-controller”标签提问。

查看英文原文:VMware Open Source 'Photon Controller' Infrastructure Control Plane at DockerCon EU


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。