Go 架构初探 | 青训营笔记
这是我参与「第五届青训营 」笔记创作活动的第7天
今天主要对软件架构进行学习。
一、本堂课重点内容:
本次课程讲了以下几个方面:
1.什么是架构
2.企业级后端架构
3.后端架构实战
二、详细知识点介绍:
1.什么是架构
我们这里所讨论的架构指的是软件架构,官方的定义为:是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。个人理解的架构就是对软件开发的过程进行规划,其中就包含了所用到的技术规划,意外情况规划等。
常见软件架构:
- 单机
- 单体
- 垂直应用
- SOA (Service Oriented Architecture)
- 微服务 (Microservice)
2.企业级后端架构
a.云计算
- 基础
- 虚拟化
- 编排
- 架构
- IaaS
- SaaS
- PaaS
- FaaS
b.云原生
- 弹性资源
- 计算资源
- 存储资源
- 微服务架
- 通信协议
- 中间件
- DevOps
- 软件生命周期
- 服务网格
三、实践练习例子(后端架构实战):
以课件中的蛋糕店案例进行架构。
1、问题提炼
输入:
- 服务网格数据面
- 支持带权重的负载均衡策略
- 注册中心存储了所有容器的权重信息
- 宿主机能提供
- 容器的资源使用情况
- 物理资源信息(如CPU型号) 关键点:
- 紧急回滚能力
- 大规模
- 极端场景
2、自适应静态权重
方案:
- 采集宿主机物理资源信息
- 调整容器注册的权重
3、自适应动态权重Alpha 方案:
- 容器动态权重的自适应调整
- 服务网格的服务发现&流量调度能力
4、自适应动态权重Beta 方案:
- 服务网格上报 RPC 指标
5、自适应动态权重Release 演进方向:
- 微服务化
- 引入消息队列削峰、解耦
- 离在线链路切分
- 梳理强弱依赖
四、课后个人总结:
通过对后端架构的学习,我了解到了软件架构的基本概念和重要性,一个好的软件架构对于软件的开发影响很大,总的来说就是没有最好的架构,只有合适的架构。 要想做好一个系统的架构以下几点是我们应该注意的。
需求先行,弄清楚要解决什么问题
业界调研,业界都有哪些解决方案可供参考。
技术选型,内部/社区都有哪些基础组件。
异常情况,考虑清楚xxx不行了怎么办