42、微服务:从康威定律到实践模式

微服务:从康威定律到实践模式

1. 微服务并非万能药

微服务虽有诸多优势,但并非能解决所有问题。在采用微服务时,我们需保持理性,不能盲目跟风。

2. 康威定律的持续影响

康威定律指出,系统的架构会由公司的沟通和组织架构决定。简单来说,设计系统的组织最终会产生与组织沟通结构相似的设计。同时,还有反向康威定律,即团队的规模、成员构成和地理位置会影响团队决策,最终影响团队产出。

比如,微软曾意识到其“相互竞争的业务单元”层级结构不利于创新,反而成为创新的严重制约因素。于是,公司对大部分组织,尤其是产品工程团队进行了彻底重构,使其更像他们所开发的原生网络软件和微服务,具备自给自足、模块化、规模小、紧密协作、扁平化和集中办公等特点。

如果组织采用垂直团队支持应用的模式,会存在协商和交接成本。因为每个团队有自己的优先级,对应用进行更改时,需要在处理 API 层的团队、控制业务逻辑的团队以及锁定数据层的数据库管理员(DBAs)之间进行协调。

而支持微服务的真正跨职能团队则不存在这种后勤拖累。单个团队可以端到端地拥有 API、业务逻辑和数据层,不依赖其他团队,能够按照自己的计划随意发布。API 成为不同垂直团队之间的契约,每个团队可以按照自己的节奏发展,并利用 API 借助其他团队的服务。

微服务可以被看作是“康威定律的一种体现”,它有助于扩展工程组织,而非产品本身。为支持各个微服务会创建更小、更灵活的团队,从而减少沟通开销,提高团队效率。当设计合理时,微服务仅与少数相邻微服务进行通信,这减少了人类沟通模式带来的拖累。

但转向高信任、低沟通型团队(如特警队)也存在问题,即团队隔离。我们需要更加

相关推荐

【信息科学与工程学】计算机科学与自动化 第二百零一十一 软件开发模型01

编号类型模型领域模型中的知识点/因素/参数关联知识和法律法规1传统顺序模型瀑布模型 (Waterfall)通用软件开发、硬件紧密耦合系统、政府/军工项目、需求稳定的传统信息系统严格线性阶段:可行性研究→需求分析(SRS,含功能/非功能/接口/约束,使用IEEE 830模板)→系统设计(概要设计HLD:架构、模块划分、数据库ER图;详细设计LLD:伪代码、类图、接口定义)→实现(编码规范、代码审查、静态分析工具SonarQube)→测试(单元测试JUnit、集成测试、系统测试、验收测试UAT,测试计划提前编写

weixin_49199313的博客 167

42、微服务:从理论到实践

本文深入探讨了微服务架构的理论与实践,强调了微服务并非万能,但通过合理应用可以显著提升软件开发效率和业务响应能力。结合康威定律,分析了组织架构与系统架构之间的紧密联系,并以亚马逊和微软等企业为例,展示了微服务成功实施的关键因素。同时,介绍了绞杀者模式、持续交付流程以及微服务实施的注意事项,为企业提供了可借鉴的实践路径。

orange的博客 75

别再为EPI形变头疼了!FSL的topup+eddy实战保姆级教程(含AP/PA数据采集要点)

本文详细介绍了如何使用FSL的topup和eddy工具解决EPI形变问题,包括数据采集要点、参数设置和实战操作步骤。通过AP/PA双编码数据和精确的形变场估计,有效矫正MRI图像中的几何畸变,提升弥散数据质量。特别适合需要处理高场强MRI数据的研究人员和技术人员。

weixin_28725949的博客 401

Lumerical官方案例、FDTD时域有限差分法仿真学习(三)——环形谐振器(Ring resonator)之第二&第三部分

二、使用 MODE 的参数提取和蒙特卡罗 三、最终参数提取

weixin_45719141的博客 1万+

Docker一键部署NextCloud+OnlyOffice:打造企业级私有云办公环境(含HTTPS配置)

本文详细介绍了如何使用Docker Compose一键部署NextCloud与OnlyOffice,构建安全、高效的企业级私有云办公平台。内容涵盖从架构设计、Docker编排配置、HTTPS证书自动化管理,到系统初始化、性能优化及高级功能扩展的全栈实战指南,帮助企业实现数据自主可控与高效的在线文档编辑协作。

Apple的专栏 1243

ENVI 5.3与IDL 8.5安装指南:从下载到激活的完整流程

本文提供了一份详细的ENVI 5.3与IDL 8.5安装教程,涵盖从获取安装包、运行主程序、安装许可证到关键文件替换的完整流程。指南重点解决了激活过程中的常见问题,并分享了个人实践经验,旨在帮助用户,特别是遥感图像处理初学者,一次性顺利完成软件部署,为后续的科研与开发工作奠定基础。

weixin_29213827的博客 550

用Arduino Mega2560和TB6612驱动MG513电机,我踩过的坑和最佳实践

本文详细介绍了使用Arduino Mega2560和TB6612驱动模块控制MG513直流电机的实战经验,包括硬件连接、PWM配置、编码器信号处理等关键技巧。通过优化电源系统、信号线布局和软件控制算法,有效解决了电机抖动、转速不稳等常见问题,为机器人底盘和自动化项目提供了可靠解决方案。

weixin_42520573的博客 202

[QMT量化交易小白入门]-三十七、QMT中如何使用类似于通达信中的VBA函数(量化python代码解析)

这段代码主要围绕着在QMT环境中实现类似通达信VBA函数的功能展开,核心功能是基于RSI指标来判断股票的买卖时机,并根据持仓情况进行相应的交易操作。class G():passg = G()这里定义了一个空类G,并创建了该类的实例g。这个实例g将作为全局变量来存储一些在整个程序运行过程中需要共享的数据,例如除复权类型、股票代码、目标数量等。1、使用VBA开发策略时,参数固化的问题会带来一些限制,比如无法修改MA函数的周期参数,只能使用固定周期。

木头大左的博客 1702

免杀思路总结

免杀思路总结 1.免杀技术简介 1.免杀的重要性 2.免杀的难度 3.杀毒软件的排行 国外 国内 1 、Bitdefender 1、360 2 、Norton 360 2、智量安全(没测过,据说很厉害) 3 、Kaspersky 3、火绒安全 4 、Webroot 4、金山独霸 5 、Trend Micro 5

LiBai'S BLOG 1万+

Matlab R2018b简体中文版完整安装图文教程(附安装包下载)

目 录 一、安装过程 二、下载地址 matlab R2018b安装包如下所示,包括主程序和补丁文件两部分。 一、安装过程 双击安装包中的setup.exe。 选择使用文件安装MIYAO,点击下一步。 接受协议,选择是,点击下一步。 输入序列号:09806-07443-53955-64350-21751-41297,点击下一步。 修改安装路径,点击下...

智慧空间实验室 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 13、密码系统安全分析:无证书加密与多级安全密码系统
下一篇: 34、自安全PUF:通过掩码保护环形PUF
人间清醒863
博客等级 码龄3年 33粉丝 1544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值