什么是架构演进?架构演进技巧有哪些?

2024年 3月 6日 38.9k 0

什么是架构演进?

定义:通过设计新的系统架构来应对业务和技术的发展变化

目的:应对业务发展带来新的复杂度;2. 应用技术发展带来的复杂度新的解决方法。

关键点:

1. 新架构;2. 新的复杂度;3. 新的方法。

举例说明:

1. 淘宝去 IOE 是因为业务发展大了后,IOE 的成本和可控性难以满足,而不是性能。

2. 引入容器化来实现弹性部署,降低成本,提升运维效率。

架构重构和架构演进有什么不同点?

架构重构:

基本做法:调整架构

目的:修复架构质量问题

是否修复问题:是

是否改变系统能力:否

手段:引入缓存,分库分表

架构演进:

基本做法:设计新架构

目的:新的复杂度、 新的方法

是否修复问题:可以修复问题,但不是主要目的,例如引入深度学习提升推荐效果

是否改变系统能力:是,例如引入机器学习

手段:引入缓存,分库分表,去 IOE

图片图片

个人认为:

技术手段不是区分架构重构和架构演进的方法,复杂度是否变化才是判断关键 !

架构演进的原则、驱动力和模式

图片图片

原则:架构演进是为了促进业务发展。

驱动力:

1. 业务发展带来新的复杂度,ToC 业务主要体现在用户规模增长和业务多样性;

2. 技术发展带来新的复杂度应对方法,例如国产化,大数据、云计算等。

模式:

1. 主动演进:架构师主动识别和规划架构演进;

  • 业务规模:量变带来质变,一般10倍量级变化才考虑架构演进;
  • 业务多样性:业务规模可能没有变化,但是系统支持的业务类型越来越多。

2. 被动演进:架构师被迫进行架构演进。

  • 业务方向:业务调整方向,例如从图文转为短视频。

不同用户规模的架构挑战

十万:单体

百万:微服务

千万:多机房

亿级:用户分区

业务驱动的主动演进技巧

做好预判,提前布局

预判:提前1年做好准备。

1. 以增长数字为标准:下一阶段用户规模60%的时候就要准备了;2. 以时间为标准:提前1年预判。

快速响应,拿来主义

快速响应:熟悉什么就用什么

拿来主义:尽量用现成的方案。

例如:

1. 可能 Elasticsearch 更好,如果不熟悉,先用 MySQL 顶着;

2. 购买云服务的解决方案,例如直播、视频这样的业务;

3. 尽量多用开源的方案。

业务驱动架构演进案例

图片图片

技术驱动演进原则

新瓶旧酒原则

降低成本

包括硬件、人力、运营等成本。

例如:

1. 上云来降低运维和机房成本;

2. 去 IOE 降低硬件成本;

3. 机器图片审核降低审核人员成本。

提升效率

包括处理、运营、开发运维效率等。

例如:

1. 大数据平台提升大数据分析效率;

2. 容器化提升运维效率;

3. 微服务提升开发效率。

提升质量

包括业务、管理、开发等。

例如:

1. 推荐系统提升用户转化率;

2. 容器化支持弹性扩容应对业务峰值;

3. 中台提升多业务的开发效率;

4. 提升业务竞争力。

价值原则

价值原则:新技术要带来典型的价值才考虑演进。

“典型”的定义:产出要远远大于投入!

1. 20台服务器降到10台?2000台降到1500台?

2. 2000人日降到1000人日?100人日降到10人日?

3. 转换率提升2%?用户留存提升10%?

如何说服老板进行演进?

技巧1 - 谈钱,别谈感情(适合成熟技术)

将引入新技术带来的价值量化成 money,然后附带说提升技术水平,提升团队动力,不要本末倒置!

技巧2 - 谈竞争对手(适合全新技术)

如果你没办法量化为钱,那就看看竞争对手是否引入了,“吓唬吓唬”老板!

技巧3 - 谈大环境(适合法律政治相关)

例如国产化,跟老板谈政治意义和大环境变化……

做好洞察,提前布局

1.识别新技术能够为业务带来的价值。

  • 多关注业界技术大会;
  • 熟练掌握业务;
  • 把握技术本质。

2.团队和技术先行。

  • 招聘人员;
  • 储备技术。

技术驱动架构演进案例

图片图片

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论