微服务应用平台TSF的建设与实践之路-EE session-现场完整版
如果无法正常显示,请先停止浏览器的去广告插件。
1. 腾讯微服务应用平台 TSF 的建设
与实践之路
刘冠军
2. 讲师简介
请插入
您的照片
刘冠军
腾讯云微服务中心售前负责人
专家工程师
ee.msup.com.cn
3. 目录
微服务平台的挑战
微服务平台的选型
企业级微服务平台的关键技术
ee.msup.com.cn
4. 微服务的前世今生
集中式系统 分布式系统
堆栈选择一 堆栈选择二
传统 scale-up 技术堆栈 一个简化的技术堆栈视图 原生云 scale-out 技术堆栈
单体 / 瀑布式开发 应用架构 微服务 / 敏捷开发
交易类 业务形态 多元化
实时一致 数据架构 最终一致
集中式原则、不频繁 部署原则 分布式原则、频繁复杂
商用软件为主 基础架构 – SW 开源 / 商业软件
Scale-up 的硬件 为主 基础架构– HW Scale-out 的硬件 为主
需求较低 基础架构– Facilities 需求更高
需求和供给在减少 技能 需求和供给 需求和供给在增加
高额的闭源软件费用 主要成本 人力成本
闭源
SLA
ee.msup.com.cn
开源
云
资源与能力复用
云原生
过程自动化
5. 自建微服务平台的挑战
选择技术路线后,完整技术平台搭建,需要自建或开发以下功能,进行微服务平台的整体建设
持续
发布
持续
集成
项目
管理
需求
管理
ee.msup.com.cn
频率
控制
ID 生
成
Servi
ceMe
sh
读写
分离
消息
队列
分布
式缓
存
数据
库
慢查
询分
析
资源
管理
任务
调度
配置
管理
调用
权限
容灾
集群
管理
版本
管理
服务
框架
事务
管理
灰度
发布
就近
访问
跨集
群访
问
容器
调度
容错
弹性
伸缩
限流
时序
数据
库
运行
时
降级
API
网关
全链
路
Traci
ng
分布
式日
志
依赖
分析
全链
路压
测
API
治理
监控
熔断
管理
告警
6. 客户对微服务平台的期望
自建微服务的平台挑战
与云优势结合
将复杂的组件运维托管给云服务,享受微服务平台的便利
需要长期的大量研发投入、时间、资源很大,学习成本高,影响业务的发展时机。
4
新老技术结合,
统一平台难度大
按需使用的服务
复杂的服务治理
3
•
线上业务的严格要求
2
组件选择和安装部
署
1
•
多种注册发现、分布式配
置、日志、开源组件选择
•
软硬件环境适配、选型安
装部署调试、调优
ee.msup.com.cn
等
•
方便的开发接入能
安全保障
• 高可用保障
• 运维监控
• 多组件的资源的保障
、服务扩缩容
•
与调用链、容器等
集成的能力
Spring
cloud 、 Service
鉴权限流路由熔断
力
•
•
mesh 、 dubbo 等语 专注于
言技术或旧系统需要 业务自身
兼容
•
完整的商业产品
竞争对手的发展速度
持续的技术支持
7. 微服务技术系统化视角
ee.msup.com.cn
8. 微服务平台的选型(全栈 or 组合?)
全栈式
• 使用标准化
• 技术多元化
• 能力全栈化
组合式
• 组件可插拔
• 运维托管化
• 资源弹性化
ee.msup.com.cn
9. 腾讯云微服务全栈平台 TSF
TSF 兼容多微服务框,基于开源增强
能力,提供全面微服务治理、业务的
全周期管理以及性能优化和数字化运
微服务网关
维等全栈微服务能力。
API 鉴权
API 调试
API 限流
API 分组
API 监控
访问重定向
微服务框架
日志采集
日志转存储
日志检索
服务 E 服务 N
sdk/sidecar sdk/sidecar sdk/sidecar
注册中心
流控中心
日志配置
日志关联告警
日志查看
应用监控
服务 R
服务监控
配置中心
自动注册发现 服务熔断与降
级
流控与路由 动态配置
鉴权与调用安
全 监控与跟踪
资源监控
服务告警
部署组告警
JVM 监控
容器与虚机适配管理
集群管理
ee.msup.com.cn
容器管理
镜像管理
变更管理
应用部署
程序包管理
弹性伸缩
应用生命周期
管理
10. 微服务支撑组件
HTML
除了您的业务服务外,通常您还需要这几种微服务支撑组件
注册 / 治理中心
网关
观测组件
注册中心会记录服务和服务地 集中管理分散在各个微服务中 作为沟通外部客户端服务与内 通常包括:指标监控、日志、
址的映射关系,检查各微服务 的配置,确保配置与应用分离 部后端微服务的桥梁,外部请 调用链,用于观测微服务系统
的健康状况。结合注册中心提 ,提供实时更新配置的能力让 求发送到网关上后,由网关进 运行状况,及时发现业务故障
供的开发工具包,还可实现包 开发者灵活方便的管理多环境 行路由转发、负载均衡、安全 ,帮助开发运维人员快速排查
括路由、熔断、降级等业务所 、多命名空间的业务配置。 认证、数据转换等。 、消除业务故障。
需的高阶治理能力。
ee.msup.com.cn
配置中心
11. 微服务引擎 TSE (北极星)
HTML
微服务引擎提供各类微服务组
件的一站式托管服务,提供多
种常用业务支撑服务组件。
注册 / 治理中心: ZK/Eureka/ 北极星
配置中心: Apollo
网关: SCG/Zuul (建设中)
ee.msup.com.cn
12. 微服务引擎 TSE (北极星)
HTML
微服务引擎提供各类微服务组
件的一站式托管服务,提供多
种常用业务支撑服务组件。
注册 / 治理中心: ZK/Eureka/ 北极星
配置中心: Apollo
网关: SCG/Zuul (建设中)
ee.msup.com.cn
13. 企业级微服务平台关键技术 — TSF 为例
应用管理
数据化运营
服务注册发现
用户 VPC
微服务
应用
ee.msup.com.cn
用户 VPC
用户 VPC
微服务
应用
mesh 应
用
mesh 应
用
mesh 应
用
mesh 应
用
14. 海量调用的起始—微服务
ee.msup.com.cn
15. 微服务之间怎么互相发现?
Service
A(consumer)
ee.msup.com.cn
Service
B(provider)
16. 原生 Consul 的能力与限制
Consul 的一些限制
ee.msup.com.cn
多租户 隔离性
授权 namespace
17. 实现多租户
Service
Instance
Service
Instance
Service
Instance
Service
Instance
Service
Instance
如何实现多租户
• 服务注册请求被翻译成 KV
Consul-
Access
Consul-
Access
Consul-
Access
请求,存储在 Server 上
• 心跳请求被翻译成 KV 请求
,存储在 Server 上
SERVER
( FOLLOWER )
SERVER SERVER
(LEADER) (FOLLOWER)
• 服务发现请求会将服务注册
的 KV 内容和心跳 KV 内容合
并返回
ee.msup.com.cn
18. 透明地生成租户信息
Service
Instance
查询 Token 对
应的信息
Consul-
Access
• Token 对应的最大允许实例
Token
Server
数
• Token 对应的租户前缀
• Token 对应的 Namespace
• …
SERVER
SERVER
(LEADER)
SERVER
(LEADER)
(LEADER)
ee.msup.com.cn
19. 性能优化 I
Service A Instance * 100
Service A
Service A
Service A Instance * 100
Service A
subscribe service B
subscribe service C
…
Service A
Service A
Service A
subscribe service B
subscribe service C
…
Consul-Access
Consul-Access
Consul-Access
SERVER
(LEADER)
Connection count :
(subscribed service num) * service instances
num
SERVER
(LEADER)
Connection count :
(subscribed service num) * access
server num
ee.msup.com.cn
20. 性能优化后依然到了瓶颈怎么办?
Service A
Service A
Service A
Consul-Access
Consul-Access
Consul-Access
SERVER
SERVER
(LEADER)
SERVER
(LEADER)
(LEADER)
ee.msup.com.cn
SERVER
SERVER
(LEADER)
SERVER
(LEADER)
(LEADER)
SERVER
SERVER
(LEADER)
SERVER
(LEADER)
(LEADER)
21. 性能优化 II
ee.msup.com.cn
22. CP 系统如何做到高可用?
Service
Instance
服务发现
• 改为 watch 机制
• 增加本地缓存
• 零实例保护
心跳上报
SERVER
(LEADER)
ee.msup.com.cn
• 减少 timeout
• 增加重试机制
23. CP 系统如何做到高可用?
Service A
Service A
Service A
Access 层通用高可用建
设
Consul-Access
Consul-Access
Consul-Access
• 重试机制 (1/2 + 1 次 )
• 减少 timeout
• 增加兜底集群
• 集群探测 agent
服务发现
SERVER
SERVER
(LEADER)
SERVER
(LEADER)
(LEADER)
SERVER
SERVER
(LEADER)
SERVER
(LEADER)
(LEADER)
SERVER
SERVER
(LEADER)
SERVER
(LEADER)
(LEADER)
兜底集群
ee.msup.com.cn
• 异常保护
• 零实例保护
24. 微服务之间如何互相调用?
API 调用
Feign
Ribbon
Http Client
Service
Instance
ee.msup.com.cn
Service
Instance
Service
Instance
Service
Instance
Subscri
be
Instance
List
Consul
Cluster
Consul
Consul
Consul
25. 基于开源我们还能多做些什么?
Fallba
ck
API 调用
Feign
Hystrix
Command
Retry
&
Timeo
ut
Ribbon
Http Client
Service
Instance
ee.msup.com.cn
Service
Instance
Service
Instance
Service
Instance
Subscri
be
Instance
List
Consul
Cluster
Consul
Consul
Consul
26. 更细粒度的降级
Http Client
Ribbon
Http Client
Service
Instance
Service
Instance
Service
Instance
记录请求状态
剔除不可用实例
• 成功失败
• 响应时间
Resilience4j
State
Machin
e
ee.msup.com.cn
获取可用实例列表
27. 更细粒度的降级
Http Client
Ribbon
Http Client
Service
Instance
Service
Instance
Service
Instance
记录请求状态
剔除不可用实例
• 成功失败
• 响应时间
Resilience4j
State
Machin
e
ee.msup.com.cn
获取可用实例列表
28. 如何升级应用?
优雅下线
优雅发布
Consul
Cluster Consul
Cluster
Consul
Consul
Consul Consul
Consul
Consul
•
Readiness
probe
•
检测该实例 ID 是
否注册到 Consul
上
Service
Instance
ee.msup.com.cn
Service
Instance
Service
Instance
•
将状态置为
ready
Service
Instance
Service
Instance
Service
Instance
29. 构建能支撑海量调用的微服务系统需要哪些组件?
ee.msup.com.cn
30. TSF 认证资质及落地客户
ee.msup.com.cn
31. 关注 msup 公众号
获取更多工程效能实践案例