《云原生架构白皮书2022新版》——云原生架构的定义——云原生架构定义(上) https://developer.aliyun.com/article/1232982
对开发人员的技能要求也越来越高。云原生架构相比较传统架构进了一大步,从业务代码中剥离了大量
非功能性特性(不会是所有,比如易用性还不能剥离)到 IaaS 和 PaaS 中,从而减少了业务代码开发
人员的技术关注范围,通过云厂商的专业性提升了应用的非功能性能力。
此外具备云原生架构的应用,可以最大化利用云服务和提升软件交付能力,进一步加快软件开发:
1、代码结构发生巨大变化
云原生架构最有影响力的就是让开发人员的编程模型发生了巨大变化。今天大部分的编程语言中,都有
文件、网络、线程等元素,这些元素为充分利用单机资源带了好处,但是却带来了分布式编程的复杂性;
因此大量的框架和产品涌现,来解决分布式环境中的网络调用问题、高可用问题、CPU 争用问题、分布
式存储问题 ……
在云的环境中,“如何获取存储”变成了若干服务,比如对象存储服务、块存储服务和没有随机访问的
文件存储服务。云不仅改变了开发人员获得这些存储能力的界面,还在于云产品在这些 OpenAPI 或者
开源 SDK 背后把分布式场景中的高可用挑战、自动扩缩容挑战、安全挑战、运维升级挑战等都处理了,
应用的开发人员就不用在其代码中处理节点宕机后如何把本地保存的内容同步到远端的问题,也不用处
理当业务峰值到来时如何对存储节点进行扩容的问题,而应用的运维人员不用在发现 zero day 安全问题
时紧急对三方存储软件进行升级 ……
云把三方软硬件的能力升级成了服务,开发人员的开发复杂度和运维人员的运维工作量都得到极大降低,
显然如果这样的云服务用得越多,那么开发和运维人员的负担就越少,企业在非核心的业务实现上从必
须的负担变成了可控支出。在一些开发能力强的公司中,对这些三方软硬件能力的处理往往是交给应用
框架(或者说公司内自己的中间件)来做的;在云计算的时代云厂商提供了更具 SLA 的服务,使得所有
软件公司都可以由此获益。
这些使得业务代码的开发人员技能栈中,不再需要掌握文件及其分布式处理技术,不再需要掌握各种复
杂的网络技术 …… 简化让业务开发变得更敏捷、更快速!
2、非功能性特性的大量委托
任何应用都提供两类特性,功能性特性和非功能性特性。功能性特性是真正为业务带来价值的代码,比
如如何建立客户资料、如何处理订单、如何支付等等;即使是一些通用的业务功能特性,比如组织管理、
业务字典管理、搜索等等也是紧贴业务需求的。非功能性特性是没有给业务带来直接业务价值,但通常
又是必不可少的特性,比如高可用能力、容灾能力、安全特性、可运维性、易用性、可测试性、灰度发
布能力等等。
The Cloud-native architecture whitebook by Ali