架构初探 | 青训营笔记

34 阅读3分钟

架构初探 | 青训营笔记

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

什么是架构

  • 是有关软件整体结构和组件的抽象描述
  • 用于指导软件系统各方面的设计

架构类型

  • 单机
  • 单体
  • 垂直应用
  • SOA(Services Oriented Architecture)
  • 微服务
image-20230201141344040 image-20230201141425584

企业后端架构

云计算

​ 通过软件自动化管理,提供计算资源的服务平台

云计算架构

image-20230201141834635

云原生

四个大的方面:弹性资源、DevOps、服务网络、微服务架构

  • 弹性资源 image-20230201142031038image-20230201142148907

  • DevOps

    DevOps聚焦云原生时代的软件交付,结合自动化流程、提高软件开发、交付效率 image-20230201142324852

  • 微服务架构 微服务架构要考虑各服务间的通信,引申出了对通信标准的考量 image-20230201142450054 即使用服务网络将通信和业务逻辑解耦

  • 服务网络 用以解决微服务体系中的通信问题 image-20230201142641765

企业后端架构的挑战

基础建设层面

  • 物理资源的限制
  • 资源利用率受限于部署服务

用户层面

  • 网络通信开销
  • 运维成本由于网络波动而提高
  • 异构环境下,不同实例的资源水位不均

思路

合并离在线资源池

按照资源响应的潮汐规律,合并一系列的在线和离线资源池,动态调整不同资源池的占用率,使得整体的使用率上升 image-20230201143257470

自动扩缩容

如何按照业务的潮汐性扩缩容?指标是啥?

image-20230201143433643

微服务亲和性部署

部署到不同物理机上的微服务通信使用rpc很依赖网络环境,而如果两个不同的微服务通信频率很高,那么可以将二者部署到同一台宿主机上,使用机内ipc的调用避免rpc的调用,从而减小开销。如何依据服务通信频率自动部署服务到同一宿主机就是亲和性部署的问题 image-20230201143752259

流量治理

基于微服务中间件&服务网格的流量治理

CPU水位负载

异构CPU应对相同的服务占用率不同,如何解决在异构服务器上部署的服务CPU的水位负载均衡也是需要考虑的问题 image-20230201144545984

在Iaas层面提供了资源探针响应了宿主机的荷载情况后,响应到注册中心进行资源调度

  • 服务向注册中心响应自己的资源信息,实现自适应的静态权重能力 image-20230201144847191
  • 其中问题就在于无法提供紧急回滚的能力,而且无法实现运行时的自适应 解决方法就是加设动态的决策中心,使得可以动态更新注册中心的权重调度 image-20230201145108069
  • 但终究存在由于流量倾斜的问题,使得服务提供机依次承受不住高荷载流量而被打趴下的情况 为此,让服务网格上报服务调用的响应情况,评估流量分配情况 image-20230201145309871
  • 最终,自适应动态权重服务就会变回最初提到的单击模式,可以使用微服务的思想将整个服务进行拆分,降低单点故障的可能性,提升整个系统的可靠性 image-20230201145626959

引用参考

⁤‌‌⁣⁣‬⁢‬⁢‌‍‌⁡⁣⁡⁤⁡⁣‬⁢⁡‍‬⁣‬‌⁢⁢‬⁢⁤架构初探 - 谁动了我的蛋糕 .pptx - 飞书云文档 (feishu.cn)

【后端专场 学习资料三】第五届字节跳动青训营 - 掘金 (juejin.cn)

架构定义解析 - 掘金 (juejin.cn)