Distributionless
Distributionless
云原生是分布式应用当下重要的发展路径,其终态应当是 Distributionless。背后的含义有两点。首先,所有与分布式相关的问题由云平台解决。换句话说,基于云平台做二次开发的开发者无需掌握底层复杂的技术与概念就能高效地开发、部署和发布应用。云平台会提供各种工具作为脚手架,帮助开发者去发现问题、诊断、排错和做资源编排等工作。其二,分布式应用的开发会跟传统应用的开发一样方便,甚至更加便捷。信息流动的效率与充分度是很多创新的重要因素,互联网天然具有这些优势,这种优势一定会让分布式应用的开发效率持续得到巨大改善。
Distrubutionless 的发展趋势是:
-
平台变厚、变重、变标准,应用变薄、变轻。分布式应用的复杂度无论用什么技术方案都是存在的,关键在于如何解和在哪儿解。逻辑上,将复杂度下沉到平台才是正道,这就带来了平台变厚和重、应用变薄和轻的结果。沿着云原生的路径,只有平台标准化才能最终实现应用的可移植性。
-
数据平面网格化。分布式应用从单体走向微服务软件架构,所隐含的思路是数据平面应当网格化。服务网格作为云原生的关键技术,未来一定存在不同应用对于网格的定制需求,不同应用定制所带来的开销应当由应用所在的机器承担,而不能转嫁给其他应用,唯有网格化才能实现资源使用在应用级别的资源隔离(不同的应用加载实现不同定制逻辑的插件)。类似 RSocket 这样采用集中 Broker 的技术根本无法满足这一要求。数据平面的最大挑战在于如何隔离好业务对数据平面的定制化要求,以及如何做到路径无损。后者是指,在增加 Sidecar 的情形下,通过技术创新实现 RT 和资源占用趋于零。
-
控制平面集中化。数据平面与控制平面是孪生兄弟,一个“形散”的数据平面需要有一个“神不散”的控制平面去帮助实现全局治理。控制平面的技术挑战在于如何在最短的时间内,将整个集群的相关控制信息推送到数据平面。
-
运维平面产品化。产品化水平的高低代表了未来分布式应用运维便利性和应急响应的及时性。产品化过程中对概念的抽象和人机交互的设计,代表了云平台厂商对分布式应用开发这一专业领域的洞见和最佳实践,也表达了云厂商对使用技术的人性化的认知深度。产品化工作一定不是以图形化的人机交互方式去表达技术细节,而是为用户塑造一套让人容易理解和掌握的心智模式。
-
开发平面无缝整合。开发平面由分布式应用的开发者日常工作所应遵守的流程组成,包含代不限于需求与任务分解、概要设计、编码、单元测试、集成测试、代码管理、软件打包和发布等内容。开发平面如何做到以开发者为中心,使他能流畅而高效地开展自己的工作是关键挑战。此外,开发平面的设计需要对高效软件开发的方法论有很好的梳理与表达,且能践行行业的一些共识实践。比如,能方便地实现需求的可溯和软件缺陷的跟踪。
对于云平台厂商来说,Distributionless 的关键竞争力来自运维平面的产品化和开发平面无缝整合的能力。这两块是直接触达客户和用户体现技术以更快、更好交付客户价值的关键。相信“体验为王”在未来分布式应用领域同样适用。