写点什么

亚马逊云科技发布架构决策记录指南

作者:Abner Ballardo

  • 2022-06-28
  • 本文字数:975 字

    阅读完需:约 3 分钟

亚马逊云科技发布架构决策记录指南

亚马逊云科技发布了使用架构决策记录(architecture decision record,ADR)的指南。他们推荐了一个在软件工程团队中采用和审查 ADR 的过程,这个过程的结果是包含已批准、已拒绝和已废弃的 ADR 集合的决策记录。


亚马逊云科技提出该 ADR 过程的目的是改善架构决策,避免对相同主题的重复性讨论,并有效地对决策进行沟通。


ADR 是一个简短的文档,描述了会影响软件架构的团队决策。它不仅包含决策,还包含了相关的背景和影响。一组 ADR 组成了一个决策日志,它提供了关于项目或产品的更广泛的背景、设计信息和实现细节。


ADR 过程中,最常见的输入是需要在架构方面进行重大决策的功能性或非功能性需求。发现了这种决策的任何团队成员都应该创建一个 ADR。使用模板可以简化 ADR 的创建,并且能够确保它会捕获所有相关的信息。


按照亚马逊云科技的指南,创建 ADR 的团队成员也是该 ADR 的所有者,要负责维护和交流它的内容。在初始阶段,ADR 所有者会提供一个“proposed”状态的 ADR,这意味着它可以进行审查了。随后,ADR 所有者要安排一个团队会议,以审查并决定该 ADR 要被批准、返工还是拒绝。


如果团队发现该 ADR 需要改进的话,它会依然保持“proposed”状态,所有者和其他团队成员会对其进行优化。否则的话,ADR 的状态将会变为“accepted”或“rejected”,ADR 就不可改变了。如果团队需要更新这个决策的话,那应该提出一个新的 ADR,当该 ADR 被批准后,会取代之前的 ADR。


下图展示了 ADR 的创建、所有权和采用的过程。



图片来源:https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/adr-process.html


亚马逊云科技建议,ADR 应该有一个变更历史。一旦 ADR 被批准或拒绝,它就应该被认为是不可改变的。如果团队批准了一个新的 ADR,并且该 ADR 取代或更新了以前的决策,ADR 的所有者应该将旧 ADR 的状态变更为“superseded”。如果新的 ADR 被拒绝了,则不需要对旧的 ADR 进行任何改变。


下图显示了 ADR 的更新过程。



图片来源: https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/adr-process.html


决策日志会随着时间的推移而增长,它会提供团队所做出的所有决策的历史。例如,在代码或架构审查期间,团队可以使用决策日志作为参考,以验证变更是否符合商定的决策,或者是否需要创建一个新的 ADR。


原文链接:

AWS Publishes Guide to Architecture Decision Records

2022-06-28 09:274881

评论

发布
暂无评论
发现更多内容

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」Broker服务端自动创建topic的原理分析和问题要点指南

码界西柚

RocketMQ 消息队列 Alibaba技术 Apache RocketMQ 1月日更

中国AIOps们,你们究竟是在骗谁?

Geek_2749b8

云计算 AIOPS 云服务

如何定位并修复 HttpCore5 中的 HTTP2 流量控制问题

阿里巴巴云原生

阿里云 云原生 性能测试 PTS

InnoDB 引擎了解(双写机制)

Ayue、

MySQL 数据库 1月月更

普通开发者,如何成为Apache项目的commiter ?| 人物专访

云智慧AIOps社区

开源 程序员 算法 运维 时序数据

外网打点,内网渗透

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

盘点 2021 征文大赛获奖名单公布!

InfoQ写作社区官方

盘点2021 热门活动

Jenkins Pipeline: 并发执行

夏兮。

jenkins pipeline jenkins高级用法 parallel

微博评论的高性能高可用计算架构设计

皓月

「架构实战营」

【架构师训练营】模块五作业

樰巳-堕~Horry

架构实战营 「架构实战营」

架构实战营 模块五作业

Jude

架构实战营

阿里云开源业内首个应用多活项目 AppActive,与社区共建云原生容灾标准

阿里巴巴云原生

阿里云 开源 高可用 云原生 容灾

Markdown-it 原理解析

冴羽

前端 markdown vuepress 博客开发 markdown-it

模块五

浮生若梦

如何真正学习Go 语言[翻译]

宇宙之一粟

Go 学习方法 Go 语言 1月月更

使用 VSCode 调试 Electron 主进程代码

编程三昧

Electron 1月月更

SpringBoot:如何优雅地进行参数传递、响应数据封装、异常处理?

CRMEB

JavaScript 使用 Markdown 制作 PPT

devpoint

markdown 1月月更 slidev

如何提高你的写作技巧

坚果

1月月更

Apache Pulsar 针对 Log4j2 漏洞 (CVE-2021-44228) 的解决方案

Apache Pulsar

开源 云原生 中间件 Apache Pulsar log4j2

Spring 都在用的技术,你确定不过来看看?2️⃣

XiaoLin_Java

1月月更

最新版:Apache Pulsar 针对 Log4j 漏洞解决方案

Apache Pulsar

开源 架构 云原生 中间件 Apache Pulsar

黑客实现ARP欺骗

喀拉峻

黑客 网络安全 WEB安全

如何自学编程?

DaemonStone

程序员 程序员人生 自学编程 经验总结 大学生毕业

架构训练营模块五作业

沈益飞

架构训练营 架构师训练营 4 期

让创新触手可及,阿里云容器服务 ACK 发行版开放免费下载

阿里巴巴云原生

阿里云 云原生 容器服务 ACK

中国AIOps们,你们究竟是在骗谁?

Geek_f56666

云计算 AIOPS 云服务

一个cpp协程库的前世今生(二十一)协程重分配

SkyFire

c++ cocpp

19 Prometheus之告警的艺术

穿过生命散发芬芳

Prometheus 1月月更

Spring中的单例模式使用

JavaEdge

1月月更

【重构前端知识体系之HTML】讲讲对HTML5的一大特性——语义化的理解

归子莫

html html5 前端 语义化 1月月更

亚马逊云科技发布架构决策记录指南_服务革新_InfoQ精选文章