应用云平台的可用性——从新浪SAE看云平台设计
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Shane Hastie 译者 鲍央舟 发布于 2010年4月30日
最近,一个关于统一过程(Unified Process)的不同派生物及其特质的讨论被公布在这里。 在InfoQ的读者中也有一些关于Open Unified Process (Open UP)的争论。这些争论真实地反映出了更广泛的博客圈的争论。
UP Mentors的共同创始人Mark Lines最近写了一篇标题为"敏捷开发使UP成长"的文章。他在文章中引用了Scott Amber来宣称敏捷界的许多人似乎低估或者忽视了企业界的真实情况:
- 我们许多人并没有同地协作(co-location)的优势。同地协作要求整个开发团队紧密地工作在一起(理想情况在同一房间中),而且要求用户代表一直在场以回答团队的问题。
- 结对编程,也就是2个程序员共享一个键盘,是大部分管理者无法认可的支出。
- 在没有适度详细的(超出用户故事之外的)需求时交付系统,对测试,写培训材料以及产品支持来说都是无法接受的。
- 边做边修改架构(重构)而没有一些初始的架构设计,对大型企业系统来说是不适合的。
- 许多项目并不是完全独立的,并不能单独开发,因而需要与其他系统的依赖与集成,也需要一些协同工作。.
- 组织中通常已经有一些管理实践(如PMO,ISO,CMMI)。这使得一个行政级别和一些文档不可缺少。
- 每一到两周向用户部署软件对大部分组织来说是不实际的。 仅仅是移交软件通过开发,测试,系统测试,用户验收,产品环境已经是一项繁重的任务。 如果有许多项目每周并行做这样的事情,这完全是不可行的。
与之形成鲜明对照的是Michael Dubakov对于OpenUP和常规UP方法的回应- 放心,敏捷开发确实在成长 - 其中他对之前提出的每条质疑予以应答:
关于同地协作(co-location):
当然我们都知道同地协作的团队更好。咨询师建议团队成员在同一个地点协同工作并不使人惊讶。如果你要赢得一场赛跑,开宝马M3比福特福克斯要好。另外,近几年有很多关于分布式敏捷的讨论。对于如何远程实施敏捷已经有很多想法和经验汇报。敏捷也适用于远程团队。
关于结对编程
这个论点很奇怪。很多管理者不想支持持续集成,迭代开发以及行为驱动开发(BDD)。但这并不意味着这些实践不好。背景和上下文很重要。在一些公司某些项目中结对编程会增加产出率,但是在其他项目中却没有受益甚至有反作用。有多少敏捷教练坚决要求结对编程,说“没有结对编程你们就不敏捷”?不多。在整个敏捷社区中传播这种论点是错误的。
关于详细需求:
少来!用户故事可以非常详细。比如说,你可以用BDD用户故事格式来写很多案例。用这种格式描写的功能可以很容易地转化为单元测试!老实说,这是很惊人的。 http://www.targetprocess.com/blog/2009/10/bdd-and-user-story-specification-examples.html
关于架构
敏捷社区的很多人都相信花一些时间在架构上是很需要的。同样的,这和背景和上下文很有关联。如果你只是创建一个简单的应用,一天的时间就可以明确所有的重要决定。如果你想创建一个复杂系统,那可能要花好几个月。常识很重要。过度的架构设计总是危险的。可工作的软件才是对一个想法的最好证明。一个叫做“渐进架构(emergent architecture)”的概念正在发展。我喜欢这个想法,这也许是对的方向。http://www.infoq.com/emergent_architecture
关于项目独立性
敏捷实施正在迅速传播,现在确实没有公共的标准的方法来解决这个问题。但是我相信随着大公司开始实施敏捷,这个问题会被解决。(事实上我们已经进入了这个阶段)
关于管理和标准
这是不是意味着PMO,ISO和CMMI是好的,而且我们应该放弃并追随它们的统治?敏捷社区努力与官僚抗争,我本人很喜欢这样。文档化的流程对软件开发项目的成功没有任何作用。90%的情况下,它会把你困着蜘蛛网里限制你的创造力。没有创造力就没有软件开发。醒醒吧,Mark!我们生活在这些标准中,但是我们应该反击。
关于频繁交付:
这个论点太常见了… 而且“在大多数组织中不实际”真是句名言。有统计数据吗?除了企业级Java超大型应用,Mark有没有试过部署任何别东西?许多SaaS服务可以无痛苦地每周更新。一些服务甚至可以无痛苦地每日更新!这很难以置信,但是我喜欢它。客户也喜欢它!
你支持哪一方的观点? 请分享你的反馈。
查看英文原文: 关于OpenUP的辩论
译者 鲍央舟 现任OutSofting敏捷咨询师,有丰富的敏捷实践和指导经验,专注于推广敏捷在国内的实施。
虽然敏捷不容易做到,在实施过程中会遇到一些困难和阻力,但是我们并不应该放弃对实施敏捷的努力和追求。
Methods Need Theory(方法需要理论)这篇文章从另外一个方面进行了分析
www.drdobbs.com/architecture-and-design/2191002...
同意。
“文档化的流程对软件开发项目的成功没有任何作用”,敏捷/Scrum不也规定了一些类似的文档化的流程么?或许流程这个词已经被用烂了,谈流程而色变.
同时,敏捷如果这样一味的绝对化的否定文档,除了为了图个口快,好像也没什么意义。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪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分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。
3 条回复
关注此讨论 回复