1、微服务架构体系的深度治理天弘基金(余额宝)目录 服务治理发展简史单体应用企业级SOA互联网服务化微服务 微服务度量 微服务线上体系治理 微服务线下体系治理治理问题梳理改进优化复杂度服务治理发展简史单体应用没有服务的概念,所以谈不上“服务治理”,复杂度来自于自身内部组件,由于组件化的管理需要,衍生出“组件治理”的需求。服务治理发展简史企业级SOA 主要解决已有系统的整合(互联互通)问题 技术实现及流程繁琐复杂、治理成本高 覆盖面广、涵盖企业IT各方面,和IT治理重叠度高 传统IT大厂(IBM、Oracle)把持标准 手工治理比重大、自动化程度不足SOA服务治理服务治理发展简史互联网服务化 伴随业
2、务拆分应运而生 主要解决业务的快速响应及系统复杂性扩散问题 实现形式五花八门,有标杆、但没有统一标准 聚焦线上服务的生命周期治理 强调自动化CacheDBNFS/DFSLoad Balancerwebsitewebsitewebsiteserverserverserverserver服务治理发展简史微服务 大平台、微服务 和容器技术紧密结合 量变导致质变,不仅仅是服务化架构的延伸组织架构、管理策略、研发模式、测试、运维等领域都要做出相应的调整,以为微服务架构的落地创造合适的“土壤”。线上线下一体、全生命周期的立体化治理 强调自动化、智能化“任何组织在设计一套任何组织在设计一套系统时系统时,所交
3、付的设计方案在结所交付的设计方案在结构上都与该组织的沟通结构保持一致构上都与该组织的沟通结构保持一致。”康威定律服务治理发展简史微服务治理整体架构:三位一体线下线上度量管控管理目录 服务治理发展简史 微服务度量全生命周期度量指标获取度量及分析体系 微服务线上体系治理 微服务线下体系治理如果你不能度量它,你就无法改进它 彼得.德鲁克微服务度量全生命周期度量指标获取产品 UserStory 需求开发 人员 团队 任务 产出物测试 测试用例 Bug/缺陷运维 调用量 调用延时 系统异常 业务异常 运维事件持续集成敏捷DevOps持续交付协同管理过程过程事件线下需求管理系统项目管理系统测试用例管理系统
4、缺陷管理系统CI/CD流水线运维流程管理平台软件版本仓库源码仓库 线上服务注册中心主机日志应用/服务日志APM监控 是不是少了点什么?微服务度量用代码来“理解”代码业务需求产品设计架构设计软件研发是一项协作性的智力行为,所有的思考、意图、策略最终都体现在了代码上。因此,一个系统的代码就是一本“书”,读懂它,我们就能知道系统的“前世今生”。问题是,我们如何“读懂”这本“书”?入口关系继承实现代码关系链路关系一切源于源代码微服务度量微服务治理度量及分析体系目录 服务治理发展简史 微服务度量 微服务线上体系治理服务限流集群容错服务降级、熔断故障定界定位容量规划资源治理线上生命周期管理 微服务线下体系
5、治理微服务线上体系治理服务限流接口调用路由寻址协议编码远程通信服务调用实例定位协议解码远程通信序列化流控模式1流控模式2流控模式3限流算法选择策略:漏桶算法 令牌桶算法限流难点:标准化 体系化限流原则:限流前置单机限流集群限流微服务线上体系治理集群容错微服务线上体系治理服务降级、熔断关闭打开半开失败达到开关阈值失败低于开关阈值熔断器时间窗结束失败成功成功创建Command熔断器开启?线程池拒绝?执行执行失败?执行超时?执行FallbackFallback成功?获取结果是,返回fallback否,抛出异常否是是是是否否Metrics否,返回结果 标准化 体系化 预案化微服务线上体系治理故障定界定
6、位故障点异常排序大盘异常明细大盘异常明细列表请求调用链性能大盘访问散点图1:异常排查2:异常排查3:性能排查微服务线上体系治理容量规划 容量预估 基于“依赖”关系逐层推进的性能压测 性能压测数据的准备及区隔微服务线上体系治理资源治理 从服务的视角看资源 基于应用视角的数据库(DB)性能及容量优化(慢查询、高频调用、)基于应用视角的缓存(Cache)性能优化(读写比例、命中率)基于应用视角的消息队列(MQ)性能优化(生产、消费、堆积)基于应用视角的其它资源性能(或容量)优化(XX指标、YY指标、)A服务B服务C服务D