首页 > 其他分享 >从古至今,架构演进技巧一网打尽!

从古至今,架构演进技巧一网打尽!

时间:2023-04-12 23:08:51浏览次数:36  
标签:架构 从古至今 用户 业务 技术 驱动 一网打尽 演进

1 架构演进的定义

1.1 定义

通过设计新的系统架构(4R),来应对业务和技术的发展变化。

1.2 关键点

  1. 新架构
  2. 新的复杂度

1.3 目的

应对业务和技术的发展变化后带来新的复杂度

案例

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

从古至今,架构演进技巧一网打尽!_架构师

架构重构 vs 架构演进

从古至今,架构演进技巧一网打尽!_新技术_02

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

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

从古至今,架构演进技巧一网打尽!_复杂度_03

1个原则

架构演进是为了促进业务发展

2个驱动力

  1. 业务发展带来新的复杂度,2C业务主要体现在用户规模增长和业务多样性。
  2. 技术发展带来新的复杂度应对方法,如国产化,大数据、云计算等。

2种模式

  1. 主动演进架构师主动识别和规划架构演进
  2. 被动演进: 架构师被迫进行架构演进。

3 业务驱动的架构演进技巧

3.1 架构演进模式 V.S 业务发展模式

从古至今,架构演进技巧一网打尽!_复杂度_04

主动演进

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

被动演进

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

3.2 不同用户规模的架构挑战

从古至今,架构演进技巧一网打尽!_架构师_05

如果架构设计支持100万,但用户增长到200万时发现架构有问题怎么办?

优化、重构、演进。

3.3 业务驱动的主动演进技巧 - 做好预判,提前布局

预判

提前1年做好准备

  1. 以增长数字为标准:下一阶段用户规模60%时就要准备了
  • 例如当前用户60万,下一级的典型用户规模是100万,那么就可以开始考虑架构演进了,别等到100万再演进
  • 今年用户30万,老板说明年就要达到100万,今年就开始考虑架构演进
  1. 以时间为标准:提前1年预判

布局

团队和技术先行。

  1. 招聘人员
  2. 储备技术

3.4 业务驱动的被动演进技巧 - 快速响应,拿来主义

快速响应

熟悉什么就用什么

拿来主义

尽量用现成的方案

例如:

  1. 可能 Elasticsearch 更好,如果不熟悉,先用 MSQL 顶着
  2. 购买云服务的解决方案,例如直播、视频这种
  3. 尽量多用开源的方案

MySQL性能不如 Elasticsearch,用户体验不好咋办?

先跑起来!用户还不一定会用呢!毕竟若你不擅长的技术乱用,就更不稳定了。

演进案例

一开始 php+MySQL 快速试错,买的服务,后期改不动了。

从古至今,架构演进技巧一网打尽!_架构师_06

4 技术驱动的架构演进技巧

4.1 技术驱动演进的第1原则 - 新瓶旧酒原则

新瓶旧酒原则:使用新的技术来解决老的问题或者老的复杂度,不要为了尝试新技术而演进。

降本

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

例如:

  1. 上云来降低运维和机房成本
  2. 去IOE,降低硬件成本
  3. 机器图片审核,降低审核人员成本

增效

提升效率包括处理、运营、开发运维效率等 例如 : 1.大数据平台提升大数据分析效率; 2.容器化提升运维效率: 3.微服务提升开发效率。

提质

提升质量包括业务、管理、开发等。例如 :

  1. 推荐系统提升用户转化率
  2. 容器化支持弹性扩容应对业务峰值
  3. 中台提升多业务的开发效率

技术驱动的架构演进是主动演进还是被动演进?

主动演进。问题很明显,就属于架构重构。而引入新技术是架构师自己决定的。

4.2 技术驱动演进的第2原则 - 价值原则

新技术要带来典型的价值,才考虑演进。 典型的定义:产出要>>投入

  1. 20台服务器降到10台 ? 2000台降到1500台?
  2. 2000人日降到1000人日 ?100人日降到10人日 ?
  3. 转换率提升2%? 用户留存提升10% ?

要直接计算出钱的多少。

4.3 技术驱动演进的技巧 - 如何说服老板进行演进?

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

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

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

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

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

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

4.4 技术驱动演进的技巧 -做好洞察,提前布局

洞察:识别新技术能够为业务带来的价值

  1. 多关注业界技术大会
  2. 熟练掌握业务
  3. 把握技术本质

布局:团队和技术先行

  1. 招聘人员
  2. 储备技术

洞察”更难还是“预判”更难?洞察难得多!

案例

从古至今,架构演进技巧一网打尽!_架构师_07

5 思维导图

从古至今,架构演进技巧一网打尽!_复杂度_08

6 测试

判断题

  1. 架构演进主要是为了引入新技术,跟上业界技术发展的趋势 ×
  2. 业务驱动的架构演进优先考虑“快速响应” × 被动演进才是
  3. 可以从成本、收益、竞争、法律法规等角度来阐述架构演进的必要性 √
  4. 技术驱动的架构演进一定要具备“降本、增效、提质”中的一或多个价值 √ 竞争对手做了或者国家法律要求,其实也都属于提质
  5. “蚊子腿也是肉”,只要新技术能够带来一些价值,即使不那么大,也应该推进架构演进

关注业界技术大会+结合业务价值,就能拿到架构演进项目。

  • 和领导谈钱
  • 和下属谈情怀

大厂为了晋升,所以重复造轮子,适应大环境就好。

标签:架构,从古至今,用户,业务,技术,驱动,一网打尽,演进
From: https://blog.51cto.com/u_11440114/6186328

相关文章

  • 浅析云原生时代的服务架构演进
    摘要:相比于传统的微服务架构,云原生和serverless技术更加灵活、高效,能够更好地满足用户的需求。本文分享自华为云社区《《凤凰架构》学习和思考——云原生时代的服务架构演进史》,作者:breakDawn。随着云原生的概念越来越火,服务的架构应该如何发展和演进,成为很多程序员关心的话题。......
  • 浅析云原生时代的服务架构演进
    摘要:相比于传统的微服务架构,云原生和serverless技术更加灵活、高效,能够更好地满足用户的需求。本文分享自华为云社区《《凤凰架构》学习和思考——云原生时代的服务架构演进史》,作者:breakDawn。随着云原生的概念越来越火,服务的架构应该如何发展和演进,成为很多程序员关心的话题......
  • 2 01 | 是什么推动了单体应用到微服务架构的演进?
    你好,我是姚秋辰。“微服务”是近些年在大型应用架构领域的一个热门话题,从实践领域来看,我们身边的一二线大厂也纷纷选择全面拥抱微服务。就拿国内Java系的一线大厂来说,如阿里系、美团点评、PDD等,它们都将自己的核心业务系统构建在微服务架构之上。即便你是刚参加工作的萌新,也一......
  • 系统架构设计——淘宝架构设计演进
    摘要通过了解一线互联网公司的架构的演进,以帮助自己在设计系统的时候参考。介绍淘宝从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。一、基本概念在介绍架构之......
  • rocketmq-spring : 实战与源码解析一网打尽
    RocketMQ是大家耳熟能详的消息队列,开源项目rocketmq-spring可以帮助开发者在SpringBoot项目中快速整合RocketMQ。这篇文章会介绍SpringBoot项目使用rocketmq-springSDK实现消息收发的操作流程,同时笔者会从开发者的角度解读SDK的设计逻辑。1SDK简介项目地址:......
  • rocketmq-spring : 实战与源码解析一网打尽
    RocketMQ是大家耳熟能详的消息队列,开源项目rocketmq-spring可以帮助开发者在SpringBoot项目中快速整合RocketMQ。这篇文章会介绍SpringBoot项目使用rocketmq-springSDK实现消息收发的操作流程,同时笔者会从开发者的角度解读SDK的设计逻辑。1SDK简介项目地址:......
  • DevOps 在未来将如何演进?丨行业观察
    自2007年DevOps这一概念推出以来,越来越多企业开始将开发和运维团队结合在一起,以加快部署速度,提高软件开发生命周期的效率和协作。但是,诸多因素都会对DevOps是否成功产......
  • 使用 libevent 和 libev 提高网络应用性能——IO模型演进变化史
    构建现代的服务器应用程序需要以某种方法同时接收数百、数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作。有许多解决方案,但事件驱动也被广泛......
  • 全链路压测落地和演进之路
    转载:https://www.cnblogs.com/imyalost/p/14204484.html前言笔者所在的公司是一家快速发展的互联网电商公司,在保证业务快速稳定发展的同时,对于系统稳定性、可用性和扩展......
  • 02-系统扩展、测试和监控(基于客服系统演进案例)
    一、使用Mybatis-Plus对数据访问进行扩展1、MyBatis-Plus开发模式(1)为什么用Mybatis-Plus​ Mybatis的问题:​ 通过原生SQL语句操作业务数据,自动化程度不高;通过繁杂的......