这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
什么是架构
软件结构与组件的抽象描述
主要后端架构
常见软件架构:
-
单机
一个 Process
-
单体
多个 Application(client <-> N*server
-
垂直应用
按业务垂直切分Application,垂直表示client <-> server这个交互链,说明每个Application负责一个业务链
-
SOA (Service Oriented Architecture)
让Application分工合作
更准确来说,可拆分Application -> M*Service(代表不同的功能单元
-
微服务 (Microservice)
一些小问题:
-
架构演进的初衷?
需求越来越大,抽象处理器就越来越多
需要的架构越来越复杂,需要分工协作
-
架构演进的思路?
竖切(process->N*application),横切(application->M*service)
-
架构选型思想
没有最好的架构,只有最合适的架构
所以,要从需求出发来选择架构
企业级后端架构
-
云计算
-
基础
-
虚拟化
有抽象的意思,也有基础设施的意思,比如4S中的三个都是提供抽象化服务
-
编排
类似Paas,把很多琐碎的流程or实体 编排成一个平台,提供服务
-
-
架构
-
FaaS
function
-
SaaS
software
-
PaaS
platform,类比 普通租户(进行租赁) <==> 租赁平台(只需注册和托管)
-
IaaS
infrastructure 比如硬件(存储、虚拟机、计算资源
-
-
-
云原生
-
弹性资源
动态扩缩资源,来适配请求的潮汐性
- 计算资源
- 存储资源
-
微服务架构
-
通信协议
RPC通信
-
中间件
业内成熟的软件,优化好,稳定,高效
-
-
DevOps
-
软件生命周期
一种贯穿整个周期的开发模式
-
-
服务网格
比较新潮的云原生架构,提高效率,集中流量监察
-