25、软件开发模式:从分布式系统到API通信

软件开发模式:从分布式系统到API通信

1. 分布式系统模式

1.1 背景

当系统复杂度超出单个架构师或工程师的理解能力时,添加新功能变得困难且耗时。随着旧软件系统的发展,团队规模扩大,系统积累了大量技术债,每次变更都可能带来脆弱性和不可预测的副作用,导致开发者对添加新功能产生恐惧,进而使开发停滞。这是因为人类理解复杂系统的能力有限,单体系统需要有人全面理解组件间的复杂关系才能进行变更,而几乎所有软件系统最初都是小型单体应用。

1.2 解决方案

将软件系统构建为多个独立组件(微服务),这些组件运行在不同计算机上,通过API进行通信。每个组件的开发、交付和调度完全独立,任何组件的故障都不会影响其他组件。具体操作步骤如下:
1. 将系统拆分为小的微服务组件。
2. 定义API。
3. 使用更多但简单、廉价且易于快速配置的计算机,公共云是最有效的选择。

1.3 结果

虽然分布式系统在初始架构和实现时更为复杂,但一旦完成初始工作,系统的扩展和演进会变得更加简单。通过许多解耦组件带来的更高复杂性,使系统更具弹性和可扩展性。每个组件可以不断变得更复杂,直到被拆分为更小的独立部分,从而使系统在规模和复杂性上能够无限增长。不过,这种复杂性也使得无人能够完全理解整个系统,增加了维护难度,但高度自动化和良好的可观测性有助于预防问题。

1.4 常见陷阱

人们未能认识到云原生是一种真正的范式转变,试图将过渡过程简单视为敏捷工具集的新安装。他们以惯有的方式实施云原生,导致新系统(如果能够运行的话)由于康威定律开始类似于现有的单体应用。

1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值