这是我参与「第五届青训营 」伴学笔记创作活动的第七天
架构定义解析
架构,又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。
架构的基本类型有:
-
单机架构
-
单体架构
-
垂直应用架构
-
SOA (面向服务架构)
-
SOA 架构中,服务为一等公民,将进程按照不同的功能单元进行抽象,拆分为『服务』。有了服务之后,SOA 还为服务之间的通信定义了标准,保证各个服务之间通讯体验的一致性。
优点:
- 各服务的职责更清晰
- 运维粒度减小到服务,爆炸半径可控
缺点:
- ESB (企业服务总线) 往往需要一整套解决方案
企业级后端架构剖析
云计算
云计算基础:
- 虚拟化技术
- 编排方案 云计算架构:
- 云服务
- IaaS - 云基础设施,对底层硬件资源池的抽象
- PaaS - 基于资源池抽象,对上层提供的弹性资源平台
- SaaS - 基于弹性资源平台构建的云服务
- FaaS - 更轻量级的函数服务。好比 LeetCode 等 OJ,刷题时只需要实现函数,不需要关注输入输出流
云部署模式(拓展)
- 私有云 - 企业自用
- 公有云 - AWS/Azure/Google Cloud/Huawei
- 混合云
云原生
云原生,实际是云原生(计算)的简称,它是云计算发展到现在的一种形态。 云原生技术为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。
企业级后端架构的挑战
云如何解决近乎无限的弹性资源和有限的物理资源之间的矛盾?
如何提高资源利用率,提高物理资源的价值转换率?
上了云原生微服务后,服务之间的通信开销较大,应该如何做成本优化?
微服务看起来没有那么美好,抖动导致的运维成本较高,如何解决?
异构的物理环境应该对用户是透明的,如何屏蔽这些细节?