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)”。名字可能不太好听,不过这种代理既允许人被系统编排,又允许人编排云中的操作。更多详细信息,请您微信关注“计算网”公众号: