云原生应用架构的迁移 一 :增量迁移范式

魏小言
优质创作者: 云计算技术领域
领域专家: 后端开发技术领域
2021-09-13 17:05:41

云原生应用架构的迁移 一 :增量迁移范式
云原生应用架构,以快速创新、服务弹性扩展、持续交付价值的特性,使企业产品服务在市场中具备真正敏捷的竞争力!

拆分原架构,迁移上云
前篇文章介绍了 云原生应用架构中的技术变革 三:从集中专治到分散化 ,大家读了之后会觉得:“ 太棒了,品完就想立马结合手上的资源 Try 一 Try ! ”

那么就可能会有这样的问题,在分解数据、服务和团队后,要如何拆分已有的单体应用并把它们迁移上云呢?

增量范式
如何拆分已有的单体应用并把它们迁移上云呢?

答案就是,增量范式。

这种范式在过去的各种尝试中脱颖而出,在迁移效能中是佼佼者,SoundCloud 和 Karma 就是最棒的例子!

下面将一步一步介绍如何利用增量范式进行迁移上云…

新功能微服务化
大家是不是很迷惑,为什么第一步是 “ 新功能微服务化 ” ?

因为从头开始构架一个服务比分解一个单体应用并重构服务相对容易和快速的多!所以不要继续再向单体应用中增加代码,将所有的新功能以微服务的形式构建。

注意:当然这是假设当前服务仍需要继续添加新功能的场景,若不需在继续添加,则可以跳过这部分。

那么我们在构建微服务架构的时候最需要注意的是什么呢?或者说我们构建新服务怎么与单体服务进行交互呢?

整体来说有两点:

服务交互
服务集成
大家可以回想一下团队用的 RPC 框架,尤其是支持跨语种、多种协议的框架。不管其内部如何实现,核心点是:通信协议、领域模型转换!

既然我们知晓了关注点,那么如何入手呢?

隔离层
我们需要一个环境提供给我们进行新老服务集成交互,我们往往把这个环境叫做 “ 隔离层 ”。

Eric Evans(Addison-Wesley)在领域驱动设计(DDD)中讨论了隔离层的思想, 其目的是允许两个系统的集成,而隔离层不仅仅提供环境,还确保一个系统的领域模型破坏另一个系统的领域模型。

毕竟我们不希望新功能集成的微服务,与单体紧密结合,让他们肆意地深入单体的内部结构,这也是隔离层名字的由来。

在隔离层中,我们主打三个关注点:

系统集成
通信协议转换
领域模型转换
针对三点,隔离层分别提供了解决方案:表现层、适配器、转换器。

表现层
表现层目的是简化应用接口之间的集成过程,独立于单体及新微服务内部逻辑上层,有明确的上下界,统一的上下层交互。

结构可类比七层网络的表现层、 MVC 结构的 Model 层、等等

适配器
适配器,就是 三十二种设计模式之一 的适配器模式。通过适配器模式来定义功能 Service/Interface ,来提供我们需要的新功能。

它知道如何获取系统请求,并使用相同协议将请求发送给单体应用的表层。

转换器
转换器的职责是在新微服务、单体应用之间进行领域模型的转换,确保双方数据交互畅通。

扼杀单体应用
有了隔离层,增量迁移的第一步:新微服务化 已完成。下一步就是 “ 扼杀单体应用 ”,将在下篇博文继续介绍!

Q&A
1、增量模式,手段似乎与 “ 系统重构 ” 要素相似,有什么联系吗?

对,此模式在 “ 系统重构 ” 中也有应用。
两者目的相似,毕竟架构迁移也是系统重构中的一种!

2、文中的领域模型是指什么?平时不见这种名词…

领域模型,计算机科学中的名词。泛指系统的架构/结构,具指系统的数据结构,不同语境语义不同,大家以经验定性即可。

附录
产品测试是使设计决策得以贯彻执行的必要手段!

...全文
1462 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
魏小言 2021-09-13
  • 打赏
  • 举报
回复

nice

该文档【云原生极速跨云应用无损迁移设计方案:Velero备份恢复联合Kustomize差异化配置自动合并技术解密】共计 603 页,共58个大章节,文档支持目录章节跳转同时还支持阅读器左侧书签大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。文档前18个章节内容:【引言:当跨云迁移遇上云原生——极速无损迁移的技术挑战与破局思路、云原生应用跨云迁移的本质:从基础设施依赖到配置抽象的范式转变、极速迁移的核心指标定义:RTO、RPO与业务中断窗口的量化标准、Velero备份恢复技术底层原理:从对象存储到应用状态捕获的全链路解析、Kustomize差异化配置引擎的工作机制:声明式配置管理的哲学与实现、联合技术架构的底层逻辑:为何Velero+Kustomize是跨云迁移的最优解、迁移前的环境评估框架:基础设施差异的系统化识别方法论、目标集群资源模型构建:从网络到存储的云厂商特性映射规则、Velero安装部署的极致优化:定制化配置项与性能调优参数详解、备份存储后端的选型策略:对象存储兼容性测试与最佳实践、备份策略设计的黄金法则:全量+增量的混合备份方案构建、应用资源发现机制:如何自动识别集群内的有状态与无状态组件、自定义资源(CRD)的备份处理:特殊资源的序列化与恢复技巧、持久卷(PV)数据迁移的技术选型:直接迁移vs重新配置的决策框架、备份校验机制的实现:从完整性到可用性的双重验证流程、Velero插件生态:跨云厂商的CSI驱动适配方案、Kustomize基础概念夯实:Base与Overlay的配置叠加原理、环境差异化参数的提取方法论:如何识别跨云环境的配置变量】。更多精品资源请访问 https://blog.csdn.net/ashyyyy/article/deta
2025 AI大模型数据架构设计与实践资料合集,AI架构师必备,共42份。 数据架构技术迭代实践 微信大数据平台与AI框架作业规模化上云的优化实践 AI 驱动下的数据系统演进 Presto迁移StarRocks在滴滴的实践 小米基于 Gravitino 在 Data AI 数据管理和处理的实践 AI时代下的数据存储架构 货拉拉的大数据存储架构演进 腾讯云高性能存储 GooseFS 成为 AI 存储新范式 Curvine :高性能分布式缓存 AI云原生架构 阿里云可观测解决方案 容器化应用托管以及工程实践 通义灵码技术解析,打造AI原生开发新范式 云消息队列成本治理实践 AI 原生应用架构趋势 AI云原生应用架构 阿里云消息队列Kafka的Serverless架构升级 基于Opentelemetry的大模型应用可观测 基于Spring AI的高质量答疑机器人构建实践 通义灵码:你的智能编码助手 Spring Cloud Alibaba AI:面向Java开发者的AI应用开发框架 Data+AI 一体化平台架构实践 数据智能数智化探索:找数、做数与用数 AI时代下阿里云大数据演进与发展 Pinterest 上针对大语言模型的最后一公里数据处理 端-边-云:协同架构的视频分析实践 构建企业级 AI 平台的架构策略和实践 算力基础设施安全架构设计与思考 Multi-Agent架构驱动的Data Agent路线与工程实践 端侧智能模型架构设计与算法改进.pdf 构建 AI 原生的全球化数据分析架构跨越实时、成本与合规鸿沟 构建下一代数据架构,释放 AI 的数据智慧 华为:企业架构-数据架构建设解决方案 货拉拉的大数据存储架构演进 基于ByteHouse OLAP架构如何实现⾼性能向量检索 开源大模型创新背后的 RISC-V 算力架构革新 快手架构成熟度及AI辅助诊断与治理实践 企业架构方法论在苏宁易购的实践 通用增量计算:新一代数据架构的核心引擎 业务提效:探索 Serverless 架构与 AI 的协同创新 Big AI Data时代:小红书数据架构的演进 Data Agent智能决策引擎:数势科技在NL2Semantics与Multi-Agent架构上的革新实践 Multi-Agent架构驱动的Data Agent路线与工程实践 RWKV,引领大模型架构变更的新型RNN SUBLLM新架构:文本下采样机制革新大语言模型效率

23,637

社区成员

发帖
与我相关
我的任务
社区描述
EdgeX Foundry 是一个由Linux基金会主持,供应商中立的边缘计算开源项目,旨在为物联网边缘计算提供开放、可扩展的平台。
人工智能edge边缘计算 企业社区 上海·浦东新区
社区管理员
  • EdgeX中文社区
  • 亿琪软件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
EdgeX Foundry 微信官方公众号 (EdgeXFoundryCN) 【优质内容,全站网罗】 持续聚集沉淀来自社区的 EdgeX Foundry 专业内容和资源,点击首页右侧“关注社区”,参与到社区里来吧! 【进阶学习,技术交流】 欢迎在社区的“问答”频道发帖提问,优质回答者将有机会登上社区光荣榜,获得 CSDN 积分,EdgeX 社区头衔等奖励! 【投稿贡献,成为大牛】 我们诚挚邀请你成为社区贡献者,发布优质的自产内容或翻译内容,优质投稿者将有机会登上社区光荣榜,获得 CSDN 积分,EdgeX 社区头衔等奖励!

试试用AI创作助手写篇文章吧