Engine Yard 发布云管理框架 Vertebra

  • Mirko Stocker
  • 郭晓刚

2009 年 1 月 26 日

话题:Ruby技术管理云计算DevOps语言 & 开发架构文化 & 方法

Vertebra 是 Engine Yard 用于“开发及管理安全的云应用的平台”,计划早在 2008 年 6 月就披露了。现在,它终于以 LGPL3 条款发布

那么,Vertebra 到底能为我们做什么呢(摘自EngineYard 的新闻稿)?

Vertebra 可用于云的自动化,还可用于编写分布式的、实时的应用。Vertebra 平台的特别之处在于它的能迎合不同云的差异,自动化各种流程及应用的管理。

Vertebra 的功能包括:



  • 强大、标准的 XMPP(Extensible Messaging and Presence Protocol)基础架构
  • 管理安全策略的“安全及发现代理”
  • 编排人工及机器运维任务的“流程自动化代理”
  • 系统规划登记使客户的应用能自我组织
  • 平台上的应用就像互联网上的 e-mail 系统一样自动地联合,实现应用间无缝、安全的操作。
  • 分布式审计 / 日志功能
  • 分布式任务控制便于掌握运营状况

我们很好奇 Engine Yard 是否用 Vertebra 管理他们自己的基础设施,于是询问了 Engine Yard 创始人和架构师Jayson Vantuyl

我们没有大范围使用 Vertebra。就像 Rails 是从BaseCamp中提炼出来的一样,Vertebra 是从我们用来管理内部云的各种技术中提炼出来的。而当 Vertebra 自身成长起来,我们还没来得及完全将它融合回去。不过我们已经有了初步的虚拟机管理和状态查询设施,也有一些使用这些设施的工具。

我们对现状很满意,如果我们维持部署与开发同步,就会牺牲 Vertebra 的开发速度。我们在非常早的阶段就对外发布了 Vertebra,目的是尽早让社区享受到它的价值。随着 Vertebra 进一步发展(目前是 0.3 版),我们预计会更完整地将它整合进现有的内部系统。我们既要完善所需的技术,又不能把客户当作小白鼠,所以我们的决定主要是在这两者之间求得平衡。

Vertebra 网站上提到了它的安全功能,并且“类似于年高德劭的 DNS 系统和 e-mail 系统,Vertebra 的设计能实现自动化的联合”。Jayson 详细解说了这句话的意思:

和大多数网络系统一样,Vertebra 从两个层面去倾力实现安全性:“传输层”和“应用层”。

服务器与客户端之间的传输层安全由 XMPP 提供,是很多人熟悉的 TLS/SSL。客户端连接还要经过登录系统的验证。联合服务器之间的连接还额外有“服务器回拨(server dialback)”形式的安全机制。

用 e-mail 系统来类比也许能帮助理解,e-mail 服务器之间也是通过类似方式实现联合的。不过尽管 e-mail 的联合是自动化的,却有点不分青红皂白。验证 e-mail 来源的现有手段非常少(不过 SPF 和 DomainKeys 正力图改善),而当一台 XMPP 服务器接收到声称来自某服务器的连接,它会联系该服务器,交给该服务器一小段信息,并要求通过刚才的连接发送回来。只要保证这段信息不会被猜到,就能凭借这段特殊信息向服务器证明连接是真实有效的。

用 Vertebra 还可以“把真实的人包装进 Vertebra API”。这种特性听着有些稀奇,它到底是什么意思呢?

设立人工交互代理,可通过 XMPP 聊天协议将人类整合进流程中,作为工作流系统的一部分。这样就给现有人工系统建立了由 XMPP 通信驱动的模型,并且为将来进一步自动化预留了清晰的替换点。

更具体地说,在 Vertebra 里你的所有代码都是以“操作(operation)”形式暴露出来的。“操作”是给程序员的工具,它们打扮成程序员熟悉的函数调用。这些都有助于与机器的接口,不过与机器的接口向来不是程序编写中最困难的部分。开发与人类的接口同样困难,我们已经为解决此问题投入了相当精力。

为了给命令行工具留出实现途径,带来了一些接口问题,这是我们首先打算消除的。虽然成果颇丰,不过 Ezra(译注:Ezra Zygmuntowicz,Engine Yard 创始人之一,Merb 主要贡献者)感觉继续用 XMPP 聊天系统去实现通过 IM 控制,已经挖掘不出什么潜力。因此他想到利用网关代理,比命令行更进了一步。

我仔细思考之后意识到,如果 Ezra 的模型能倒转过来,会非常强大。具体地说,如果除了让人通过代理触发操作,要是能让人“接收”到操作会怎么样呢?这个想法发展下去就成了我们所谓的“人肉代理(The Meat Agent)”。名字可能不太好听,不过这种代理既允许人被系统编排,又允许人编排云中的操作。

仔细想想,这不就是我们每天都在做的事吗?问题跟踪(Ticket-tracking)系统是编排技术人员的手段。共享的日程表是编排业务人员和销售人员的的手段。自动回复的 e-mail 也是出于同样的目的。在 Vertebra 里面,我们把这种模式变成了基本概念。人也可以成为机器的工作流的一部分。

Vertebra 的网站上可以找到更多资料,技术方面的信息则请访问GitHub 上的 Vertebra 仓库

查看英文原文:Engine Yard Releases Cloud Management Framework Vertebra
Ruby技术管理云计算DevOps语言 & 开发架构文化 & 方法