1.云原生背景

  1. 业务快速发展与 开发、运维、运营之间落后的生产关系与生产力的矛盾
  2. 企业内部各占山头与企业总体战略规划的矛盾
  3. 企业内部改革,降本增效的需求
  4. 企业实现数字孪生,数字资产的必然需求
  5. 企业外部环境,如人工智能发展、安全合规等大环境的要求

2.云原生架构的设计原则

  1. 服务化原则(拆分为微服务、小服务,非功能特性委托)
  2. 弹性原则(可伸可缩)
  3. 可观测原则(基于sla,slo,在log,trace,metric三个维度)
  4. 可持续演进扩展(增量迭代,重构,迁入迁出等,实现业务&架构的平衡)
  5. 零信任(身份鉴权、资源隔离)
  6. 韧性(主要目标是MTBF)
  7. 高度自动化(基于ci/cd,gitops,apm,k8s)

3. 云原生架构模式

  1. 服务化架构模式(服务接口契约,如IDL)
  2. serverless(适用于无状态、无大量io阻塞,快进快出,事件驱动的业务,如阿里云的函数计算FC)

    • 技术关注点

      • 资源弹性调度
      • 负载均衡和流控
      • 安全性
    • 技术特点

      • 全托管计算服务
      • 通用
      • 自动弹性伸缩
      • 按量计费
    • 技术难点

      • 函数编程事件驱动比较反人性
      • 颗粒度较低,导致冷启动时间长,导致响应延迟
      • 函数编程生态不够成熟
  3. service mesh(托管非功能性代码,增加代理层)

    • 技术特点

      • 数据平面
      • 控制平面
    • 主要技术

      • istio
      • linkerd
      • consul
      • conduit
  4. 存储计算分离
  5. 分布式事务(XA、TCC、SAGA、SEATA)
  6. 可观测架构(对服务目标slo进行度量,包括log,trace,metric三个方面)
  7. 事件驱动架构(EDA)

    • 适用场景如CQRS、增强服务韧性、数据变化通知、事件流处理,openapi等

4. 云原生架构反模式

  1. 庞大的单体(粒度太大,耦合太高,责任不清)
  2. 硬拆单体(粒度太小,架构与技术组织能力不匹配)
  3. 技术拉胯(自动化能力不足,如打包、部署、治理、观测、放火技术等不足)

5. 云原生架构相关技术

  1. 容器技术

    • 隔离
    • 可移植
    • 轻量
    • 打包规范化
  2. 容器编排

    • 资源调度
    • 服务发现
    • 负载均衡
    • 应用部署
    • 弹性伸缩
    • 自动修复

6. 云原生微服务设计约束

  1. 微服务个体约束
  2. 微服务与微服务之间的横向关系
  3. 微服务与数据层之间纵向关系
  4. 全局视角微服务的分布式约束

7.业内主要微服务技术

  1. 腾讯-tars
  2. 阿里-spring cloud alibaba(包括注册中心,全局锁,分布式事务等)、dubbo(rpc框架)
  3. 蚂蚁金服 sofa stack
  4. Apache-spring cloud
  5. eclipse micro profile
  6. go生态(...)

8.云原生项目改造【背景、挑战、解决方案、收益】

  • 艺龙旅行
  • 申通
  • 广汽丰田
  • 特步

牙小木木
1.5k 声望80 粉丝

iamtb.cn