应用云平台的可用性——从新浪SAE看云平台设计
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Mirko Stocker 译者 郭晓刚 发布于 2009年1月26日
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译者 郭晓刚 是InfoQ中文站架构社区编辑,创建并终结过数家软件小企业,翻译过多本技术书籍。
ThoughtWorks首席咨询师Fabio分享分布式协作经验
Inedo合作伙伴Alex Papadimoulis谈代码之丑之美
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011。
2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。
12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011。
篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。
随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。
没有回复
关注此讨论 回复