NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

作者: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:274577

评论

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

研发效能度量标准与实践

思码逸研发效能

研发效能

前端常见vue面试题(必备)

bb_xiaxia1998

Vue 前端

Vue.$nextTick的原理是什么-vue面试进阶

bb_xiaxia1998

Vue 前端

前端必会react面试题

beifeng1996

前端 React

美团前端二面面试题

loveX001

JavaScript 前端

号码隐私保护服务:保障亿万消费者的隐私安全

阿里云视频云

云计算

一次线上OOM问题分析

艾小仙

Java OOM 问题排查 排查方法

ChatGPT看技术发展趋势| 社区征文

智趣匠

人工智能 openai ChatGPT

C++入门简单实例

老王同学

c++ 入门

chianmaker交易初探

liwh1227

区块链 共识算法 联盟链架构

一文深度解读音视频行业技术发展历程

阿里云视频云

云计算

根据文本描述生成视频,Tune-A-Video 效果惊艳

Zilliz

计算机视觉

22道js输出顺序问题,你能做出几道

loveX001

JavaScript 前端

NLP 双数组字典树(double array trie) 基于darts-java改进,增加词性存储。

alexgaoyh

elasticsearch nlp darts-java 词性 double array trie

Python:Excel自动化实践入门篇 乙【送图书活动继续】

eng八戒

Python Excel Python自动化办公

浅析大促备战过程中出现的 fullGc,我们能做什么?

京东科技开发者

JVM 内存 GC java 企业号 3 月 PK 榜

前端经典面试题(有答案)

loveX001

JavaScript 前端

新一代通信协议—— RSocket

老周聊架构

响应式编程 2月月更 rsocket

“堆内存持续占用高 且 ygc回收效果不佳” 排查处理实践

京东科技开发者

前端 堆内存 回收器 JavaScrip 企业号 3 月 PK 榜

问:React的setState为什么是异步的?

beifeng1996

前端 React

YOLOv5全面解析教程⑤:计算mAP用到的Numpy函数详解

OneFlow

人工智能 深度学习

N皇后问题的回溯法实现

老王同学

c++ 八皇后 回溯法

美团前端常见react面试题(附答案)

beifeng1996

前端 React

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue 前端

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript 前端

老生常谈React的diff算法原理-面试版

beifeng1996

前端 React

前端一面常见vue面试题合集

bb_xiaxia1998

Vue 前端

ChatGPT 不仅是 AI 的成功,也是云计算的成功 | 社区征文

多颗糖

云计算 AI 云原生 ChatGPT

一文看懂:近期不断 “狂飙” 的 ChatGPT | 社区征文

架构精进之路

ChatGPT

如何快速理解事务隔离

Dinfan

数据库 innodb 事务隔离

推荐系统[四]:精排-详解排序算法LTR (Learning to Rank)_ poitwise, pairwise, listwise相关评价指标,超详细知识指南。

汀丶人工智能

自然语言处理 推荐系统 搜索算法

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