概述
服务治理的历史变迁:
第一代:以IBM为首的SOA解决方案提供商退出的针对企业IT系统的服务治理框架,主要聚焦在对企业IT系统中异构服务的质量管理、服务发布审批流程和服务建模、开发测试以及运行生命全周期的管理
第二代:以阿里为首的基于同一分布式框架的全新服务治理理念诞生,聚焦于对内部同构服务的线上治理,保障线上服务的运行质量
微服务架构+云端服务治理2013年至今,随着云计算和微服务架构的发展,以AWS为首的基于微服务架构+云服务化的云端服务治理体系诞生
传统的SOA主要包括:
1)服务建模:验证功能需求和业务需求,发现和评估当前服务,服务建模和性能需求,开发治理规划
2)服务组装:创建服务更新计划,创建和修改服务以满足业务需求,按照一定策略评估服务,批准组装完成
3)服务部署:确保服务的质量,措施包括性能测试,功能测试和满足度测试,批准服务部署
4)服务治理:早整个生命周期内管理和监控服务,跟踪服务注册表中的服务,根据服务治理等级协议(SLA)上报服务的性能KPI数据进行服务质量管理
缺点:
1)分布式服务框架的发展,内部服务框架需要统一,服务治理也需要适应新的架构,能够由表及里对服务进行细粒度的控制
2)微服务架构的发展和业务规模的扩大,导致服务规模量变引起质变,服务治理的特点和难度也随之发生变化
3)缺少服务运行时动态治理的能力,面对突发的流量高峰和业务冲击,传统的服务治理在响应速度,恢复故障等方面存在不足,无法敏捷的应对业务需求
分布式服务框架的服务治理:
是面对互联网业务的服务治理,聚焦在对内部采用统一服务框架进行服务化的业务运行太、细粒度的敏捷治理体系
治理对象:基于分布式服务框架开发的业务服务,与协议本身无关,治理的可以是SOA服务,也可以是基于内部服务框架私有协议开发的各种服务
治理策略:针对互联网业务的特点,eg 突发的流量高峰、网络延时、机房故障等,重点针对大规模跨机房的海量服务进行运行态治理,保障线上服务的高SLA,满足用户的体验,常用的策略包括限流降级、服务嵌入迁出、服务动态路由和灰度发布等
AWS云端微服务治理:AWS作为全球最大的云计算解决方案提供商,在微服务云化开发和治理方面提供了非常多的经验,eg:
1)全公司统一服务开发环境,统一简化服务框架(Coral Service),统一运行平台,快速高效开发
2)服务后端应用服务化,系统由多想服务化组件构成
3)服务共享、原子化、重用
4)服务由小研发团队负责服务开发测试部署和治理,运维整个生命周期支撑
5)高度自动化和Dev&Ops支持,一键部署和回退
6)超大规模支持:后台几十万个服务,成千上万个开发者同时使用,平均每秒有1~2个服务治理
7)尝试基于Docker的容器部署微服务
8)服务治理的核心是:服务性能KPI统计、告警、服务健康管理、灵活的弹性伸缩策略、故障自动迁移、服务限流和服务降级等多种治理手段,保障服务高质量运行
应用服务化之后面临的挑战:
1)跨团队协作问题:服务变多之后一般会分小组开发,涉及跨团队联调,如何快速找到开发者 ? 当前系统提供了那些服务,服务接口定义和参数是什么?服务使用示例,注意事项和约束是什么?开发完成之后调试,消费者A和服务提供者S进行联调会存在2个问题:a. 提供者S分布式部署,存在多个服务实例,路由动态分发,没办法确定会路由到哪一台服务器 b.若打断点,其它的消费者可能也正在使用,调试会被干扰,需要通知所有的开发者不要调用服务S,有点儿不太现实
2)服务的上下线管控:由于服务的发布很简单,上线会越来越随意,导致有时候架构师都不知道上线了什么服务,甚至出现重复服务,而服务下线比上线还要困难,因为业务调整,需要 结束某些服务的生命周期,服务提供者有时会直接将服务下线,导致依赖该服务的应用不能正常工作,应该是先将该服务标识为过时,然后通知调用方尽快修改调用,通过性能KPI接口和调用链分析,确认没有消费者再停用服务
服务安全:针对内部应用,服务框架常采用长连接管理客户端连接,针对非信任的第三方应用,或者而已消费者,需要具备黑白名单访问机制,防止客户端非法链路过多,占用大量的句柄,线程和缓存资源,影响服务提供者的质量
服务高SLA保障:业务高峰期,系统资源会成为瓶颈,需要对非核心服务 eg 用户评论、粉丝管理、积分管理等服务做限制,保障核心服务的正常运行,服务框架需要考虑如何关停非核心服务又不影响其它的合设服务
快速定位故障:服务化之后一个业务流程底层可能涉及成千上百的服务调用,任何一个服务发生故障都可能导致业务不可用,由于分布式部署,部署在成千上百台机器上,若仍使用原来的故障定位手段效率会非常低,服务化带来的价值也会大打折扣
服务治理非目标:
1)防止业务架构腐化:通过服务注册中心对服务强弱依赖进行分析,结合运行时服务调用链条分析,梳理不合理的依赖和调用路径,优化服务架构,防止代码腐化
2)快速故障定界:通过Flume等分布式日志采集框架,实时收集调用链日志,服务性能KPI数据,服务接口日志,运行日志等,实时汇总和在线分析,集中存储和展示,实现故障的自动发现,自动分析和在线条件检索,方便运维和开发人员进行快速问题定位
3)服务微管控:较细粒度的进行运行期服务治理,包括限流降级,服务迁入迁出、服务超时控制、智能路由, 统一配置、优先级调度和流量迁移等,提供方法级治理和动态生效功能,通过一系列的细粒度的治理策略,在故障发生时可以多管齐下,在线调整,快速回复业务
4)服务生命周期管理:包括服务的上线审批、下线通知,服务的在线升级以及上下线的服务文档库的建设
常见的服务治理:
服务降级、服务流控、服务动态扩展、超时控制、优先级调度、负载均衡策略调整、分组调整、等
最后
以上就是难过香菇为你收集整理的分布式服务框架的服务治理的全部内容,希望文章能够帮你解决分布式服务框架的服务治理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复