《基于运维数据分析的云原生软件架构评估-彭鑫.pdf》由会员分享,可在线阅读,更多相关《基于运维数据分析的云原生软件架构评估-彭鑫.pdf(20页珍藏版)》请在三个皮匠报告上搜索。
1、基于运维数据分析的云原生软件架构评估彭鑫复旦大学 云原生(云原生(CloudCloud NativeNative)软件)软件据据IDCIDC预测,到预测,到20222022年,年,90%90%的应的应用程序将采用微服务架构;用程序将采用微服务架构;35%35%的产的产品应用将是云原生的品应用将是云原生的云原生:应用的设计、实现及部署运行方式充分适应云计算平台的特点(如分布式、弹性伸缩)微服务:物理隔离,轻量级分布式通信,独立部署、独立更新、独立伸缩 DevOps:开发运维一体化,持续集成与自动化发布 持续交付:频繁发布、快速交付、快速反馈、快速试错 容器化:服务无差别封装在容器中,运维无需关心
2、服务技术栈软件生态系统软件生态系统苹果生态系统苹果生态系统安卓生态系统安卓生态系统应用共享并依赖于平台及开发框架应用间可互联互通应用持续增长并自主演化特点:技术依赖、离线演化特点:技术依赖、离线演化支持定制化开发的支持定制化开发的软件产品线软件产品线云原生软件生态系统云原生软件生态系统ServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceService服务独立开发、部署、演化服务持续交付与更新新的业务和特性不断生长特点:持续运转、在线演化特点:持续运转、
3、在线演化云原生软件架构治理问题云原生软件架构治理问题ServiceServiceServiceServiceServiceServiceServiceServiceService脆弱的长调用链路脆弱的长调用链路随着服务的不断增加和调整,云原生软件架构可能会不断退化云原生软件架构可能会不断退化缺少整体规划的系统生态性演化是一个主要原因(只见树木只见树木、不见森林不见森林)服务内聚弱、服务内聚弱、职责不单一职责不单一服务调用环路服务调用环路业务和技术层次业务和技术层次不清晰不清晰服务间耦合强,服务间耦合强,边界不清晰边界不清晰能力地图不清晰,能力地图不清晰,存在重复服务存在重复服务传统的软件架构分
4、析技术传统的软件架构分析技术代码静态分析代码静态分析代码动态分析代码动态分析代码演化历史分析代码演化历史分析通过各种程序分析及文本分析手段揭示并分析模块与文件间依赖关系与概念关联,分析成本低,使用广泛通过程序插桩获取软件运行时信息,从而揭示不同软件模块或对象之间的交互关系,分析成本高,使用较少基于版本库演化历史分析获取不同文件的修改和演化历史,揭示文件间的演化关联,分析成本低,有一定使用云原生软件架构分析的挑战云原生软件架构分析的挑战运行环境复杂多变运行环境配置及相互影响复杂多变,难以掌控和模拟系统行为高度动态服务和系统行为受到部署和运维配置及运行环境影响,具有高度的动态性服务独立开发和部署服
5、务成为基本开发和运行单元,代码及演化历史分析只能应用于服务内部分析自主生长、独立演化大量内部及第三方团队参与,演化过程难以通过自顶向下的方式进行集中控制,涉及大量不同部门、协调困难01020403开发开发运维运维云原生软件架构分析的机遇云原生软件架构分析的机遇可观察性可观察性运行日志运行日志调用链路调用链路指标度量指标度量显式显式的软件体系结构外化外化的交互行为系统持续在线在线运行完善的基础设施基础设施支持Peter Bourgon.Metrics,tracing,and logging.https:/peter.bourgon.org/blog/2017/02/21/metrics-trac
6、ing-and-logging.html 分布式服务调用链路(分布式服务调用链路(TraceTrace)TraceTrace拓扑结构拓扑结构TraceTrace的时间线表示的时间线表示Span LogSpan LogTraceTrace处理与分析流水线处理与分析流水线Bowen Li,Xin Peng,Qilin Xiang,Hanzhang Wang,Tao Xie,Jun Sun,Xuanzhe Liu:Enjoy your observability:an industrial survey of microservice tracing and analysis.Empir.Softw
7、.Eng.27(1):25(2022)类比:城市运行数字体征系统类比:城市运行数字体征系统对城市生命体生命体进行“24小时365天”的“全时智慧体检全时智慧体检”。相较于传统的静态城市运行体征,即将上线的上海城市运行数字体征系统是“活活”的,以“实实时、鲜活时、鲜活”的多维、多源、多态多维、多源、多态数据为基础通过数字体征数字体征来呈现城市正在发生什么、需要关注和处置什么更好地研判城市运行的趋势和规律趋势和规律,及时发现潜在的风险风险,助推城市管理,将被动处置变为“治未病治未病”解放日报:上海城市运行数字体征系统将上线http:/ 基于可观测性数据的微服务系统分析基于可观测性数据的微服务系统分
8、析ServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceService故障诊断故障诊断业务理解业务理解架构分析架构分析运行时调用链路聚合分析运行时调用链路聚合分析Xiaofeng Guo,Xin Peng,Hanzhang Wang,Wanxue Li,Huai Jiang,Dan Ding,Tao Xie,Liangfei Su:Graph-based trace analysis for microservice architecture under
9、standing and problem diagnosis.ESEC/SIGSOFT FSE 2020(Industry Track).业务流分析示例业务流分析概念模型执行轨迹执行轨迹执行路径执行路径业务流业务流按轨迹拓扑结构聚合按途径的关键服务聚合基于调用链路聚合的业务架构可视化分析基于调用链路聚合的业务架构可视化分析基于海量轨迹聚合的业务流分析流水线Xiaofeng Guo,Xin Peng,Hanzhang Wang,Wanxue Li,Huai Jiang,Dan Ding,Tao Xie,Liangfei Su:Graph-based trace analysis for micr
10、oservice architecture understanding and problem diagnosis.ESEC/SIGSOFT FSE 2020(Industry Track).业务架构业务架构可视化可视化业务架构业务架构变化对比分析变化对比分析云原生软件架构分析:从开发态到运行态云原生软件架构分析:从开发态到运行态基于代码和提交历史等开发态数据分析各种关联关系,例如:调用关联(代码静态分析)数据关联(代码静态分析)主题关联(代码文本分析)演化关联(提交历史分析)开发态开发态运行态运行态基于部署和运维日志、调用链路等运行态数据分析各种关联关系,例如:调用关联(调用链路分析)数据关
11、联(调用链路分析)演化关联(部署历史分析)指标关联(指标波动分析)基于运维数据的云原生软件架构评估基于运维数据的云原生软件架构评估S1S2S1S2S3S1S2S3S4S6S7S8S9S5S1S2S3S4S6S5S1S2S3弱循环调用强循环调用枢纽式服务服务内聚度弱服务间耦合度高基于调用链路等运维数据实现对于服务拆分、分布式通信、可用性保障等方面的设计评价针对架构退化进行早期预警针对架构退化进行早期预警Xin Peng,Chenxi Zhang,Zhongyuan Zhao,Akasaka Isami,Xiaofeng Guo,Yunna Cui:Trace Analysis based Mic
12、roservice Architecture Measurement.ESEC/SIGSOFT FSE 2022(Industry Track).面向架构评估的链路数据模型及指标定义面向架构评估的链路数据模型及指标定义Xin Peng,Chenxi Zhang,Zhongyuan Zhao,Akasaka Isami,Xiaofeng Guo,Yunna Cui:Trace Analysis based Microservice Architecture Measurement.ESEC/SIGSOFT FSE 2022(Industry Track).服务调用链路服务调用链路数据模型数据模型评估指标定义评估指标定义(部分)(部分)总结总结展望展望问题日渐突出问题日渐突出:架构治理问题日渐突出,引发更多关注融合数据分析融合数据分析:融合链路与其他动静态数据实现综合分析构建数据基座构建数据基座:面向可持续发展建立统一的数据基座丰富分析手段丰富分析手段:指标性评估与趋势性分析相结合建立治理体系建立治理体系:建立监管和数据标准,自治与调控相平衡