这是我参与「第五届青训营 」笔记创作活动的第 5 天
前言
本文主要介绍:
什么是架构,从定义、问题、单机、单体、垂直应用|垂直切分、SOA、微服务|水平切分分析
什么是架构–定义
架构,又称软件架构,
是有关软件整体结构与组件的抽象描述·
用于指导软件系统各个方面的设计
Q:定义还是太抽象,能不能再通俗一点?
实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用
Q:架构的重要性?
地基没打好,大厦容易倒
地基坚实了,大厦才能盖得高
站在巨人肩膀上,才能看得远
什么是架构-问题
兰师傅蛋糕坊要开张了,亟须解决如下问题:
如何做蛋糕
独家秘方,还是亲自做比较好﹒如何卖蛋糕
刚开始客流量应该不大,边做边卖
看起来问题都解决了,开张!
什么是架构-单机
软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上
-
优点:简单
-
问题:运维需要停服
演进:如何卖更多的蛋糕?
多雇几个蛋糕师傅
什么是架构–单体、垂直应用|垂直切分
单体架构:分布式部署
垂直应用架构:按S用世 P单体
-
优点:水平扩容、运维不需要停服
-
问题:职责太多,开发效率不高;爆炸半径大
演进:如何提高做蛋糕效率?
分工协作
什么是架构-SOA、微服务|水平切分
SOA(Service-Oriented Architecture)
1.将应用的不同功能单元抽象为服务
2.定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
- 问题:
数据一致性
- 装货台共交付了多少蛋糕?
高可用
- 这么多师傅,如何合作?
治理
- 烤箱坏了,怎么容灾?
解耦vs过微
- 运维成本高了,值当么?