这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
架构
是有关软件整体结构与组件的抽象描述
用于指导软件系统各个方面的设计
架构的内容通过蛋糕店来举例,部分词语可类比理解
什么是架构
单机:把所有功能都实现在一个进程里,并部署在一台机器上
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
SOA:将应用的不同功能单元抽象为服务,定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
云原生
云原生技术为组织(公司)在公有云,自由云,混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能
弹性计算资源:
服务资源调度:微服务(和面、雕花)、大服务(烤箱)
计算资源调度:在线(热销榜单)、离线(热销榜单更新)
消息队列:在线(削峰、解耦) 离线(大数据分析)
弹性存储资源:
经典:对象(宣传视频)、大数据(用户消费记录)
关系型数据库:(收银记录)
元数据:服务发现(蛋糕店通讯录)
NoSQL:KV(来个xx蛋糕)
DevOps:结合自动化流程,提高软件开发,交付效率
微服务架构:
通信标准:HTTP(RESTful API)PRC(Thrift,gRPC)
微服务中间件:性能、服务治理、协议可解释性
服务网络:
服务网格:微服务之间通讯的中间层、高性能网络代理、业务代码与治理解耦
相比于 RPC/HTTP 框架:异构系统治理统一化、与业务进程解耦,生命周期易管理
企业级后端架构的挑战
挑战
基础设施层面:物理资源是有限的(机器,带宽)、资源利用率受制于部署服务
用户层面:网络通信开销大、网络抖动导致运维成本提高、异构环境下,不同实例资源水位不均
离在线资源并池
核心收益:降低物理资源成本、提供更多的弹性资源,增加收入
在线业务的特点:IO密集型为主、潮汐性、实时性
离线业务的特点:计算机密集型占多数、非实时性
自动扩缩容
核心收益:降低业务成本
自动扩缩容:利用在线业务潮汐性自动扩缩容
微服务亲合性部署
核心收益:降低业务成本、提高服务可用性
微服务亲合性部署
将满足亲合性条件的容器调度到一台宿主机
微服务中间件与服务网络通过共享内存通信
服务网络控制面实施灵活、动态的流量调度