《微服务设计》读书笔记(十)

组织:康威定律和系统设计

康威定律:任何组织在设计一套系统时,所交付的设计方案在结构上与该组织的沟通结构保持一致

1. 证据

1) 松耦合组织和紧耦合组织

紧耦合组织的一个例子时商业产品公司,员工在一起工作,并有着一致的愿景和目标

松耦合组织的典型代表时发布时开源社区。

研究发现(Exploring the Duality Between Product. And Organizational Architectures, 作者:Alan MacCormack、John Rusnak和Carliss Baldwin):组织的耦合性越低,其创建的系统的模块化越好,耦合也越低;组织的耦合度越高,其创建的系统的模块化也越差。

2. Amazon和Netflix

信奉组织和架构保持一致的两个典范是Amazon和Netflix

1) Amazon:

a. 团队对服务/所管理系统的整个生命周期负责

b. 两个比萨团队:小团队比大团队的工作更有效。

2) Netflix:

a. 确保其本身由多个小而独立的团队组成,以保证创建的服务能独立于彼此

3. 我们可以做的:

3.1 适应沟通途径,划分服务所有权

1) 适应沟通途径:

a. 参与创建系统的开发人员中间存在地理位置差异,是一个应该对服务进行分解的很明显的信号。

b. 一般来说,应该分配单个服务的所有权给可以保持低成本变化的团队

c. 积极思考系统的那部分可以移交给异地办公的新团队:按照接缝拆分

d. 一个团队对其管理的服务会倾向于更紧密地集成,而这种方式在分布式组织中是很难维护的

2) 服务所有权

a. 所有权延伸到服务的方方面面,从应用程序的需求、构建、部署到运维

b. 所有权程度的增加会提高自治和交付速度

c. 团队需要自己负责部署和维护应用程序,这会激励团队创建出易于部署的服务(所谓的自吃狗粮?)

3.2 分析共享服务的原因,找出令人信服的替代方式

共享服务的效果不佳

1)共享服务的原因:

a. 难以分割:拆分服务的成本太高,常见于大型的单块系统中

b. 特性团队:基于特性开发的团队。一个小团队负责开发一系列特性需要的所有功能,即使这些功能需要跨越组件(甚至服务)的边界。

例如:跨越用户界面、用户逻辑及数据库,提供完整的功能

大范围采用特性团队后,所有服务都是共享的。

如果负责某个微服务的团队与业务领域相匹配,它更容易保持对客户的关注,也更容易进行以特性为导向的开发。

c. 交付瓶颈:避免交付瓶颈是共享服务的另一个关键原因。

2) 替代方案:内部开源

a. 守护者:在内部需要分离出一组受信任的提交者(核心团队)和不受信任的提交者(团队外提交变更的人)

核心团队需要对更改由某种程度的审批,确保所有的更改服务该代码库的惯例,遵循和代码库其它代码一致的编码准则

b. 成熟

服务越不稳定或越不成熟,就越难让核心团队之外的人提交更改。

如果一个服务已经相当成熟,而且很少改变,才是开源并让其他人贡献代码的最好时机

(如何判定一个服务是成熟的?)

c. 工具

使用支持pull请求的分布式版本控制工具;

支持讨论和修改提交申请的工具

良好的构建和部署流水线,以及集中构件物仓库

4. 限界上下文和交付团队结构

保持交付团队和限界上下文一致的好处:

1) 团队会更容易掌握领域的概念,因为它们是相互关联的

2) 限界上下文的服务更可能发生交互,保持一致可以简化系统设计和发布的协调工作

3) 在交付团队和业务干系人进行交互方面,有利于团队与此领域内的一两个专家创建良好的合作关系

5. 孤儿服务

1) 什么是孤儿服务?

不再活跃或修改频率很低的服务

2) 如何处理孤儿服务?

如果团队结构和组织的限界上下文是一致的,即使是孤儿服务也会有实际的所有者。

6. 案例研究

1) 每条业务线交付团队,负责自己创建的服务的整个生命周期,包括构建、测试、发布和运维,甚至弃用

2) 一个核心交付服务团队,为业务线交付团队提供建议、指导和工具来帮助他们完成工作。

3) 浓厚的自动化文化

4) 与业务相一致的架构。

例如集成方式:

a. 一条业务线内,服务间可以不受任何限制地以任何方式来通信,只要团队确定的服务守护者认为合适

b. 业务线之间,所有的通信都必须是异步批处理。

7. 反向的康威定律:系统架构设计对组织的反向作用

无论系统有什么样的设计缺陷,我们都不得不通过改变组织结构来推动系统的更改。

8. 人

“不管一开始看起来什么样,它永远是人的问题“

 -- 温伯格(没听说过),咨询第二定律

每个组织都有自己的节奏,了解员工能够承受的变化,不要逼他们改变太快。

需要跟员工清楚的阐述,在微服务的世界里每个人的责任,以及为何这些责任如此重要。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,312评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,578评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,337评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,134评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,161评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,303评论 1 280
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,761评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,421评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,609评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,450评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,504评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,194评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,760评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,836评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,066评论 1 257
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,612评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,178评论 2 341

推荐阅读更多精彩内容