云端生态

云端生态指的是云端应用生态。
contents

生态(ecology)有两个基本含义:一、成为整体;二、生存依赖。
东非大草原就是一个生态,这个生态中至少包含以下成分:阳光、水、土、微生物、草、草食动物(如水牛、斑马)、掠食者(如狮子、猎豹)、食腐者(如兀鹫、豺狗)。

这个生态中各个成分是分层级的,高层的存在以底层的存在为前提:阳光、水、土为第一层级,它是生命活动的条件;微生物构成第二层级,它是营养或能量的终极来源;草和树木为第三层级;食草动物为第四层级;掠食者和食腐动物是第五层级。

在一个生态的整体中,每一层级都以其它层级的存在为生存的条件。例如,草需要水土阳光;狮子需要吃肉,需要喝水;水和土地需要草和树木,以免发生水土流失;土壤则需要微生物,而微生物又受益于植物或动物所提供的营养等等。

任何生态都存在一个基础层级,如水、土、阳光 它是其它层级存在的必要条件

生存层级或对生存层级的细分,构成了每一生态成分(如物种)存活的条件,在一个具体生态中,一个足以支撑某个物种存活的细分,构成了该物种的生存方式,即生存策略(定位)。此时,我们可以说,该物种占据了某个生态位(ecological position)。所谓定位,就是生态整体而言的,意味着发现并且发展某个特定的生态位。

所谓成为整体,意味着生态中的诸成分被纳入了一种足以形成生存性依赖的、功能性的层级性秩序;所谓生存依赖,则表现为各个层级(或生态位)均具有对整体有益的、不可或缺的功能,整个生态因为其存在而繁荣或受益,即有机性。

换言之,在一个生态中,没有任何有生命的成分是孤立自存的,任何生态位均对应者一种可行的生存性依存策略,由此演化出的物种,既是独立的个体,又精确定位于生态链中的一个适当位置(生态位)。由此演化出来的物种,具有适当的规模,且具有足以适应环境变化的灵活性(敏捷)。

对应到软件,如果我们将一个企业或行业的应用视为一个整体,阳光是外部的信息输入,水是数据,土是运行于云上计算资源,例如docker,各个层次物种则代表者从中间件到应用的诸构件。我们面临的问题是:能否将各个物种控制在一个适合的规模:即,足够大,以至于能够完成其功能;同时足够小,确保其敏捷。

这意味着一种新形式的软件架构——分布式云端生态。

为什么需要考虑云端生态?

企业敏捷

敏捷,指的是能够迅速适应的环境。企业敏捷,指的是企业能够迅速适应不断变化的商业环境。其中某些变化能够为企业带来决定性的发展机会,例如智能手机之于苹果;另一些变化会给企业造成致命威胁,例如数码相机之于柯达。因此,在生存压力下,企业敏捷是企业或产业的永恒话题。

当企业的运营依靠IT系统支撑时,企业敏捷的要求,会自然而然地带来对于企业应用敏捷化的要求。应用的敏捷化,绝不止于应用开发过程的敏捷(敏捷开发),更重要的是:做为一个整体,企业应用要有一个面向敏捷化的架构。敏捷开发只是为敏捷架构生产某些构件而已。

什么架构最敏捷?

生态架构

经过了上亿年的适应和演化,在一个特点环境中,各个物种构成的生态最敏捷、最有适应变化的能力。云端生态来自于仿生学,云端可以建立其这样一个整体,应用生态比IaaS/PaaS/SaaS高级得多,也重要的多,后者只是前者的某种可能的成分。随着云计算的发展,在云端构建一种全新的、面向企业敏捷的应用生态是可能的,而且十分必要。

企业应用架构,经历了第一代的信息孤岛+烟囱式架构、第二代的平台+单体应用,例如SOA(它试图将多个单体组合成更大的单体);在云计算的时代,企业应用需要考虑一个新的、面向敏捷的架构了,这就是东非大草原为原型的云端生态。