接触云的概念不算很短,但始终感觉那是一朵浮云,为啥就叫云呢?这段时间,经过梳理,对云有了更为清晰的了解。当然,也颇有些感慨,有些人忽悠人的能力咋那么强呢?下面,我来谈谈我所理解的云。
首先,我觉得云是一种商业模式,特别是所谓的公共云,将软件服务分为软件产品供应商,销售平台提供商和客户三个角色,是一种更加专业化的分工合作。云供应商提供的是一种场地和平台租赁服务,云供应商提供场地(硬件)和必要的软件平台,而软件产品商提供应用产品,进驻卖场,通过卖场向客户提供产品和服务,这样,软件供应商可以专注于应用服务。而客户呢?可以在云供应商购买产地和软件服务,而不需要自己建设产地,而且可根据自己实际需求来决定购买服务的多和少,不仅仅节省了部分硬件,软件成本,关键的是可以得到更为专业得服务(安全,备份,维护等),从而也节省一部分请专业人才得费用,当然,有得也必有失,
数据安全,网络稳定和安全等。其实这种模式跟运动中心这类得产地服务租赁服务很相似。
其次,云是一种架构,一种集中分布式架构。集中首先是资源集中,管理集中,服务集中及部署集中。资源这里主要指系统资源和环境资源,系统资源包括硬件(应用服务器,存储服务器,安全防护服务器,调度策略服务器,路由等)和软件资源(如操作系统、以及一些必要的支持软件等)。环境资源主要包括机房,服务及管理场所,水电消防等,资源集中便于管理,维护和扩展,不仅可以节省资源成本,还可以提高资源的利用率;管理集中则是对上述资源管理的集中,同样可以节省人力和物理;服务集中,则是指对客户的应用的服务集中,相对于两个方面,一是服务提供方,通过云平台提供服务,一是需求方,通过云平台获得服务,服务集中的好处很多,特别是对于需求方而言,除了必要的软硬件外,不需要进行系统平台(服务器,机房等)的投资,而且可以根据自己的实际需要调整自己的需求大小,也不会产生资源的紧缺和资源的浪费;部署集中是指应用系统的部署集中,这个很好理解。
上面说了架构中的集中,那么分布指什么呢?分布主要指用户分布、应用分布和存储分布。用户的分布很好理解,用户可以通过广域网或者万维网来获得软件服务,减少了地域,距离的限制;应用分布则是指应用系统本身可以分布式部署,可以分散应用服务器的压力,平衡负载;存储分布则是指数据存储的分布,一可以提高存储能力,二可以提高数据的安全性。当然,应用分布和存储分布对于软件服务的需求方而言是透明的,对于软件服务的供应商来说是半透明的,所谓半透明是指软件服务提供商在架构应用软件系统时需要支持这种分布式应用,但不用关心应用分布的底层支持。
第三,云其实也是一种典型的模式,大的来讲就是中介者模式。这个很好理解。云模式将软件服务分为生产商,平台商和客户三个主要角色,平台商就是中介。对于应用而言,则是分层模式。至少包括交互层,业务逻辑层,数据访问层和数据库访问层。
总的来讲,云并不是什么新鲜和高科技玩意,更多的是一种解决方案,这种模式的影子在现实生活中比比皆是,比如超市,卖场,货仓,健身中心,租赁服务等。
那么我们怎么构建云计算下的应用系统呢?
我们知道,一个典型的应用系统一般包括交互、应用逻辑(业务逻辑)和数据存储(数据库或文件)三个要素。我们对这三个要素进行一下分析,一方面对于单个应用系统而言,业务逻辑相对比较固定,而用户规模和数据规模则千差万别,另一方面,对于多个应用而言,应用逻辑千差万别,而数据存储逻辑则相对单一。由于这两个方面得原因,使得数据存储软件可以更加专业化,少量的专业生产商就可以满足需求,但应用软件产品的需求就非常大,没有人可以一统江湖。对于单个应用软件商所面临的一个重要问题是用户规模和数据规模的差异性,如果用户数和数据规模都不大,无论是应用还是存储都不需要分布,但随着用户数和数据规模的增加,应用逻辑面临着业务运算压力,客户交互压力以及状态管理压力,数据存储则面临着访问压力(特别是查询压力)和存储空间压力,要解决这中差异性,必然要求应用系统的架构支持这种应用分布和逻辑存储分布的模式(物理存储得分布可以由更加专业的数据库服务商,存储供应商来解决,但应用系统商必须提供逻辑上得支持)。因此,在应用系统架构方面,如果要支持所谓得云,就必须能做到业务逻应用上支持分布式布署,逻辑上支持数据的分布式存储。怎么做到呢,其实也不难,把握以下几个方面:
1、状态管理分离。这个很关键,如果很多状态不能跨应用,跨服务器,那么就无法实现应用得分布;
2、业务逻辑的独立。业务逻辑涉及的数据和状态要么来自第三方服务,要么自闭,满足业务在不同的应用服务器上执行结果一样;
3、数据访问独立。需要抽象出一层数据存储访问层,这层要能达到根据不同的用户配置(至少要到企业级)访问不同地点,异质数据存储服务。
5、支持企业级帐套用户,并实现该层次上的数据软隔离(硬隔离通过部署新的数据库完成),达到对用户逻辑上透明。
6、多语言支持
7、完善的同步机制。
8、可靠的事务处理。