读《演进式架构》学习笔记

简介: 01 什么是演进式架构? 外文技术书翻译后通常很难理解,此书也不例外,首先,书中对演进式架构的定义就很晦涩 —— 演进式架构是支持跨多个维度进行引导性增量变更的架构。 第一,先多读几遍,念顺了; 第二,通过拆解关键词,来理解定义。 定义中的关键字一:多个维度。 所谓多个维度,指的是架构师不要只关注技术维度对架构演进的影响,也要关注数据、安全、运维等纬度的变化影响。

01 什么是演进式架构?

外文技术书翻译后通常很难理解,此书也不例外,首先,书中对演进式架构的定义就很晦涩 —— 演进式架构是支持跨多个维度进行引导性增量变更的架构。

第一,先多读几遍,念顺了;

第二,通过拆解关键词,来理解定义。

定义中的关键字一:多个维度。

所谓多个维度,指的是架构师不要只关注技术维度对架构演进的影响,也要关注数据、安全、运维等纬度的变化影响。除此之外,康威也提醒架构师,还应关注团队之间的协同纬度的变化影响。在现实情况下,一次组织架构的调整,将很大程度影响着架构演进的路径。

定义中的关键字二:增量和引导。

“增量和引导”是演进式架构包含的两个关键特征,其中“增量”表达了架构随时间不断变化的概念,而“引导”的含义反映了我们期望的架构演进方向。

回到生物学的隐喻,演进是这样一个过程:建立一个适用的并能在其所处的不断变化的环境中持续运行的系统。

 

理解了引导的含义,那么“引导”引导的是什么?引导的原则又是什么?

我们知道,安全性、吞吐量、低延迟、故障恢复能力都可以定义为系统的架构特征,由于这些特征有的是相互冲突的,比如安全性与性能。所以,对架构师而言,在架构演进过程中需要评估和权衡这些不同的特征,而所谓引导就是评估这些不同架构特征,让架构演进中不随着时间而磨损掉这些特征。简单说,引导就是架构师期望架构具备那些特征。

关于引导的原则,本书引入了进化计算中的概念 —— 适应度函数,让架构师可以通过适应度函数来解释什么方案更好,并用它衡量何时能达到目标,但笔者通读之后,没有理解,故不过多阐述。

之后,本书又重点介绍了增量变更、架构耦合对演进式架构的影响,内容围绕持续交付、领域驱动设计、架构演进等方面,内容并不新鲜,故也不做罗列。

02 如何构建可演进的架构

如何构建?本书的逻辑是这样的。

架构耦合很大程序决定了技术架构的演进能力,清晰解耦的架构易于演进,反之则会妨碍演进。回答如何构建演进式架构,我理解的是从微服务架构开始,后面的内容基本也都是在围绕着微服务和领域驱动设计再说,有兴趣的读者可以去读一下本书。

目录
相关文章
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
63 0
|
5月前
|
Java Docker 容器
美团大牛精心整理SpringBoot学习笔记,从Web入门到系统架构
近期慢慢复工,为了准备面试,各路码友们都开始磨拳擦脚,背面试题、知识点。小编最近得一良友赠送了一份关于SpringBoot的学习笔记,简直不要好用,理论解析言简意赅,每一步操作都有图片展示。这么好的东西肯定不能私藏,为了感谢大家在2019年里的支持,我现在将这份笔记赠送给大家,祝大家前程似锦,Offer不断!
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
121 0
|
2月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
71 1
|
2月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
237 0
|
2月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
790 0
|
2月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
46 1
|
2月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
46 0
|
2月前
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
29 0
|
2月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
49 1