Connect with us

思想领袖

实践指南:预防架构失败

mm

大型企业系统中没有一个重大的架构失败是完全新的。相反,每个失败都包含一个以之前看到的模式的形式存在的隐形重复。架构失败源于一小部分反复出现的原因,无论业务规模、使用的技术、组织结构或领导风格如何。尽管可以访问大量的数据、框架、启发式、工具和技能,但这些失败仍然持续存在。失败并不总是技术上的,而往往源于如何做出、管理和随时间推移允许架构决策演变。

随着企业采用人工智能(AI)、扩展分布式系统和部署大规模应用程序,架构管理不善的影响变得越来越难以忽视。架构治理不善是技术债务和IT基础设施及运营成本增加的主要原因。次优设计大大降低了IT投资的总价值。为了实现IT投资的全部价值,组织可以采用一种与组织现实相一致的、有纪律的、技术上合理的架构方法。

反复出现的架构陷阱

几个设计陷阱在系统中始终被观察到,并属于包括:

  • 过度工程化。中级架构师经常通过旨在创建能够支持长期增长或展示高级能力的系统来推动过度工程化。结果通常是一个难以维护、昂贵的系统、生产力较低且与组织需求的实际规模不符。
  • 非功能性需求。设计过程早期对非功能性需求(NFRs)的考虑不足是一个常见的问题。可扩展性、性能和可靠性通常被视为次要问题,并在以后解决,导致返工和不稳定。例如 AWS Well-Architected Framework 强调运营卓越、安全、可靠、性能效率和成本优化是基础支柱,而不是可选的增强。
  • 数据设计碎片化。弱数据治理和数据架构在决策中的有限参与引入了冗余和不一致,消除了单一的真实来源。这一碎片化使分析、AI训练和下游决策更加复杂。统一的数据模型和治理提供了明显的优势,以应对这些挑战。 现代数据架构指导 原则强调了统一的数据模型和治理的重要性。
  • 集成限制。设计为独立的系统通常缺乏与其他应用程序集成的灵活性。这在AI驱动的环境中日益成为问题,因为这些环境需要数据平台、应用程序编程接口(API)和机器学习(ML)工作流之间的互操作性。
  • 架构漂移。也称为侵蚀,架构漂移 发生在渐进式的更改、补丁和变通方案逐渐偏离预期的设计。随着时间的推移,这些“临时”解决方案导致设计一致性偏差,使系统变得越来越脆弱、更难维护和更难扩展或演变。

这些反复出现的问题并不是孤立的设计缺陷,而是表明了更深层次的挑战,即如何做出和维持架构决策。

反复失败的根本原因

反复出现的问题源于更深层次的原因。架构师经常依赖于熟悉的工具和技术,而不是根据每个项目的背景需求进行评估。

趋势驱动的决策进一步加剧了这个问题。微服务的广泛采用说明了这种动态。虽然微服务提供可扩展性、容错、更快的部署和技术无关性,但它们也引入了显著的复杂性。对于许多组织来说,这导致了糟糕的权衡,就像亚马逊Prime Video从微服务转向更高效的架构一样。

治理缺陷也至关重要。在初始设计批准后,架构监督通常会下降。决定是在实施过程中以临时方式做出的,没有强大的治理模型,随着时间的推移,偏离预期架构的偏差会积累起来。

组织压力经常优先考虑速度而不是质量。紧迫的截止日期和业务需求导致快速修复,后来这些修复成为低效的来源。

文化动态也会影响结果。在以责备或恐惧为特征的环境中,批判性的讨论受到限制。架构师可能会犹豫寻求或接受输入,从而降低设计的有效性。

架构漂移的早期指标

架构退化很少突然发生;它通过可识别的警告信号出现。关键指标包括:

  • 变化放大。一个小的修改会在多个组件中触发广泛的变化,特别是在紧密耦合的系统中。
  • 高返工率。频繁地重新访问以前完成的工作,而没有新的业务需求,表明架构中存在不稳定性。
  • 开发者犹豫。修改某些组件的犹豫通常表明存在脆弱性或过度复杂性。
  • 基于补丁的修复。依赖快速修复而不是全面解决方案表明存在更深层次的架构不匹配。
  • 项目速度下降。随着低效率的积累,交付时间表延长,生产力降低。

这些指标强调了主动监控和治理的重要性。

预防性实践和治理模型

预防架构失败需要从静态设计方法转变为持续的治理,这是一种持续的纪律,它将架构与业务目标、运营现实和不断变化的技术需求保持一致。几个实践有助于组织识别架构漂移,保存设计意图,并降低昂贵失败的风险。

架构审查委员会(ARBs)在设计过程中提供了结构化的检查点。这些跨职能团队从多个角度评估设计,包括成本、性能、可扩展性、安全性、可靠性和弹性。当有效使用时,ARBs帮助团队快速检测风险,并确保重要的架构决策在成为生产系统的一部分之前得到审查。架构决策记录(ADRs)解释了为什么做出关键选择,包括任何限制、权衡和假设,有助于未来的团队了解过去的决策,并降低重复错误的风险。

架构回顾至关重要。通过回顾什么有效、什么无效,团队可以识别模式、做出更好的决策,并随着时间的推移改进他们管理架构的方式。例如 FinOps 框架通过将架构决策与财务结果联系起来,确保与组织目标保持一致。

定期检查架构是必不可少的。将所构建的内容与原始设计进行比较,有助于团队提前识别差异、捕获架构漂移并快速解决问题。自动化进一步加强了治理。将架构检查集成到持续集成/持续交付(CI/CD)管道中,可以实时验证代码是否符合设计原则。

衡量成功和学习现实案例

有效的架构需要可衡量的结果。几个关键性能指标(KPIs)有助于评估系统的质量和可持续性:

技术债务比率(TDR)提供了对功能开发与维护之间平衡的洞察。比率的增加表明效率越来越低,可能存在设计问题。

业务采用率衡量系统如何满足用户的需求。低采用率通常反映了架构和业务需求之间的不匹配。

基础设施成本趋势揭示了架构决策的长期效率。高效的系统会随着时间的推移保持或降低成本,而低效的设计会变得越来越昂贵。

应用程序的寿命也是一个关键指标。设计为适应性系统可以在技术(包括AI和ML的集成)演变时保持可行性。刚性系统需要更频繁地更换,这既增加了成本,也增加了风险。

现实世界中的例子说明了这些原则。Netflix的微服务架构实现了可扩展性、弹性和改善的用户体验。相反,亚马逊Prime Video转回单体设计的转变表明,复杂性并不总是能带来价值,且上下文决定了架构选择的有效性。

AI时代的架构

AI通过从AI赋能(将AI添加到现有系统中)转变为AI原生架构(从一开始就将AI设计为核心系统的一部分),从而改变了架构设计。这些功能需要系统更加适应性、可扩展性和数据驱动性。

许多现有的架构并不是为适应AI集成而设计的。改造这些系统通常需要大量的重新设计和努力。从一开始就设计适应性,使组织能够在不引起过多干扰的情况下集成AI功能。

AI驱动的工具还可以增强治理,提供诸如静态分析、依赖关系映射和异常检测等功能。这些工具帮助识别潜在问题并减少维护架构完整性的手动工作。

构建长期恢复力

架构失败更好地被理解为由技术、组织和治理决策塑造的反复出现的模式。认识到这些模式使组织能够从反应性问题解决转变为主动的系统设计。

持续治理、语境决策和可衡量的结果对于构建可持续的架构至关重要。随着AI等技术的演进,重点转向平衡创新与实用性,确保系统保持适应性、高效性和与长期业务价值保持一致。

卡拉兰雅尼·萨蒂什库马尔(Kalaranjani Sathishkumar)是LTM的一名高级解决方案架构师,LTM是一家全球技术服务公司。她拥有超过16年的经验,负责从需求收集到业务采用整个过程的企业解决方案架构的端到端所有权,涵盖多个不同的业务领域。她在印度安娜大学获得了计算机科学工程学士学位。请在LinkedIn上与卡拉兰雅尼联系。