本文原载于InfoQ中文站,版权所有,原文为从技术角度剖析云计算的架构,如需转载,请务必附带本声明,谢谢。在这里也要稍微谢谢InfoQ霍主编,如果不是他的坚持,这篇文章也不会像现在这样成熟,还有,InfoQ本身也是一个比较高端的技术网站,为Java、.NET、Ruby、SOA、敏捷、架构等领域提供及时而有深度的资讯、高端技术大会如QCon、免费迷你书下载如《架构师》等,大家如果没去过的话,请点击此!
在写《剖析云计算》(编者注:InfoQ中文站随后推出该Minibook)一书的时候,我发现虽然云计算本身有三层之分,也就是SaaS,PaaS和IaaS,但这种分层本身主要是从用户体验的角度来而言,比如,SaaS主要将应用作为服务提供给客户,IaaS是主要是将虚拟机等资源作为服务提供给用户。而本文将从技术角度来分析和总结云计算的架构。
综述
基于对现有的一些云计算产品的分析和我个人的一些经验,总结出一套云计算的架构,具体请看下图:
图1. 云计算的架构
这套架构主要可分为四层,其中有三层是横向的,分别是显示层、中间件层和基础设施层,通过这三层技术能够提供非常丰富的云计算能力和友好的用户界面,还有一层是纵向的,称为管理层,是为了更好地管理和维护横向的三层而存在的。接下来将一个个地给大家介绍每个层次的作用和属于这个层次的主要技术。
显示层
这层主要是用于以友好的方式展现用户所需的内容,并会利用到下面中间件层提供的多种服务,主要有五种技术:
- HTML:标准的Web页面技术,现在主要以HTML4为主,但是将要推出的HTML5会在很多方面推动Web页面的发展,比如视频和本地存储等方面。
- JavaScript:一种用于Web页面的动态语言,通过JavaScript,能够极大地丰富Web页面的功能,最流行的JS框架有jQuery和Prototype。
- CSS:主要用于控制Web页面的外观,而且能使页面的内容与其表现形式之间进行优雅地分离。
- Flash:业界最常用的RIA(Rich Internet Applications)技术,能够在现阶段提供HTML等技术所无法提供的基于Web的富应用,而且在用户体验方面,非常不错。
- Silverlight:来自业界巨擎微软的RIA技术,虽然其现在市场占有率稍逊于Flash,但由于其可以使用C#来进行编程,所以对开发者非常友好。
在显示层,大多数云计算产品都比较倾向HTML,、JavaScript和CSS这对黄金组合,但是Flash和Silverlight等RIA技术也有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后使用到Silverlight。
中间件层
这层是承上启下的,它在下面的基础设施层所提供资源的基础上提供了多种服务,比如缓存服务和REST服务等,而且这些服务即可用于支撑