软考 系统架构设计师系列知识点之云原生架构设计理论与实践(10)

接前一篇文章:软考 系统架构设计师系列知识点之云原生架构设计理论与实践(9)

所属章节:

第14章. 云原生架构设计理论与实践

第2节 云原生架构内涵

14.2 云原生架构内涵

关于云原生的定义有众多版本,对于云原生架构的理解也不尽相同。本节将根据广泛的云原生技术、产品和上云实践,给出一般性的理解。

14.2.4 典型的云原生架构反模式

技术往往像一把双刃剑,企业做云原生架构演进的时候,会充分考虑不同的场景选择不同的技术,下面是一些典型云原生架构反模式。

1. 庞大的单体应用

庞大单体应用的最大问题在于缺乏依赖隔离,包括代码耦合带来的责任不清、模块间接口缺乏治理而带来变更影响扩散、不同模块间的开发进度和发布时间要求难以协调、一个子模块不稳定导致整个应用都变慢、扩容时只能整体扩容而不能对达到瓶颈的模块单独扩容等。因此,当业务模块可能存在多人开发的时候,就需要考虑通过服务化进行一定的拆分,梳理聚合根,通过业务关系确定主要的服务模块以及这些模块的边界、清晰定义模块之间的接口,并让组织关系和架构关系匹配。

2. 单体应用"硬拆"为微服务

服务的拆分需要适度,过分服务化拆分反而会导致新架构与组织能力的不匹配,让架构升级得不到技术红利,典型的例子包括:

(1)小规模软件的服务拆分

软件规模不大,团队人数也少,但是为了微服务化,强行把耦合度高、代码量少的模块进行服务化拆分,一次性的发布需要拆分为多个模块分开发布和维护。

(2)数据依赖

服务虽然拆分为多个,但是这些服务的数据是紧密耦合的,于是让这些服务共享数据库,导致数据的变化往往被扇出到多个主服务中,造成服务间数据依赖。

(3)性能降低

当耦合性很强的模块被拆分为多个微服务后,原来的本地调用变成了分布式调用,从而让响应时间变大了上千倍,导致整个服务链路性能急剧下降。

3. 缺乏自动化能力的微服务

软件架构中非常重要的一个维度就是处理软件复杂度问题,一旦问题规模提升了很多,那就必须重新考虑与之适应的新方案。在很多软件组织中,开发、测试和运维的工作单位都是以进程为单位,比如把整个用户管理作为一个单独的模块进行打包、发布和运行;而进行了为服务拆分后,这个用户管理模块可能被分为用户信息管理、基本信息管理、积分管理、订单管理等多个模块,由于仍然是每个模块分别打包、发布和运行,开发、测试和运维人员的人均负责模块数就会直线上升,造成了人均工作量增大,也增加了软件的开发成本。

实际上,当软件规模进一步变大后 ,自动化能力的缺失还会带来更大的危害。由于接口增多会带来测试用例的增加,更多的软件模块排队等待测试和发布 ,如果缺乏自动化会造成软件发布时间变长。在多环境发布或异地发布时,更是需要专家来处理环境差异带来的影响。同时,更多的进程运行于一个环境中,缺乏自动化的人工运维容易给环境带来不可重现的影响。而一旦发生人为运维错误又不容易"快速止血",造成了故障处理时间变长,以及使得日常运维操作都需要专家才能完成。所有这些问题都会导致软件交付时间变长、风险提升以及运维成本的增加。

至此,"14.2 云原生架构内涵"的全部内容就讲解完了。更多内容请看下回。

相关推荐
Star(up up up)27 分钟前
Redis Windows 安装教程:使用Windows 的 Redis 压缩包
redis·笔记·学习·程序人生·云原生·学习方法·改行学it
分布式存储与RustFS4 小时前
Terraform 状态文件老在本地丢、并发还撞锁:把 state 锁进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
对象存储与RustFS5 小时前
Jenkins 的构建产物别堆在控制器磁盘:用 RustFS 当它的 S3 工件仓库
后端·docker·云原生
装不满的克莱因瓶8 小时前
设计模式之策略模式核心概念和应用场景
java·后端·设计模式·架构·系统架构·策略模式
真上帝的左手18 小时前
30. 技术专题-‌应用框架组件-分布式架构
分布式·架构·系统架构·分布式架构
罗小爬EX1 天前
Helm 从概念到实战:以一个普通 Web 应用为例
云原生·helm
分布式存储与RustFS1 天前
镜像仓库的层别只堆本地盘:用 RustFS 给 Harbor 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
分布式存储与RustFS1 天前
工作流脚本和依赖 JAR 散在各节点本地盘:用 DolphinScheduler 资源中心接到 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
Eyfcom1 天前
〖物流云原生实战 01〗K8s Operator 在物流定时任务中的实践:从“裸 CronJob”到“声明式任务编排”
云原生·物流管理系统·物流云原生实战
阿里云云原生2 天前
阿里云智能体白皮书开源进展
云原生