这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
架构
- 架构,又称软件架构:
- 是有关软件整体结构与组件的抽象描述
- 用于指导软件系统各个方面的设计
- 常见软件架构:单机、单体(分布式部署)、垂直应用(按应用垂直划分)
- SOA (Service Oriented Architecture):将应用的不同功能单元抽象为服务,定义服务之间的通信标准。
- 微服务 (Microservice):SOA的去中心化演进方向
企业级后端架构剖析
- 云计算
- 基础:虚拟化;编排
- 架构:
- IaaS - 云基础设施,对底层硬件资源池的抽象
- PaaS - 基于资源池抽象,对上层提供的弹性资源平台
- SaaS - 基于弹性资源平台构建的云服务
- FaaS - 更轻量级的函数服务。好比 LeetCode 等 OJ,刷题时只需要实现函数,不需要关注输入输出流
- 云原生:云原生,实际是云原生(计算)的简称,它是云计算发展到现在的一种形态。云原生技术为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。 它的代表技术:
- 弹性资源
- 计算资源
- 存储资源
- 微服务架构
- 通信协议
- HTTP - H1/H2
- RPC - Apache Thrift/gRPC
- 如何在 HTTP 和 RPC 之间选择?
- 性能 - RPC 协议往往具备较好的压缩率,性能较高。如 Thrift, Protocol Buffers
- 服务治理 - RPC 中间件往往集成了丰富的服务治理能力。如 熔断、降级、超时等
- 可解释性 - HTTP 通信的协议往往首选 JSON,可解释性、可调试性更好
- 中间件
- 通信协议
- DevOps
- 软件生命周期
- 服务网格
- 微服务之间通讯的中间层
- 一个高性能的 4 层网络代理
- 将流量层面的逻辑与业务进程解耦
- 没有什么是加一层代理解决不了的问题,服务网格相比较于 RPC/HTTP 框架:
- 实现了异构系统治理体验的统一化
- 服务网格的数据平面代理与业务进程采取进程间通信的模式,使得流量相关的逻辑(包含治理)与业务进程解耦,生命周期也更容易管理