初探架构 | 青训营笔记

76 阅读2分钟

初探架构 | 青训营笔记

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

架构概念

架构,又称软件架构,市有关软件整体结构与组件的抽象描述,也是用于指导软件系统各个方面的设计。也就是说,架构在实现软件的方法选择上起着至关重要的指导作用。

实例

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

弹性计算资源

  • 服务资源调度

    • 微服务
    • 大服务
  • 计算资源调度

    • 在线
    • 离线
  • 消息队列

    • 在线:削峰,解耦
    • 离线:大数据分析

弹性存储资源

  • 经典

    • 对象
    • 大数据
  • 关系型数据库

  • 元数据

  • NoSQL

微服务架构

  • 通信标准

    • HTTP(RESTful API)
    • RPC(Thrift,gRPC)
  • 中间件

    • 性能
    • 服务治理
    • 协议可解释性

服务网络

  • Service Mesh

    • 微服务之间通讯的中间层
    • 高性能网络代理
    • 业务代码与治理解耦

相比较于RPC/HTTP框架,拥有异构系统治理统一化、生命周期易管理的优点。

面临挑战

基础设施

物理资源是优先的,例如机器数量和带宽大小,这决定了计算能力。如何分配这些资源是一个非常重要的问题。

另外资源利用率还受制于部署服务

用户层面

由于不是本地,用户与服务的网络通信开销较大,网络抖动导致运维成本提高。另外,在异构环境下,不同的实力资源分配的也不均衡。

解决方案

混合离线和在线资源

  • 收益

    • 降低物理资源成本
    • 提供更多的弹性资源,增加收入
  • 在线业务特点

    • IO密集型为主
    • 潮汐性、实时性
  • 离线业务特点

    • 计算密集型占多数
    • 非实时性

自动扩缩容

  • 收益

    • 降低业务成本
  • 做法

    • 利用在线业务的潮汐性(间歇)自动扩缩容

微服务亲和性部署

  • 收益

    • 降低业务成本
    • 提高服务可用性
  • 做法

    • 在满足亲和性条件的容器调度到一台宿主机
    • 微服务中间件与服务网格通过共享内存通信
    • 服务网格控制面实施灵活、动态的流量调度

流量治理

  • 收益

    • 提高微服务调用容错性
    • 容灾
    • 进一步提高开发效率
  • 做法

    • 基于微服务中间件&服务网络的流量治理
    • 熔断、重试
    • 单元化
    • 复杂环境的流量调度

CPU水位负载均衡

  • 收益

    • 打平异构环境算力差异
    • 为自动扩缩容量提供正向输出
  • 做法

    • 提供资源探针
    • 动态负载均衡