应用云平台的可用性——从新浪SAE看云平台设计
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
该内容已经被标记书签!
标记书签错误,请重试!
作者 胡键 发布于 2009年1月18日
与早些年相比,如今开发者面临的选择可谓是极其丰富。各类框架层出不穷、百花齐放。在选择不断丰富的同时,随之而来的烦恼则是“该挑哪个?”。从某种意义上来说,有时“挑得眼都乱了”比起“无框架可选”还要“折磨”人。
最近,Appfuse的缔造者Matt Raible在其博客发表了他们选择Ajax框架的过程,并向社区征求意见。在文章的开始Matt说明了他们的决策过程:
- 确定准备用来搭建原型的框架简表。
- 用每个框架创建一个应用原型。
- 记录调查情况,并创建一个包含重要标准的矩阵。
- 为记录文档创建概括性的幻灯片。
- 交付文档、幻灯片(含示例)和推荐。
随后Matt对每一步进行了详细描述,并给出了他们的文档模板和选择标准列表。其中文档模板是:
介绍 Ajax框架候选 (介绍和说明选择原因) 项目信息 (历史) (许可证/花费) (提交者人数) (支持情况) (邮件列表的流量(11月/12月 2008)) 矩阵和注释 结论
文档中引用的矩阵如下(其中Dojo、YUI、GWT和Ext JS是Matt这次选择的候选):
权重 标准 Dojo YUI GWT Ext JS 注释 # 对客户来说重要的标准 0..1 0..1 0..1 0..1 关于评定的注释说明
Matt说明了他们填表的策略:
- 客户调整每个标准的权重(必要时移除/增加),所有权重合计为1。
- 我们将每个框架分成0、0.5或1,其中0 = 不满足标准,0.5 = 部分满足,1 = 满足。
Matt在文末列出了客户向他们提供的标准列表:
- 文档/教程/帮助的质量
- 对浏览器的支持情况(最重要的浏览器/版本,以Web统计为准)
- 可测试性(尤其是Selenium的兼容性)
- 许可证
- 项目健康/采用情况
- 性能
- 伸缩性
- 灵活性/可扩展性
- 生产力(应用开发,Web开发)
- 部件/组件库的丰富程度
- 图表功能
- 创建新部件的能力
- 与现有Java团队技能的匹配情况
- 易部署性(针对操作人员、QA和用户而言)
- 一般的风险程度
- 与现有站点(它包含了Prototype)集成的能力
- 使用CSS来进行风格定义的简单程度
- 验证(尤其是标记表单元素无效)
- 组件的主题/装饰
- CDN的可用性(即Google的Ajax库API或Ext CDN)
遗憾的是,对于Matt的帖子,回复虽然不少,但人们的兴趣明显不在于这个选择过程。人们似乎对Matt的选择结果和他们决定的候选名单更感冒,并有不少人纷纷建议这4种选择之外的其他选择,其中以JQuery居多。
单就选择Ajax框架来说,这篇帖子罗列了类似的考虑:
虽然Matt帖子反映了Ajax框架的选择过程,但是就其过程来说对于其他框架的选择也不乏参考价值。根据实际情况更换候选列表和选择标准,很快就可以将这个过程复制到其他类型的框架上。InfoQ中文站的读者,请问你是否有这样一个类似的过程来确定框架?如果有,它是一个什么样的过程?对于Matt的过程,你还有什么要补充的?
阅读更多Ajax内容,请浏览:InfoQ中文站Ajax专题。
胡键 热心开源技术,《开源技术选型手册》作者,《SOA实践指南》译者。目前致力于Groovy/Grails的研究和推广。
没有框架是为你准备的,总要手工一些功能,只要框架的代码入侵别太严重就OK
过程第一步,# 确定准备用来搭建原型的框架简表。这一步需要投入更多资源来做,否则后面的步骤可能差之毫厘,谬之万里了。
关于这一点,回复中亦有质疑。matt的回答是他们也考虑过,但是他们的重点是更关注于界面。而相比起其他来说,其他几个的ui库更全一些。这种考虑倒是和“是否有你需要的特性?”这一标准能够对应上。
总会有面临选择的时候,而且最熟悉的未必就是最适合的。这种情况下,一个决策过程当然必要。试想在多年前,有几个人会认为代码侵入性太强是个问题?和其他行业一样,软件也是个不断成熟和发展的过程。而人的需求也是不断提高的过程。
Jquery当然不能列入候选,因为这里说的是框架,而Jquery只是函数库罢了,而不能称之为框架。作为js框架,尤其是面向企业应用,必须具备框架特征,比如嵌套式的复用和扩展机制等等,而这些在jquery是看不到的。
为什么不推出新的Html版本,支持更丰富的控件,支持数据绑定,让客户端界面渲染的工作交给浏览器作,javascript只负责和服务器端的数据交互
jQuery有plugin支持扩展,有extend算子支持继承,您的“嵌套式的复用”指的是什么,除了继承还需要什么功能来支持“嵌套式的复用”?
Ajax给我们带来的是Web应用的服务器端开发的逻辑层和视图层的测地分离,中间的接口便是Web服务和JSON数据模型。所以,我觉得jQuery就足够了,选择她的理由是用她写出来的代码非常的优雅,可读性强,极力推荐!
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪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分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。
8 条回复
关注此讨论 回复