架构,又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计
什么是架构: 单机架构: 软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上
优点:简单 问题:运维需要停服
单体、垂直应用|垂直拆分: 单体架构:分布式部署 垂直应用架构:按应用垂直切分的单体
优点:水平库容、运维不需要停服 问题:职责太多,开发效率不高、爆炸半径大
SOA、微服务|水平切分: SOA:将应用的不同功能单元抽象为服务,定义服务之间的通信标准 微服务架构:SOA的去中心化演进方向
问题: 数据一致性、高可用、治理、解耦VS过微
架构的演进:需求量越来越大、需要增加人手。实现过程越来越复杂,总要分工合作,可以垂直切分或者水平切分
企业级后端架构剖析:
云计算: 是指通过软件自动化管理,提供计算机资源的服务网络,是现代互联网大规模熟悉分析和存储的基石 基础:虚拟化技术、编排方案 架构:Iaas(Infrastructure as a Service)、PaaS(Platform as a Service)、 SaaS(Software as a Service)、FaaS(Function as a Service)
云原生: 云原生技术为组织在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性维护的应用提供了可能。
云原生弹性计算资源:
弹性计算资源类型: 服务器资源调度:微服务、大服务 计算资源调度:在线:热销榜单、 离线:热销榜单更新 消息队列:在线:削峰、解耦 离线:大数据分析
云原生弹性存储资源:
弹性存储资源类型: 经典:对象:宣传视频 大数据:用户消费记录 关系型数据库:收银记录 元数据:服务发现:蛋糕店通讯录 NoSQL:KV数据库
云原生之DevOps: DevOps是云原生时代软件交付的利器,贯穿整个软件开发周期。 结合自动化流程,提高软件开发、交付效率
云原生指微服务架构: 通信标准:HTTP(RESTful API)、RPC(Thrift,gRPC)
微服务中间件RPC vs HTTP:性能、服务治理、协议可解释性
云原生场景下、微服务大可不必在业务逻辑中实现符合通信标准的交互逻辑,而是交给框架来做
云原生之服务网络:
服务网络(Service Mesh):微服务之间通讯的中间层、高性能网络代理、业务代码与治理解耦
相比较于RPC/HTTP框架:异构系统治理统一化、与夜壶进程解耦,生命周期易管理