架构初探(下)| 青训营笔记

80 阅读2分钟

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

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

挑战

基础设施层面:

Q:我们总是说云是有弹性的,也就是说,从用户的角度来看,云提供了无限的资源。然而,云背后的物理资源是有限的。云如何解决企业后端架构中近乎无限的弹性资源和有限的物理资源之间的冲突?

Q:干预的资源这么空?如何提高资源的利用率和物质资源的价值转化率?

用户层面:

Q:使用云原生微服务后,服务之间的通信成本较高。如何优化成本?

Q:微服务看起来不太好。抖动造成的运行维护成本高。如何解决这个问题?

Q:异构物理环境应该对用户透明,如何屏蔽这些细节?

离在线资源并池

考虑到在线业务的潮汐性质,物理资源的数量不是恒定的。离线资源池可以:

  • 提高物理资源的利用率
  • 提供更灵活的资源

image.png

微服务亲合性部署

微服务之间的通信成本较高。我们可以:

  • 形式上的微服务架构
  • 通信的单一架构

亲和性部署是将微服务调用形式与资源调度系统相结合,将一些调用关系密切、流量较大的服务部署在同一台机器上,采用IPC代替RPC,减少网络通信带来的开销

流量治理

为什么要管理微服务之间的通信?

常见的治理措施是什么?

微服务中心和服务网格在其中扮演什么角色?

屏蔽异构环境的算力差异

基础设施层通常是一个复杂的异构环境,有些机器使用Intel cpu,有些机器使用AMD cpu。即使是同一品牌,也可能是不同的年代。如何掩盖这些差异,让用户尽可能不知道?

我们认为这项服务什么时候需要扩展?异构环境如何影响这个标准?

image-20230206002547629

image-20230206003236174

image-20230206003616758

扩缩容指标:CPU(多数,比如CPU统计单位数)和内存作为指标,IO可行性比较难。

image-20230206004008745

image-20230206004141385

image-20230206004904278

4. 后端架构实战

问题

如何设计一个根据主机层面的资源信息,实时进行流量调度的系统,打平不同宿主机异构环境的算力差异。

关键点:

  • 紧急回滚能力
  • 大规模
  • 极端场景

image.png

image-20230206005159107

image-20230206005425267

image-20230206005656609

image-20230206010043209

image-20230206010515956

image-20230206010353140

结语:没有最好的架构,只有最合适的架构