这是我参与「第五届青训营 」笔记创作活动的第5天。
一、本堂课重点内容:
- 软件架构是什么
- 通过示例与迭代的方式引入架构的定义和作用
- 企业级后端架构剖析
- 具体的应用实例是什么样的,都有怎样的应用场景
- 企业级后端你架构的挑战
- 引出问题,解决问题
- 后端架构实战
- 结合具体实例迭代架构设计
二、详细知识点介绍:
常见软件架构
单机 → 垂直应用(应用垂直拆分) → SOA(Service Oriented Architecture,水平提炼功能组件,解耦服务,提高性能) → 微服务(Micoservice,进一步演进服务的划分,提高应用整体的效率与鲁棒性)
定义:有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计
c10k:c是指client用户,而10k是一万的,即如果用户访问量达到w级别,单机应用由于不同线程上下文切换而导致的额外支出会使系统无法正常运行,体现出单机软件的稳定性不足的问题
架构演进的初衷:满足如软件迭代效率 架构演进的思路:垂直切分——分布式,水平切分——分层/模块化
企业级后端架构剖析
-
云计算
- 基础:虚拟化技术(提供虚拟单机、多环境
- 虚拟机
- 容器
- 架构
- 云服务
- IaaS(Infrastructure as a Service)
- PaaS(Platform as a Service)
- SaaS(Service as a Service)
- FaaS(Function as a Service)
- 云服务
- 基础:虚拟化技术(提供虚拟单机、多环境
-
云原生
- 弹性资源:将资源当成服务一样
- 服务资源调度
- 计算资源调度
- 消息队列
- DevOps:Development&Operations
- 微服务架构
- 通信标准
- HTTP(RESTful,API)
- 扩展性强
- 结构清晰
- RPC(Thrift,gRPC)
- 性能
- 服务治理
- 协议可解释性
- HTTP(RESTful,API)
- 通信标准
- 网络服务
- Service Mesh
- 微服务通信的中间层
- 高性能网络代理
- 业务代理与治理解耦
- Service Mesh
- 弹性资源:将资源当成服务一样
企业级后端架构面临的挑战
- 离在线资源并池
- 自动扩缩容
- 微服务亲和型部署
- 流量治理
- CPU水位负载均衡
三、实践练习例子:
解决一个CPU水位负载均衡问题:根据主机层面的资源信息,实时进行流量调度的系统,打平不同宿主机异构环境的算力差异
核心问题:
- 紧急回滚
- 大规模
- 极端场景
四、课后个人总结:
由于对服务端所需资源与具体业务场景的生疏,对所学知识不明就里,只有个大概的了解;或许随着开发实践的积累会对软件架构有一个更深的理解。
五、引用参考: