这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
站在巨人的肩膀上才能看得更远
1. 架构是什么
(1)架构又称软件架构
😋 是有关软件整体结构与组件的抽象描述
😋 用于指导软件系统各个方面的设计
(2)单机
😋 软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上
😋 优点:简单
😋 缺点:运维需要停服
(3)单体、垂直应用 | 垂直切分
(4)SOA、微服务 | 水平切分
(5)小结
① 演进初衷
😋 需求量越来越大,增加人手
😋 业务流程越来越复杂,分工合作
② 演进思路
😋 垂直切分
😋 水平切分
2. 企业级后端架构剖析
(1)云计算
😋 是通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规数据分析析和存储的基石
😋 基础:虚拟化技术、编排方案
(2)云原生
😋 云原生为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。
😋 弹性计算资源类型
① 服务资源调度
😎 微服务
😎 大服务
② 计算资源调度
😎 在线
😎 离线
③ 消息队列
😎 在线:削峰、解耦
😎 离线:大数据分析
😋 弹性储存资源类型
😋 DevOps
😋 微服务架构
😋 服务网络
3. 企业级后端架构的挑战
😋 基础设施方面
① 物理资源有限
😎 机器
😎 带宽
② 资源利用率受制于部署服务
😋用户层面
😎 网络通信开销比较大
😎 网络抖动导致运维成本提高
😎 异构环境下,不同实例资源水位不均
(1)离在线资源并池
😋 核心收益
① 降低物理资源的成本
② 提供更多的弹性资源,增加收入
👨🏫 在线业务的特点
① IO 密集型为主
② 潮汐性、实时性
👨🏫 离线业务的特点
① 计算密集型占多数
② 非实时性
(2)自动扩缩容
😋 核心收益:降低业务成本
😋 思路:利用在线业务潮汐性自动扩缩容
(3)微服务亲合性部署
(4)流量治理
😋 核心收益
😎 提高微服务调用容错性
😎 容灾
😎 进一步提高开发效率, DevOps 发挥到极致
(5)Cpu 水位负载均衡
4. 后端架构实战
(1)自适应静态权重
(2)自适应动态权重
😋 Alpha
😋 Beta
😋 Release
没有最好的架构,只有最合适的架构
如何做架构设计?
😋 需求先行
😋 业界调研
😋 技术选型
😋 异常情况