软件架构是软件系统的高级结构:它是如何划分为组件的、这些组件如何交互,以及指导其设计的原则。它定义了后期难以更改的技术决策,例如数据如何在服务之间流动或哪个技术栈支撑着系统。良好的架构在功能需求与性能、可扩展性和可维护性等质量之间取得平衡。