Golang结构的实践问题(day7)| 青训营笔记

61 阅读2分钟

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

image.png

本文基于字节内部课+上网自学的内容。

架构在企业实践中扮演何种角色? 大规模的实践亟需完备的架构!!!

1.企业级后端架构

云计算

提供计算资源的服务网络(虚拟化技术——合租店面、编排方案——租赁平台)
其架构分四层:
IaaS(资源提供——房屋租赁平台)
PaaS(提供服务平台——装修全包)
SaaS(提供所需服务——雇佣熟练工)
FaaS(将函数执行放到线上——蛋糕机生产蛋糕)

云原生

弹性资源(虚拟化容器、可快速扩缩容)
DevOps(敏捷开发、运营相关)
微服务架构(各功能模块解耦、之间通信标准统一)
服务网格(异构系统治理统一)

弹性资源

  • 服务资源

微服务(小组件、单一职责)、大服务(高使用量、大体量)

  • 计算资源

在线资源(热门榜单展示)、离线资源(热门榜单更新、计算量大,放在线下)

  • 消息队列

在线(大吞吐量:解决削峰、解耦的问题)、离线(大数据分析)

  • 弹性存储资源

经典(对象、大数据)、关系型数据库(各种记录,有联系)、元数据(不大)、NoSQL(KV存储)

将存储当成服务一样

DevOps

贯穿开发周期的工具(后期有机会详述)

微服务架构

各服务之间的通信标准:HTTP、RPC标准等

那各种服务是否需要专门实现通信的方法呢?
duck不必,有通信的中间件来帮忙!

服务网格

微服务之间通信的中间层
优势:标准统一、与业务进程解耦,生命周期易于管理。

2.企业级架构面临的挑战

基础设施、

物理资源(机器设备有限、带宽有限制)
资源的利用率差别大(受制于部署的服务具体情况)

用户

网络通信开销很大
网络抖动影响运维成本
异构环境下,不同机器资源水位不均(生产厂商、批次的设备的水平不同)