全球架构师峰会2017

趣店经验

经验

  • 乐观锁
  • 避免分布式事务
  • 审计系统

服务监控

  • 性能监控
  • 信息采集
  • 报警机制
  • 数据可视化

架构图

知乎

信息流功能的架构演进

  • 统一信息流
  • 推模型
  • 拉模型+底线计算
  • 拉+redis module

微服务架构

目标

  • 提高性能
  • 提高稳定性
  • 1个应用=多个微小服务
  • 服务运行于独立进程
  • 服务独立构建和部署
  • 服务间低耦合,技术多元
 

传统单体架构

分布式服务化架构

新功能开发

新功能开发需要时间

容易开发和实现

部署

不经常且容易部署

经常发布,部署复杂

隔离性

故障影响范围大

故障影响范围小

系统性能

响应时间快,吞吐量小

响应时间慢,吞量大

系统运维

运维简单

运维复杂

新人上手

学习曲线大(应用逻辑)

学习曲线大(架构逻辑)

技术

技术单一且封闭

技术多样且开放

测试

简单

复杂

系统扩展性

扩展性很差

扩展性很好

系统管理

重点在于开发成本

重点在于服务治理和调度

对比

分布式系统

  • 数据可用性 多复本保存

  • 数据一致性 读写一致性策略

  • 数据分布式 数据索引、分片

Service mesh

  • 一种基础设施层,服务间的通信通过Service Mesh进行

  • 一种网络代理的实现,通常与业务服务部署在一起,业务服务不感知

  • 一种TCP/IP之上的网络层 

优点

  • 技术无关
  • 对业务0侵入
  • 快速升级成云原生服务

缺点

  • 性能损失
  • 部署复杂一些
  • 新故障点

数据面

  • 注册发现服务
  • 路由策略
  • 负载均衡
  • 透明TLS传输
  • 生成监控数据

控制面

  • 服务控制
  • 配置中心
  • 负载均衡
  • 短路
  • 限流

自动化

  • 运维
  • 测试
  • 持续集成、部署
  • 负载均衡
  • 流量分发

服务化

  • 代码分层分域模块化
  • 面向服务的架构SOA
  • 日志监控分析
  • 错误报警
  • 性能监控

现代化

  • https
  • 前后端分离
  • 技术栈升级

方向策略

  • 容器道路
  • 拥抱开源新技术
  • 持续升级
  • 量力而行

重构无止境

代码要么等不到重构的那天 要么最终要被重构

权衡成本与产出

全球架构师峰会2017

By James Deng

全球架构师峰会2017

  • 373