Go 架构初探 | 青训营笔记

81 阅读2分钟

Go 架构初探 | 青训营笔记

这是我参与「第五届青训营 」笔记创作活动的第7天

今天主要对软件架构进行学习。

一、本堂课重点内容:

本次课程讲了以下几个方面:

1.什么是架构

2.企业级后端架构

3.后端架构实战

二、详细知识点介绍:

1.什么是架构

我们这里所讨论的架构指的是软件架构,官方的定义为:是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。个人理解的架构就是对软件开发的过程进行规划,其中就包含了所用到的技术规划,意外情况规划等。 常见软件架构:

  • 单机
  • 单体
  • 垂直应用
  • SOA (Service Oriented Architecture)
  • 微服务 (Microservice)

2.企业级后端架构

a.云计算

  • 基础
    • 虚拟化
    • 编排
  • 架构
    • IaaS
    • SaaS
    • PaaS
    • FaaS

云计算.jpg b.云原生

  • 弹性资源
    • 计算资源
    • 存储资源
  • 微服务架
    • 通信协议
    • 中间件
  • DevOps
    • 软件生命周期
  • 服务网格

云原生.png

三、实践练习例子(后端架构实战):

以课件中的蛋糕店案例进行架构。

1、问题提炼

输入:

  • 服务网格数据面
    • 支持带权重的负载均衡策略
  • 注册中心存储了所有容器的权重信息
  • 宿主机能提供
    • 容器的资源使用情况
    • 物理资源信息(如CPU型号) 关键点:
  • 紧急回滚能力
  • 大规模
  • 极端场景

问题提炼.jpg 2、自适应静态权重 方案:

  • 采集宿主机物理资源信息
  • 调整容器注册的权重 自适应静态权重.jpg 3、自适应动态权重Alpha 方案:
  • 容器动态权重的自适应调整
  • 服务网格的服务发现&流量调度能力 Alpha.jpg 4、自适应动态权重Beta 方案:
  • 服务网格上报 RPC 指标 Beta.jpg 5、自适应动态权重Release 演进方向:
  • 微服务化
  • 引入消息队列削峰、解耦
  • 离在线链路切分
  • 梳理强弱依赖 Release.jpg

四、课后个人总结:

通过对后端架构的学习,我了解到了软件架构的基本概念和重要性,一个好的软件架构对于软件的开发影响很大,总的来说就是没有最好的架构,只有合适的架构。 要想做好一个系统的架构以下几点是我们应该注意的。

需求先行,弄清楚要解决什么问题

业界调研,业界都有哪些解决方案可供参考。

技术选型,内部/社区都有哪些基础组件。

异常情况,考虑清楚xxx不行了怎么办