微服务架构发展历程

发展历程.png
架构发展历程.png

发展历程1响应式微服务

  • 即时响应性:服务任何时间都要有响应,哪怕挂了
  • 可恢复性:压力大过后压力降下来后状态能够恢复,也称回弹性
  • 弹性:伸缩性,无状态服务可以任意扩展

响应式微服务.png

发展历程2服务网格与云原生

服务网格与云原生.png

发展历程3数据库网格

数据库网格.png

发展历程4单元化架构

  • CellArchitecture
  • 以单元为组织架构,以单元化部署为调度单位
  • 每个单元都是全能的,部署了所有应用,但不是全量的,只有他负责的单元部分的数据
  • 通过业务入口设置流量调度器进行流控

单元化架构.png

微服务架构应用场景

单体与微服务

  • 微服务引用在复杂度低的情况下,生产力反而比单体架构低
  • 在复杂度高的地方,情况恰恰相反
  • 随着复杂度的升高,单体架构的生产力快速下降,而微服务相对平稳

单体与微服务.png

大规模复杂业务系统的架构升级与中台建设

大系统.png

如何实施

如何实施.png

微服务架构最佳实践

六大最佳实践.png

系统改造

  • 功能剥离,数据解耦
  • 自然演进,逐步拆分
  • 小步快跑,快速迭代
  • 灰度发布,谨慎试错
  • 提质量线,还技术债

    拆分原则

  • 高内聚低耦合

  • 不同阶段拆分要点不同

    扩展立方体

  • 特性开关

  • 容错设计

扩展立方体.png

自动化

  • 自动化测试
  • 自动化部署
  • 自动化运维

    分布式事务

  • 幂等/去重/补偿

  • 慎用分布式事务

    监控体系

  • 系统指标

  • 业务指标
  • 容量规划
  • 报警预警
  • 运维流程 SOP(StandardOperatingProcedure标准作业程序)
  • 故障处理 COE(CorrectionOfError 错误处理 )

    SpringCloud

    SpringCloud生态.png
    业务组合.png
    cloud选择.png

技术架构图.png
业务架构图.png

微服务相关框架与工具

APM

应用性能监控

  • ApacheSkywalking
  • Pinpoint
  • Zipkin

    监控

  • ELK

  • prometheus + Grafana
  • MQ + 时序数据库(InfluxDB/ openTSDB)

    可观测性

  • Tracing

    • ApacheSkywalking
    • 听云
  • Logging
    • ELK
  • Metrics

    • Prometheus + Grafana

      权限控制

      核心3A

  • Authentication 认证Authc

  • Authorization 授权Authz
  • Audit 审计

    相关框架

  • CAS + SSO(CentralAuthenticationService)

    • TGC TicketGrantingCookie
    • ST ServiceTicket
  • JWT/Token
  • OAuth2.0
  • SpringSecurity
  • ApacheShiro

    数据处理

  • 分库分表Sharding

  • 分布式事务DTX
  • 数据迁移Migration
  • 数据库集群扩容Scaling
  • 数据操作审计Audit

    网关和通信

  • 流量网关与WAF

    • Nginx
    • OpenRestry
    • Kong
  • 业务网关
    • Zuul2
    • SCG
    • Soul
  • 通信协议
    • Http
    • WebSocket
    • Mq