InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

云计算应用程序的几点设计准则

作者 晁晓娟 发布于 2009年11月17日

领域
架构 & 设计,
运维 & 基础架构,
企业架构
主题
云计算 ,
架构 ,
企业架构
标签
服务组件架构 ,
基于组件的架构

不论是在Google App Engine还是 Engine Yard创建新的应用程序,或是移植现有程序到其他平台上,如何设计一个好的运行在运计算平台之上的应用程序都值得我们认真思考。

如何让云平台应用程序更好的架构而提升价值? InfoWorld在最近的云计算的应用程序设计参考一文中提出了以下几点:

1.尽量使用三层架构 。通过云计算平台,你可以把应用程序的不同组件,数据库,商业逻辑,用户界面等放在不同的平台提供商那里,每层之间相互独立,当然你也可以都放到一个平台上,但最主要的是你可以根据不同的云平台的特点分别地部署以最大化的提高性能降低成本。

因程序,因平台制宜,比如有的云平台数据库服务又便宜又稳定,而有的云平台应用层负载均衡做得好,那你完全可以分开部署获得最优的方案。

2.架构之间要松散耦合。如果你使用了三层架构, 你要尽量减少它们之间的偶合和依赖,这样也能使你的架构更加敏捷,进一步给提高性能和降低成本提供了空间和可行性。

想象如果你的数据库读写数据的代码嵌入在应用层或表示层,你根本就没太可能去分开部署数据库,应用和Web服务器。

3.别忘了组件间的通信。分布式应用程序间的组件通信是必不可少的。对于一个组件频繁互相调用的“健谈”程序,如果在同一个或专门定制平台上部署运行是比较容易的,但是对于不同的云平台,这样的程序如果分层分别部署的话,很容易导致延迟。

Web应用程序的延迟除了会导致各种功能上,性能上的问题之外,用户体验的降低是一个不可接受的方面。所以设计架构的时候要确保程序内部的组件通信的性能,比如使用类似于消息队列的异步通信机制。

4.避免平台特有的特不论是在Google App Engine还是 Engine Yard创建新的应用程序,或是移植现有程序到其他平台上,如何设计一个好的运行在运计算平台之上的应用程序都值得我们认真思考。

尽管你把应用程序部署在云平台上,但你并不希望过度依赖或被特定云平台厂商控制,对吧?

也许你会说这些是老生常谈,但是如果你能够用它们来指导你的云计算平台应用程序架构,将会使它们更有价值。

的确三层架构是非常适合云平台的,特别是在厂商不断推出新的云平台的情况下,你就会像以前变换着选数据库或Web服务器那样不断的想尝试新的云平台。

所以别让你的应用程序太耦合,太依赖,太云平台相关,否则换个云平台,你原先的程序和架构可能就一钱不值。

晁晓娟 从事Web开发管理多年,留过学,呆过外企,尝试过创业,关注项目管理,架构和产品。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视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

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。