架构设计文章读后感14
欢迎关注个人博客喜欢二福的沧月君的个人博客 所读文章均来自www.infoq.cn
微服务模式服务节点数量服务分层离散组织协同扁平化管理模式服务治理广度深度达到前所未有程度,依靠微服务框架层面治理远远不够需要构建贯穿研发测试运维管理领域深度治理体系,整理弘基金余额宝移动平台技术总监兼首席架构师李鑫qcon全球软件开发大会北京站演讲微服务治理实践经验感悟全面介绍构建完备微服务治理指标体系治理模型自动化线上线一体度量管控能力构建综合解决微服务生命周期现实治理需求,下载完整版ppt,qcon10周年大会做题为微服务架构体系深度治理分享ppt演讲文稿整理出来希望能够微服务治理迷局夺路狂奔同学启发指引,。
分享介绍服务治理发展历史阶段,重点介绍微服务度量分析体系构建,微服务线线下体系治理进行深入探讨,治理词汉语词典整治修整意思,。
事物复杂度达到程度时可能出现问题需要问题进行梳理改进优化,事物治理本质事物复杂度管理,服务治理服务复杂度膨胀问题管控管理,单体应用治理需求,。
业务发展早期机器扛住线用户访问功能模块整合单体应用独立部署企业应用,时期没有服务化概念谈不上服务治理,系统复杂度来自系统组件调用依赖关系企业会维护组件库力图搭积木方式构建应用系统,组件存在版本依赖性方面问题需要进行组件治理单体应用治理方面需求,。
从事企业级应用开发做一段时间组件治理组件库构建维护比较复杂方法论体系,企业级soa治理,企业建设不断深入系统越建越系统互联互通整合需求,实现系统整合早期业界尝试技术点对点模式rmicobardcom中间件技术搞星形连接模式效果不太好没办法彻底解决标准化问题,。
后来ibm联合大厂推出面向服务架构soa制定标准,soa核心诉求构建企业服务总线esb,sca规范开发服务适配器异构系统接入服务总线sdo标准进行请求数据封装服务webservice协议进行调用bpel流程标准服务进行流程化编排创建出来服务uddi协议暴露供应用服务调用,涉及软硬件资源治理需求应运而生,。
事实上服务治理概念soa技术兴起提出,时期服务治理规范基本上ibm传统大厂把持ibmsoagovernancemanagementmethodsgmm标准,知道ibm做事特点喜欢事情复杂化sgmm标准全面覆盖企业管理流程工具基础设施建设企业组织架构定义人员角色规范做事流程,掏钱做咨询才能体系玩起来技术流程太重人要求,。
制约推广普及思想重视各个环节指标采集度量重视生命周期治理有益启发参考,互联网服务化治理,伴随互联网应用爆发兴起互联网企业轻量化soa技术浪潮说分布式服务化技术,阶段服务化目标解决系统整合问题解决系统可伸缩性问题,。
大量互联网公司系统进行服务化改造获得横向扩充能力应对快速增长业务访问量,使用技术五花八门使用代理网关模式采用rpc方式技术没有统一标准涌现出了像dubbo明星产品,时期服务治理聚焦服务线生命周期管控治理包括服务限流降级服务弹性伸缩灰度发布线下治理基本上涉及,知道业务服务节点涉及大量服务节点人肉方式肯定过来服务治理强调自动化自动化运维技术结合,。
微服务治理,互联网发展今天成基础资源业务搬到线线竞争,互联网企业生存去竞争去打仗,适应业务发展技术迭代武功不破,。
服务化实现手段,大量通用功能下沉服务服务进行拆分业务形态组装出应用服务组装聚合方式实现开发速度变得,服务拆得服务粒度组装性,才能业务需求利用大量服务构建出业务应用支持业务试错,。
近几年容器技术发展服务封装部署成本越来越低,服务拆成微服务业务发展平台规模,平台微服务成时代典型技术特征,量变导致质变开发模式测试模式运维模式会受到冲击,。
有意思业务发展决定会走上微服务路康威定律组织架构管理策略研发模式做出相应调整才能保证微服务架构落地,阶段服务治理局限于线治理延伸线下领域实现线上线一体化立体化治理,面对环境实现治理自动化实现治理智能化大量算法利用服务质量服务关系洞察服务管控才能应对层出不穷问题,微服务治理整体架构三位一体体系,。
给出微服务治理整体架构图微服务治理进行线治理进行线下治理线上线维度进行治理指标采集汇总数据仓库进行统一度量分析,度量指标线性能指标会转化运维事件触发预先设置阈值会转化成管控指令调度中心下发进行服务弹性伸缩扩容缩容操作进行服务限流降级路由调整管控操作,度量指标包括架构开发测试运维过程协作效率指标会治理委员会泛指治理成员集合进行人为深入分析制定出治理决策治理决策会相关管理措施进行落地,服务度量管控管理举措构建三位一体围绕服务治理闭环体系,。
介绍看到微服务治理体系微服务度量进行微服务管理管控前提基础看得到才能得到接下来重点介绍构建微服务度量分析体系,管理学大师德鲁克说不能度量无法改进强调度量重要性,微服务生命周期度量指标采集,度量度量指标采集,。
介绍微服务治理囊括线线下体系服务治理度量指标采集线上线同步进行,服务注册中心获取服务注册信息服务管控指令信息微服务节点日志应用服务日志apm监控调用链日志获取相关性能指标信息,线下指标需求管理系统采集userstory需求基本信息,项目管理系统采集开发人员开发团队开发任务基础信息,。
测试相关管理系统采集测试用例测试bug相关定义信息过程指标信息,源码仓库软件版本仓库采集研发产出基本信息,软件研发强调协同群体行为产品开发测试运维需要合作,达到配合会采用协作模式开发测试配合会采用持续集成ci,。
产品开发测试协作会采用协作模式,可能会使用devopspipeline,采用协作模式相关过程管理系统抽取出相关过程指标事件任务完成设计进入开发完成开发,治理度量指标,。
线上线指标统一汇总数据仓库进行深度度量分析,介绍指标足够,感觉,代码理解代码,。
知道大家使用源代码源代码仓库,做做codereview,静态代码扫描工具扫扫代码质量,做,。
管理只能做到过程优化规范化管理去提升软件架构设计质量代码质量研发人员能力要求息息相关需要进行训练,负责构建微服务治理体系发现架构质量研发质量进行深度度量治理无论如何绕源代码说,软件研发协作性智力行为研发过程需求人员设计人员研发人员需要进行协同配合人思考意图策略会体现代码,说系统代码书读懂书知道系统前世今生,。
问题读懂书相信大家负责系统源代码熟悉能否做到服务集群服务源代码熟悉,可能读懂书人力不行需要借助自动化手段,思考开发源码仓库工程源码进行统一扫描工具,核心eclipse负责源码解析ast组件abstractsyntaxtree中文抽象语法树ast获取源码工程java源码文件调用外部类继承实现接口父类变量集合方法集合方法逻辑嵌套注释基本信息基本信息代码逐行扫描正则匹配获取方法方法调用关系汇总构建出跨工程方法调用关系矩阵微服务调用关系调用矩阵子集,。
调用关系矩阵动态调用链路跟踪获取调用链路类似名字静态调用链路,静态调用链代码逻辑关系基础进行深度架构关系代码质量梳理介绍中会讨论,微服务度量分析体系,度量指标包括重点介绍代码静态调用链路矩阵看看微服务治理度量分析体系样子,。
下往看指标来源渠道获取度量指标ods操作数据格式汇总数据仓库,数据模型抽取出主数据mdm数据包括服务需求任务人员团队此基础数据主题topic构建数据集市数据主题包括性能资源调用关系容量系统测试开发运维协同效率,数据集市基础进行数据分析包括性能分析容量分析分析团队个人质量报告质量趋势动态调用静态调用深度梳理维度汇总报表,分析报告治理委员会进行深度分析制定出治理决策人为自动化机制发出管控指令,。
治理决策管控指令微服务度量分析体系产出,治理决策管控指令微服务线线下体系进行治理线体系进行治理,服务限流,服务限流微服务集群保护机制线调用资源占用服务加上相应限流举措构建单机限流集群限流限流措施,。
单机限流限流算法供选择漏桶算法算法,区别,打个比方酒吧保安限制客流举措酒吧出来客人放进去客人保证酒吧客人总数人人座位漏桶算法出去才能进来,举措有没有客人出去保安每隔放客人进去春运火车站波段限流类似保证客流策略风险离开客人不够酒吧客人总数可能会升高导致客人没有座位算法,。
线并发总数进行限定漏桶算法可能会单机限流机制,接下来看看集群限流集群限流情况微服务节点计数器单位时间调用进行计数计数值会定期汇总日志中心统计分析器进行统一汇总算出时间总调用量集群限流分析器会拿到调用量预先定义限流阈值进行计算出限流比例限流比例会服务注册中心下发服务节点服务节点限流比例会算出当前节点对应限流阈值利用单机限流进行流控,看到环环相扣环节协作配合技术体系,拎出实现技术麻烦构建贯穿技术技术体系需要统一技术标准各个环节需要遵循标准不符合标准应用推动进行改造才能保证标准落地标准才能推动环节改造构建限流技术体系构建服务限流能力在于标准化在于体系化,。
限流原则限流动作前置限制流量注定抛弃处理免得无谓消耗资源,集群,接下来看看集群集群微服务集群可用保障策略供选择包括,失败failfast,。
失败转移failover,失败重试failback,聚合调用forking,广播调用broadcast,。
集群策略注意重试次数线负载重试次数会推高服务调用负载并发会导致服务调用调用延时增长双重因素叠加可能导致服务雪崩导致集群击穿,使用集群设置重试次数,服务降级,服务降级服务限流类似微服务集群保护机制动用服务降级手段线生死存亡留给思考反应时间使用服务降级做好预案提前梳理出核心业务链路业务链路降级开关一键部分链路降级才能救命,。
服务降级手段使用包括,降级,静态返回值降级,mock降级,。
备用服务降级,说熔断本质降级策略降级提供策略支持降级降级模式,构建服务降级能力限流机制类似需要坚持标准化体系化,故障定界定位,。
线故障定界定位应该做事情,分布式环境故障定界定位工具动态调用链路跟踪应该没有疑义使用开源zipkinskywalkingpinpointcat使用商用听云appdynamicnewrelic,调用链本质日志常规日志重视日志关系,请求发起调用链会赋予跟踪traceid跟踪会请求穿越网络节点日志落盘日志收集traceid日志做聚合找到关联日志顺序排序构建出请求跨网络调用链详细描述请求生命周期状况,。
动态调用要用需要监控大盘相结合,介绍使用经验构建动态调用链跟踪体系监控大盘进入调用链,单位时间段内服务topn排序列表点击列表服务会打开服务时间段内列表点击列表会打开调用链进行故障分析,利用监控大盘监控大盘毛刺系统点击毛刺会毛刺时间段请求散点形式列出可能会请求数量做抽样散点颜色代表状态失败,。
点击散点进入请求对应调用链,核心服务专门监控表格会列出发生核心链路服务点击进入对应调用链,动态调用链进行线故障定界定位模式,容量规划,。
线流量今天涨明天涨麻痹大意说不定服务冲垮流量时时进行规划做到心里有数,容量规划形式容量预估性能压测,系统服务上线进行容量预估做法经验结合业务前景预期估算出调用量pv可能会流量落购物车服务购物车服务pv购物车访问会产生数据库调用关联数据库会调用量图层层分解获取服务节点摊到访问量结合运维部门单机容量指标估算出集群需要软硬件资源,系统服务上线性能处于劣化状态上线预估指标会不准需要线性能压测容量进行监控,。
做线性能压测遵循规律说上来做全链路压测,图调用关系线性能压测需要调用末梢数据库缓存进行压测保证瓶颈调用数据库缓存上节点进行压测压测覆盖链路实现链路压测,链路压测前提单点压测需要单点压测能力做好才能做全链路压测,压测流量模拟数据伪造做好隔离各种各样隔离数据隔离个人建议染色压测数据线业务数据表存储染色数据表进行存储分表策略进行区隔,。
性能规划包含容量预估性能压测能力,微服务关联资源治理,线资源服务进行调用服务资源调用日志分析资源使用状况性能状况,数据库汇总数据库访问服务调用日志统计知道数据库整体调用状况数据库中表调用分布状况表调用状况包括写入数据删除数据修改数据查询调用延时统一汇总推算出表查询操作整体表现相关查询,。
分布式缓存汇总读写操作计算出读写比例调用是否null是否汇总出命中率缓存表现应该读写少推算出读写比例读写命中率偏低说明缓存使用策略问题需要进行改进,消息队列类似调用日志计算出单位时间内写入消息量消费消息量推算出消息队列当前堆积情况,调用日志获取资源使用性能状况资源监控获取相关指标会客观代表应用服务感受,数据库访问请求需要服务数据库连接池穿越网络到达数据库环节出现问题会影响调用效果,。
服务调用日志资源使用状况进行优化,运维问题资源分出去收回来知道资源是否使用结合服务侧调用日志监控做资源使用判定解决问题比如说调用日志发现namespace缓存没有调用考虑namespace缓存资源释放,微服务线生命周期管理,目前微服务线生命周期管控能力蚂蚁金融云能力构建蚂蚁金融业云弹性计算资源基础整合资源编排资源调度能力构建微服务综合管控平台平台进行服务上线下线扩容缩容操作,。
微服务线体系治理能力微服务通用能力微服务框架具备重点介绍使用经验心得,接下来讨论硬核内容看看微服务线下体系治理,微服务整体架构治理,看微服务整体架构治理,。
看图图线服务集群服务调用关系总图图动态调用汇总获取目前公司干,介绍静态调用链调用矩阵获得图静态调用矩阵子集静态调用链获取图调用关系会动态调用微服务整体调用关系微服务调用质量进行深入分析,服务分层服务调用关系分层层层推进形成无环图dag,调用关系图进行闭环检测检测图回环调用说明调用关系问题需要进行优化回环调用现在无感难保未来会旁路逻辑导致死循环,。
调用网络进行遍历计算找出调用深度调用链图红色标注出来调用链知道跨网络调用访问涉及网络节点稳定性调用链路链路找出来调用深度进行topn排序重点排在头部调用链分析必要性合理性看是否调用深度进行缩减优化,找出网络调用服务节点图节点调用关系依赖节点节点枢纽节点运维需要重点保障,实际应用会加上调用量权重综合判定服务节点重要性,架构演讲可能服务节点不会调用关系图绿色节点节点不会去调用服务节点服务节点不会调用,。
找出来节点考虑进行下线处理释放资源,度量治理调用关系图基础进行算法图计算图论算法包括bfsdfspagerank大家嫌麻烦找图数据库neo4j算法集成基本查询能力,微服务架构治理,微服务称为微承载业务架构做到自洽内敛也就是说设计遵循迪法则尽量少系统服务发生交互,。
调用微服务调用关系进行梳理分析调用关系比如说页面图所示调用系统服务可能调用服务分析承载业务是否是否不够是否需要进行拆分拆成服务,具有动态调用静态调用链调用链进行叠加页面下图所示红色部分动态调用链覆盖逻辑红色部分没有触发代码调用逻辑触发逻辑处理逻辑旁路逻辑可能可能版本兼容代码,比如说线app版本版本下线后台服务版本兼容代码成代码需要进行,动态调用静态调用叠加定期找出代码进行保证微服务体量不会膨胀,。
微服务开发质量度量治理,代码质量管理常规做法代码codereview会使用checkstylefindbugsjtest静态代码扫描工具做代码缺陷扫描,做深入介绍自定义代码扫描技术结合代码调用关系做到跨类跨方法调用缺陷进行扫描跨方法循环嵌套缺陷常规代码扫描工具扫出来,代码质量结合线bug种类数量综合评估开发人员开发质量代码人写bug人制造出来结合开发人员开发代码质量产出产生类型数量开发人员开发质量进行综合度量,。
实际会结合指标指标,核心指标生成研发人员开发质量综合评估报告,汇总个人质量综合评估报告获得团队开发质量综合评估报告报告本质个人团队研发质量画像个人团队kpi考核参考,此基础报告变化趋势时间纵比促使开发人员开发团队进行开发质量改进开发技能提升,。
微服务架构测试治理,微服务架构测试治理核心诉求提高测试覆盖度说提高需求覆盖度代码覆盖度页面覆盖度,降低测试用例维护成本,讨论测试覆盖度,。
看需求覆盖度服务维度需求测试用例进行关联找出需求下所对应单元测试用例自动化测试用例手工测试用例此基础开发迭代周期指标进行时间维度纵比得出需求覆盖度变化趋势,代码覆盖度工具帮做contestjacoco工具赘述,页面覆盖度集成测试调用页面日志形式记录下来日志聚合分析结合工程源码扫描两厢统计出页面没有覆盖,测试用例维护成本分新增用例维护成本度量,。
麻烦存量测试用例变更度量采用相似匹配算法出存量测试用例版本代码相似换算成变更,测试指标度量治理实现测试工作整体降本增效,调测能力构建,服务化过程研发痛点调试,。
单体应用服务拆分团队部署服务器服务接口,做调试做p2p需要搭建开发版本集群成本,做mock采用传统mock手段写mock语句mockito写,thenreturn,。
语句耦合度高,利用分布式服务框架提供过滤器机制开发mock过滤器mock数据文件定义mock服务名称入参及出参,请求过来服务入参mock数据定义进行吻合mock数据文件出参反序列化服务调用返回远程调用后续操作终止,mock数据模拟远程服务,。
方式构建服务mock能力需要写mock代码过程业务逻辑毫无感知mock能力下沉底层服务框架,降低制作mock文件成本服务框架过滤器机制开发数据抓取过滤器指定服务请求入参返回抓取下来写成mock数据文件,抓取方式获得mock数据文件往往数据质量反映业务场景,问题线数据抓取行为公司干会做好数据脱敏处理工作,。
目前测试环境进行数据抓取操作,策略改善服务化架构团队开发效率团队规模效果,微服务架构团队协同,微服务架构服务分散团队业务会涉及团队协同配合团队团队协作,。
说康威定律组织协作模式架构相匹配做尝试综合效果模式会适合微服务架构团队协同,目前采用迭代发版模式迭代采用火车发布模式实行班车制准点发车这样的话协作部门知道发布计划产品方面知道需求放入迭代,能够减轻部门沟通成本,工作量评估会预留工作量buffer应对需求需求受版本约束需发布,。
迭代周期内没有需求会backlog中捞架构优化需求填补buffer,迭代周期需要严控迭代风险可控因素迭代可控ui设计,ui设计过程感性因素会可能会反复修改程序代码,ui设计纳入迭代需求迭代工作量评估要求提供ui物料不予评估工作量需求不会纳入迭代,。
微服务架构团队协同质量度量治理,团队协同效率需要进行度量治理,使用迭代协作例采用数据驱动精益看方法持续采集迭代阶段过程指标事件任务完成设计进入开发开发结束进入测试,过程指标汇总会基础制作出精益看板典型报表,。
韦伯分布图,累积流图,价值流图,控制图,。
报表需求流动效率进行持续评估看研发管道是否堆积,是否阻塞,进行干预治理注意评估协同效率研发资源利用率研发资源利用率度量指标报表,迭代持续进行精益看板数据分析度量治理策略进行改进优化研发协同,。
强调指标采集多维分析度量直至分析报表生成可能做成自动化方式一键生成人肉方式无法完成采集制作任务无法保证时效性,强调自动化智能化治理,分享内容介绍服务治理发展阶段治理需求特点给出微服务治理整体架构,重点介绍微服务度量分析体系构建微服务管控管理前提基础,。
微服务线线下体系治理做深入讨论,作者简介,天弘基金移动平台部任技术总监兼负责天弘移动直销平台整体技术架构技术团队管理,在此之前华为中间件技术团队技术专家华为软件云计算产品规划设计构建落地工作包括apaasaspaas服务治理平台分布式服务调测框架产品,。
当当网运作产品中心做技术负责人负责电商后台仓储物流客服系统重构优化技术管理工作,个人从业并行计算分布式服务治理中间件云化服务化paasapm监控基础开发平台数据集成领域技术积累大家领域.