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

jopen 9年前


在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的技术架构如下图:

VMware在DockerCon EU宣布开源“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