Go 架构 | 青训营笔记

40 阅读2分钟

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

1.什么是架构

(1)定义

架构,又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计

(2)单机

软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上

(3)单体,垂直应用

单体架构:分布式部署 垂直应用架构:按应用垂直切分的单体

(4)SOA

  1. 将应用的不同功能单元抽象为服务
  2. 2.定义服务之间的通信标准
  3. 微服务架构:SOA 的去中心化演进方向
2.企业级后端架构剖析

(1)云计算

云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石

(2)云原生

云原生技术为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用 提供了可能。

3.企业级后端架构的挑战

(1)离在线资源并池

核心收益

降低物理资源成本

提供更多的弹性资源,增加收入

解决思路:离在线资源并池

(2)自动扩缩容

核心收益

降低业务成本

解决思路:自动扩缩容

利用在线业务潮汐性自动扩缩容

(3)微服务亲合性部署

核心收益

降低业务成本

提高服务可用性

解决思路:微服务亲合性部署

(4)流量治理

核心收益

提高微服务调用容错性

容灾

进一步提高开发效率,DevOps 发挥到极致

解决思路: 基于微服务中间件 & 服务网格的流量治理 熔断、重试 单元化 复杂环境(功能、预览) 的流量调度

(5)CPU 水位负载均衡

核心收益: 打平异构环境算力差异 为自动扩缩容提供正向输入

解决思路: CPU 水位负载均衡

4.后端架构实战

(1)自适应静态权重

方案:

采集宿主机物理资源信息

调整容器注册的权重

优势:

复杂度低

完全分布式,可用性高微服务中间件无适配成本

缺点:

无紧急回滚能力

缺乏运行时自适应能力