这是我参与「第五届青训营 」伴学笔记创作活动的第7天
01.什么是架构
架构,又称软件架构,
是有关软件整体结构与组件的抽象描述
用于指导软件系统各个方面的设计
单体、垂直应用|垂直切分
单体架构:分布式部署
垂直应用架构:按应用垂直切的单体
优点:
水平扩容
运维不需要停服
问题:
职责太多,开发效率不高
爆炸半径大
SOA、微服务|水平切分
SOA(Service-Oriented Architecture)
1.将应用的不同功能单元抽象为服务
2.定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
问题:
数据一致性
装货台共交付了多少蛋糕?
高可用
这么多师傅,如何合作?
治理
烤箱坏了,怎么容灾?
解耦vs 过微
运维成本高了,值当么?
小结
架构的演进初衷:好比做蛋糕。
需求量越来越大,终归要增加人手
越做越复杂,终归要分工合作
架构的演进思路:就像切蛋糕。蛋糕越来越大,一口吃不下终归要切分。
竖着切(垂直切分)
横着切(水平切分)
02企业级后端架构剖析
云计算
云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石。
基础:
虚拟化技术–整租vs合租
编排方案–业主vs 租赁平台
架构: laaS (lnfrastructure as a Service)
买房子vs房屋租赁平台
PaaS (Platform as a Service)
清包vs全包
Saas (Software as a Service)
从零培训vs雇佣培训过的师傅
Faas (Function as a Service)
纯手工制作vs蛋糕机批量生产
03.企业级后端架构的挑战
问题
挑战:
基础设施层面
物理资源是有限的
机器
带宽
资源利用率受制于部署服务
用户层面
网络通信开销较大
网络抖动导致运维成本提高
异构环境下,不同实例资源水位不均
04.后端架构实战
自适应静态权重
方案:
采集宿主机物理资源信息
调整容器注册的权重
优势
复杂度低
完全分布式,可用性高
微服务中间件无适配成本
缺点:
无紧急回滚能力
缺乏运行时自适应能力