这是我参与「第五届青训营」伴学笔记创作活动的第 8 天
什么是架构
-
有关软件整体结构与组建的抽象描述
-
用于指导软件系统各个方面的设计
简单理解架构
我们可以用蛋糕来理解这个问题, 比如架构设计就是:
-
如何做蛋糕
- 独家秘方,还是亲自做比较好
-
如何卖蛋糕
- 刚开始客流量不大,边做边卖?
单体服务
将所有功能都实现在一个进程内,部署在单台机器上
-
优点
- 简单
-
问题
-
C10 Problem
-
运维需要停服
-
不易于维护
-
单体 / 垂直应用|垂直分割
按应用进行垂直分割
-
优点
-
水平扩容
-
运维不需要停服
-
-
问题
-
指责太多,开发效率低
-
爆炸半径大
-
SOA架构 / 微服务|水平切分
所有东西面向服务,以服务为中心
-
将应用的不同功能抽象为服务
-
定义服务之间的通信标准
微服务将SOA拆分更加细致,不同服务间可更加自由的自行沟通
企业级后端架构剖析
云计算
指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石
-
基础
-
虚拟化技术 (单机 / 单机虚拟多台)
-
编排方案 (管理)
-
-
架构 (4层)
-
IasS (Infrastructure as a Service)
- 基础设施平台 / 用户需要自己控制底层, 实现基础设施的使用逻辑
-
PasS (Platform as a Service)
- 平台服务 / 提供 Runtime 只需要关注业务逻辑,无需关注底层
-
SasS (Software as a Service)
- 软件服务 软件的开发管理部署均交给第三方,不需要关注技术服务
-
Fass (Function as a Service)
-
云原生
-
弹性资源
-
虚拟化容器
-
快速扩缩容
-
-
微服务架构
-
业务功能解耦
-
统一通信标准
-
-
DevOps
-
敏捷开发
-
CI / CD
-
-
服务网络
-
业务与治理解构
-
异构系统的治理统一化
-
复杂治理能力
-
思考
软件架构的演进初衷就好比做蛋糕。
-
需求量越来越大,终究要增加人手
-
越来越复杂,终归要分工合作
两种切割方式
-
竖着切 (垂直分割)
-
横着切 (水平分割)