GO-013 后端架构笔记

83 阅读2分钟

一个软件实现方法有很多种,架构在方法选择上十分重要。

1、架构:

单机:简单,缺点;C10K问题,运维需要停服

单体&垂直切分:分布式部署,按应用垂直切分。水平扩容,运维与不用停服。缺点;职责太多,开发效率不高,爆炸半径大

image.png

SOA,微服务架构

  • SOA:将应用的不同功能单元抽象为服务;定义服务之间的通信标准。
  • 微服务架构:SOA的去中心化演进。
  • 问题:数据一致性,高可用(互相协调),治理(某工序停工如何容灾),解耦过微(划分太细运维成本太高)

image.png

架构演进:

需要+,人手+&分工+,切分的两个方向--垂直(同功能水平扩容),水平(功能分步分工如微服务)

2、企业级后端架构

云计算:Iaas,Paas,Saas,Faas

云原生:公有云,私有云,混合云中弹性管理

image.png

弹性计算资源类型:服务资源调度(微服务&大服务),计算资源(在线&离线),消息队列(在线削峰解耦,离线大数据分析)

弹性存储资源类型:对象&大数据,关系型数据库,元数据,Nosql ---- 将存储资源当成服务

Devops:贯穿整个软件开发周期

通信框架:HTTP&RPC 云原生可以交给框架去做

服务网格:微服务之间的通讯中间层,与HTTP/RPC框架对比,异构系统治理统一化,生命周期容易管理

3、企业后端的挑战

基础层面&用户层面

离在线资源并池:降低物理资源成本,实现弹性(利用在线业务潮汐性自动扩缩容)

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

image.png

流量治理(容错容灾+Devops效率提升):微服务中间件&服务网格的流量治理

CPU水位负载均衡:Iaas+服务网格