免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

从一体性架构转换为微服务架构

  • 2015-12-16
  • 本文字数:1075 字

    阅读完需:约 4 分钟

在今年的伦敦微服务大会上, Ian Cooper 演讲中为听众描述了从一体性架构转至微服务架构的一些指导原则。在他看来,架构的转换对于业务干系人来说唯一的价值就在于成本的降低。它既不会增加或保护你的收益,而可伸缩性与分布式的特性也不是能够说服业务人员的好的理由。之所以这种架构转换能够减少项目的总体成本,是因为开发人员在转换后的架构中所面对的将是相对较小、较简单的上下文,从而提高了他们的生产力。

Cooper 也是伦敦.NET 用户组的创建者,他指出:人们在提到微服务的时候通常会连带提起业务能力,但对于业务能力的概念很少有清晰的定义。在他看来,业务能力本质上就是某个业务为客户所提供的有价值的功能,例如保险公司的保险销售业务。业务能力通常来说是非常稳定的,但这种能力也通常表现在一个较高的层次上。Cooper 随后将这些业务能力转换为边界上下文(这一概念来自于领域驱动设计)的形式,使他们的表现更为具体。

在一体性的架构中,同样也存在着多个边界上下文,但他们会对资源进行共享,例如领域对象和数据库架构。这样一来,就造成了系统的各个部分之间的依赖性。一个功能的变更很可能会产生涟漪效应,影响到系统中的其他功能,这意味着系统的每一部分必须共同进行编译与部署。要将这样的架构转换为微服务的环境,你所要做的一切就是将这些互相依赖的功能分解为各自独立的边界上下文。虽然说起来简单,但Cooper 认为实现起来并不容易。

Cooper 描述了一种从一体性架构转换为微服务架构的方式,即对系统进行全部重写,但对他来说,这也意味着这一项目从敏捷变为了瀑布式工作流。其原因在于整个系统的替换必须要做到功能性的完整,新的系统必须在完全容纳了老系统的功能后才能上线。这样一来,新系统的开发在很长一段时间内将无法获得任何用户反馈,对于系统的表现只有在上线后才能了解。这样的项目往往会因为长时间内无法交付任何商业价值而被砍掉。

与上一种方式相比,Cooper 所建议的方式是找到在整个业务中产生产生最多价值的特性,例如那些能够产生市场差异化、属于关键任务的特性、或者是变更快速的特性。Cooper 接下来将这些特性逐个替换为新的代码,这种方式能够让他将某个边界上下文中的功能替换为新代码。最后,该上下文中的所有旧代码将失去功能,并被移除出系统。最终,到了某一时间点,所有的功能都将得到替换。在 Cooper 看来,这种方式的优点在于它保持了项目的敏捷性,通过增量式的架构重构以管理风险,并且能够更早、更频繁地进行交付。

来年的伦敦微服务大会计划在2016 年11 月7 日至8 日举办。

查看英文原文: Moving from a Monolithic to a Microservices Architecture

2015-12-16 18:002434
用户头像

发布了 428 篇内容, 共 166.4 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

CRMEB 多商户这些功能,你都用过吗?

CRMEB

ppdai站点登录参数加密解析,最短的文章,最棒的案例 com

梦想橡皮擦

Python 爬虫 7月月更

异想天开 | 假如用中文写代码,是一种什么体验?

雨果

程序员 开发者

如何快速有效的定位应用抖动问题?| 龙蜥技术

OpenAnolis小助手

Linux 系统 龙蜥技术 SysAK 抖动

声网传输层协议 AUT 的总结与展望丨Dev for Dev 专栏

声网

传输协议 Dev for Dev

采用Dubbo?还是Spring Cloud?

博文视点Broadview

即刻报名|前沿技术探索:如何让 Spark 更强劲、更灵活

Kyligence

spark 开源

B站挂了登上全网热搜!技术人员为你还原前因后果

雨果

TiKV & TiFlash 加速复杂业务查询

TiDB 社区干货传送门

向量化执行引擎框架 Gluten 宣布正式开源,并亮相 Spark 技术峰会

Kyligence

spark Gluten

jdbc自带MySQL连接池实践

FunTester

如何判断透明LED显示屏质量优劣

Dylan

LED显示屏 led显示屏厂家

EMQ宣布赞助Erlang生态系统基金会(EEF),加速推动Erlang技术在全球的蓬勃发展

EMQ映云科技

erlang 物联网 IoT emqx 7月月更

《黑客与画家》作者:18 个会杀死初创公司的错误

雨果

创业者

Lite Actor:方舟Actor并发模型的轻量级优化

HarmonyOS开发者

HarmonyOS

Okaleido或杀出NFT重围,你看好它吗?

鳄鱼视界

语音质量监控

Damon

7月月更

龙蜥开发者说:社区首个支持 LoongArch架构的操作系统构建之路 | 第 9 期

OpenAnolis小助手

开源 操作系统 龙蜥开发者说 龙芯 LoongArch 架构

音视频开发进阶|第四讲:音频自动增益控制 AGC

ZEGO即构

音视频开发 AGC

CSS重复线性渐变之画格子

南城FE

CSS 前端 7月月更

Kyligence 正式支持 Amazon EMR Serverless,构建高效低成本云上数据分析

Kyligence

Cloud Kyligence Amazon EMR

4 个 JavaScript 最基础的问题 —— Eric Elliott

掘金安东尼

JavaScript 面试 前端 7月月更

Kubernetes资源编排系列之二: Helm篇

阿里云大数据AI技术

运维

ABAP-OOALV实现

桥下本有油菜花

SAP abap

还在羡慕其它平台有跨店满减,其实你也可以!

CRMEB

查找——B-树

乔乔

7月月更

重新认识生命世界,也重新认识我们自己

图灵教育

科普

零信任架构的实施规划——针对联邦系统管理员的规划指南

权说安全

mysql进阶(九)多表查询

No Silver Bullet

MySQL 多表查询 7月月更

OpenHarmony littlefs文件系统存储结构与IO性能优化分析

OpenHarmony开发者

OpenHarmony

SAP Fiori Launchpad 应用的两个实用技巧分享

Jerry Wang

JavaScript SAP SAP UI5 ui5 7月月更

从一体性架构转换为微服务架构_语言 & 开发_Jan Stenberg_InfoQ精选文章