• 架构演进技巧


    架构演进剖析

    架构演进定义

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

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

    关键:1、新架构;2、新的复杂度;3、新的方法

    在这里插入图片描述

    案例

    1. 淘宝去IOE是因为业务发展大了后,IOE的成本和可控性难以满足,而不是性能
    2. 引入容器化来实现弹性部署,降低成本,提升运维效率

    架构重构vs架构演进

    架构重构架构演进
    基本做法调整架构设计新架构
    目的修复架构质量问题新的复杂度、新的方法
    是否修复问题可以修复问题,但不是主要目的,例如引入深度学习提升推荐效果
    是否改变系统能力是,例如引入机器学习
    手段引入缓存,分库分表引入缓存,分库分表,去IOE

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

    在这里插入图片描述

    1个原则

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

    2个驱动力

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

    2种模式

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

    架构演进技巧

    业务驱动的架构演进技巧

    架构演进模式vs业务发展模式

    在这里插入图片描述

    主动演进
    1. 业务规模:量变带来质变,一般10倍量级变化才考虑架构演进
    2. 业务多样性:业务规模可能没有变化,但是系统支持的业务类型越来越多
    被动演进
    1. 业务方向:业务调整方向,例如从图文转为短视频

    不同用户规模的架构挑战

    在这里插入图片描述

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

    预判

    提前1年做好准备

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

    团队和技术先行

    1. 招聘人员
    2. 储备技术
    例子
    1. 当前用户60万,下一级的典型用户规模是100万,那么就可以开始考虑架构演进了,别等到100万再演进
    2. 今年用户30万,老板说明年就要达到100万,那么今年就开始考虑架构演进

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

    快速响应

    熟悉什么就用什么

    拿来主义

    尽量用现成的方案

    例子
    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人日?

    如何说服老板进行演进

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

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

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

    如果你没有办法量化为钱,那就看竞争对手是否引入了

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

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

    做好洞察,提前布局

    洞察

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

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

    布局

    团队和技术先行

    1. 招聘人员
    2. 储备技术
  • 相关阅读:
    Python3-提取pdf文件内容的方式,PyPDF2的使用
    14.4、SpringWebFlux-1
    Java对象拷贝原理剖析及最佳实践
    ssh连接失败,提示ssh: connect to host port 22: Connection refused
    网络安全(黑客)自学笔记1.0
    经济型EtherCAT运动控制器(八):轴参数与运动指令
    kaggle电子邮件分类xgboost建模可视化模型评估混淆矩阵范例
    怎么判断自己是否适合转行软件测试
    毫米波雷达感应器成品,非接触式感知静止存在,智能化感应联动
    MySQL的分页你还在使劲的limit?
  • 原文地址:https://blog.csdn.net/lee_nacl/article/details/128110580