云原生软件架构因其微服务、DevOps、持续交付和容器化等特点,在90%的应用程序中将采用微服务架构的预测下,其生态系统呈现持续运转、在线演化的特点。然而,云原生软件架构治理面临脆弱的长调用链路、服务内聚弱、服务间耦合强等问题,这些问题源于缺少整体规划的系统生态性演化。
传统的软件架构分析技术包括代码静态分析、代码动态分析和代码演化历史分析,但云原生软件架构分析面临运行环境复杂多变、服务独立开发和部署、自主生长独立演化等挑战。相比之下,云原生软件架构分析拥有可观察性数据,如运行日志、调用链路和指标度量,为分析提供了机遇。
基于可观测性数据的微服务系统分析,特别是运行时调用链路聚合分析,能够实现业务流分析、业务架构可视化分析,从而对云原生软件架构进行评估。这种分析从开发态的代码和提交历史到运行态的部署和运维日志、调用链路,实现了对服务拆分、分布式通信、可用性保障等方面的设计评价,并能针对架构退化进行早期预警。
面向架构评估的链路数据模型及指标定义,为基于运维数据的云原生软件架构评估提供了方法论。通过定义服务调用链路数据模型和评估指标,可以实现对云原生软件架构的全面评估。
总结来看,云原生软件架构治理问题日益突出,需要融合链路与其他动静态数据进行综合分析,构建统一的数据基座,丰富分析手段,建立监管和数据标准,实现自治与调控相平衡。未来,云原生软件架构分析将朝着融合数据分析、构建数据基座、丰富分析手段和建立治理体系的方向发展。