全球架构师峰会2017
趣店经验
![](https://s3.amazonaws.com/media-p.slid.es/uploads/63449/images/4442262/IMG_20171208_160539.jpg)
经验
- 乐观锁
- 避免分布式事务
- 审计系统
服务监控
- 性能监控
- 信息采集
- 报警机制
- 数据可视化
![](https://s3.amazonaws.com/media-p.slid.es/uploads/63449/images/4442298/IMG_20171208_155618.jpg)
架构图
![](https://s3.amazonaws.com/media-p.slid.es/uploads/63449/images/4442329/IMG_20171208_154703.jpg)
知乎
信息流功能的架构演进
![](https://s3.amazonaws.com/media-p.slid.es/uploads/63449/images/4442394/IMG_20171209_113408.jpg)
- 统一信息流
- 推模型
- 拉模型+底线计算
- 拉+redis module
微服务架构
目标
- 提高性能
- 提高稳定性
- 1个应用=多个微小服务
- 服务运行于独立进程
- 服务独立构建和部署
- 服务间低耦合,技术多元
传统单体架构 |
分布式服务化架构 |
|
新功能开发 |
新功能开发需要时间 |
容易开发和实现 |
部署 |
不经常且容易部署 |
经常发布,部署复杂 |
隔离性 |
故障影响范围大 |
故障影响范围小 |
系统性能 |
响应时间快,吞吐量小 |
响应时间慢,吞量大 |
系统运维 |
运维简单 |
运维复杂 |
新人上手 |
学习曲线大(应用逻辑) |
学习曲线大(架构逻辑) |
技术 |
技术单一且封闭 |
技术多样且开放 |
测试 |
简单 |
复杂 |
系统扩展性 |
扩展性很差 |
扩展性很好 |
系统管理 |
重点在于开发成本 |
重点在于服务治理和调度 |
对比
分布式系统
-
数据可用性 多复本保存
-
数据一致性 读写一致性策略
-
数据分布式 数据索引、分片
![](https://s3.amazonaws.com/media-p.slid.es/uploads/63449/images/4463498/page20image1032.jpg)
Service mesh
-
一种基础设施层,服务间的通信通过Service Mesh进行
-
一种网络代理的实现,通常与业务服务部署在一起,业务服务不感知
-
一种TCP/IP之上的网络层
![](https://s3.amazonaws.com/media-p.slid.es/uploads/63449/images/4463469/Screen_Shot_2017-12-20_at_8.06.15_PM.png)
优点
- 技术无关
- 对业务0侵入
- 快速升级成云原生服务
缺点
- 性能损失
- 部署复杂一些
- 新故障点
数据面
- 注册发现服务
- 路由策略
- 负载均衡
- 透明TLS传输
- 生成监控数据
控制面
- 服务控制
- 配置中心
- 负载均衡
- 短路
- 限流
![](https://s3.amazonaws.com/media-p.slid.es/uploads/63449/images/4463494/Screen_Shot_2017-12-20_at_8.18.15_PM.png)
自动化
- 运维
- 测试
- 持续集成、部署
- 负载均衡
- 流量分发
服务化
- 代码分层分域模块化
- 面向服务的架构SOA
- 日志监控分析
- 错误报警
- 性能监控
现代化
- https
- 前后端分离
- 技术栈升级
方向策略
- 容器道路
- 拥抱开源新技术
- 持续升级
- 量力而行
重构无止境
代码要么等不到重构的那天 要么最终要被重构
权衡成本与产出
全球架构师峰会2017
By James Deng
全球架构师峰会2017
- 373