自动化的软件架构 | esilva.net


在过去的十年中,我们看到了软件系统架构可视化的 "复兴",其形式是通过部署系统的工件自动生成可视化。这些方法为团队提供了对团队工作范围内和跨团队的运行软件系统的更多认识。这些为组织打开了大门,以更好地理解、浏览和设计如何发展他们的产品,因为它们提供了前所未有的认识。这样的发展也允许我称之为 "涌现的理解"。我们可以看到在我们以前的人工方法中通常不会看到的东西,因为我们会采取更狭隘的观点。在文章的最后,我反思了我认为在这个话题上即将出现的重要发展,即考虑驱动这些技术系统架构的社会系统的视角。

我们正在看到软件系统可视化的复兴,重点关注(始终是最新的)从正在运行的系统的工件和描述创建的自动生成的可视化。其中,Simon Brown 的工作为塑造这些新的、更可持续的软件架构可视化方法做出了相当大的贡献。例如,他在 C4 模型语言 [ C4 ] 上的工作,还使用 ​​Structurizr 工具 [ Structurizr].此外,我们还看到许多其他工具和平台的产品化和商品化。这一举措使公司能够快速采用这些软件系统可视化方法。一个很好的例子是 Backstage [ Backstage ],它是 Spotify 内部开发的用于软件系统可视化的平台。Backstage 已作为开源项目发布。它现在被许多公司采用并得到了贡献。

这是从手动创建的可视化迁移到从部署和描述工件自动生成的可视化。这种转换为我们团队中已部署的系统提供了更清晰且始终如一的最新视图。手动维护的可视化很复杂,这就是需要这些自动化工具的原因。让“架构师”(和/或团队)始终保持这些可视化是最新的是具有挑战性的。此外,通过自动化,我们为更广泛和更深入的洞察(在团队中和跨团队)打开了大门,因为团队可以可视化他们的范围和整个景观。

它还允许可视化我们以前没有深入了解的景观的其他部分。这种新的和改进的信息和理解使我们能够发现和塑造新的选择、设计和进化路径。在更经典的手动方法中很难发现这些。这种更广泛和更深入的理解的结果应该允许更好的决策,从而更好地驾驭我们软件系统架构的自然复杂性。