应石头兄弟之邀,想从复杂性的视角看一下从微服务到service mesh 的演进,没想到复杂性本身就是一个难点,于是找来了一本关于复杂性的书,希望从中能够对复杂性有一些进一步的认识。
(来自百度百科)
复杂性是当代科学的一个前沿和热点,具有跨学科综合性的趋势。不幸的是,复杂系统理论仍在等待它的牛顿。复杂性实际上就是一门关于突现的科学,而系统思想主要有三组概念:突现与等级,通讯与控制,进化与自组织, 这可能就是所谓的动力学机理。软件领域的复杂性不应该局限在计算复杂度上,是否可以从更宽的维度和视角看待软件产品的复杂性呢?
突现论可以追溯到“整体不等于部分之和”或“整体大于部分之和”。这个整体具有的一些性质是所有组成部分所不具有的,这时可以称为整体大于部分之和。合成效应可以逻辑地从部分的效应中推出,是可预测的,而异质效应是不可预测的。突现性是宏观层次所拥有的一种不可还原的根本性质。
插件化,微服务,service mesh 是否是突现的一种结果呢?
一般系统理论强调和突显了四个观点:整体性、有机性、动态性和有序性。子系统的系统作用形成序参量,是决定系统特征和系统演化的主要参量,是微观子系统相互作用在临界条件下形成的,它们在微观层次上完全不能被理解。
系统向临界点方向组织其本身,在临界点,单个的事件具有了最为广泛的可能效应范围,也就是说,系统向最优地敏感于外部输入的方向调节其自身。软件系统包括整体开发流程的序参量是怎样的呢?
复杂自然现象是在层级中被组织起来的,其中每一个层次都是由若干个整合系统构建起来的。软件系统不同层次的演进是怎样的呢?
从控制论的视角看,突现(创新)是由于高层次的行为控制了低层次的基准信息的结果,就是产生高层控制系统的“元系统跃迁”。
一个元系统跃迁是新控制层级的突现,常常伴随着先前存在的许多系统的磨合,是一个创造新行动者的特殊类型的活动,一个行动导致了新行动者的突现。人类认知的11个控制层级包括:
强度 intensities
感觉 sensation
构型 configuration
转换 Transitions
事件 Events
关系 relationship
范畴 category
序列 sequence
程序 program
原理 principle
系统概念 system concepts
无独有偶,宇宙的维度好像也是11维,是与人的认知相吻合吗?
科学没有哲学是盲目的,哲学没有科学是无效的。计算机模拟是研究复杂系统突现的一种重要方法。根据复杂性对系统的分类为:
静态结构
简单动力系统或平衡有序结构系统
开放系统
控制系统
自组织系统
复杂适应系统
复杂系统突现的4个特征:全局模式的整体序或宏观序,从简单生成复杂的新颖性,非迭代模拟的不可推导性和不可预测性,层次之间的不可还原性。
自组织是高层次结构或功能模式的自发形成,它是通过低层次客体之间的相互作用而产生的突现,由于局域相互作用而导致的一个全局相干模式的自发创生和自发突现。自组织机理侧重于揭示系统的组分之间的内部关系,以及由此突现的动力学行为,而适应性造就了复杂性的动力学模型。
那么,软件系统的适应性呢?
自组织系统主要是一种分布式系统,分布式控制的优势在于强健性、弹性和自主性。元素之间相互作用的状态,对元素起到了一种限制和约束的作用。它限制了系统的变化,限制了元素的自由度和随机性,把它们约束在一定的时间、空间和形态范围里,从而形成了某种稳定的结构模式和构型,并与其它系统或环境区分开来。
开发团队的自组织性 还是 软件系统自身的自组织性呢?
突现是指在复杂系统的自组织过程中出现的、新颖的和连贯的结构、模式和性质,相对于它们所出现的微观层次的组成部分和过程,突现现象是在宏观层次上出现的现象,是一种动态的结构,一种动力学秩序(过程的结构)。
突现都是正向的吗?会产生负创新么?
软件系统演进的下一个突现会是什么呢?
会出现在哪个层级上呢?
......
就象波普尔知识进化图示中所描述的那样,从一个问题到另一个问题。