写点什么

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

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

评论

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

基于Calcite的分布式多数据源查询

麒思妙想

MySQL 数据库 Apache Calcite gbase8a

微信的业务架构图和学生管理系统的毕业设计

Geek_8d5fe5

架构实战营

流批一体技术框架探索及在袋鼠云数栈中的实践

袋鼠云数栈

第三方测评:GaussDB(for Redis)稳定性与扩容表现

华为云开发者联盟

redis 华为云 GaussDB(for Redis) NoSQL数据库 云原生NoSQL数据库

☕【Java深层系列】「并发编程系列」让我们一起探索一下CompletionService的技术原理和使用指南

洛神灬殇

Java 线程池 CompletionService 异步执行 1月日更

鉴释加入龙蜥社区,助力开源生态建设

OpenAnolis小助手

Linux 开源

异步调用如何使用是最好的方式?

CRMEB

一款基于Java语言开发的,开源商业应用的模块化开发框架和智能管理平台-Axelor

马农驾驾驾

Java 系统开发 BPM 开发框架 智能管理

农业掀起“上链”潮 区块链等数字技术正成为乡村振兴新动力

CECBC

携程DBA负责人俞榕刚:OceanBase在携程的落地和实践

OceanBase 数据库

数据库 分布式 OceanBase 开源 携程 客户实践

必读!如何有效的进行沟通

观测观测

Linux之wc命令

入门小站

Linux

直播回顾:准确性提升到 5 秒级,ssar 独创的 load5s 指标有多硬核?| 龙蜥技术

OpenAnolis小助手

Linux 开源

五步实现HarmonyOS应用(ets)【鸿蒙开发 07】

坚果

鸿蒙 1月月更

恒源云(GPUSHARE)_attention decoder效果不佳时如何应对

恒源云

深度学习 计算机视觉

从智能汽车到智慧出行,区块链能打通车联网的任督二脉吗?

CECBC

SparkSQL的入门实践教程

华为云开发者联盟

sql spark 编程 Sparksql 结构化数据

全栈工程师?你知道全流程工程师吗?

蜜糖的代码注释

Java 开发 后端技术

鉴释加入龙蜥社区,助力开源生态建设

OpenAnolis小助手

Linux 开源 社群 合作伙伴

用 docker 快速搭建 kafka(qbit)

qbit

kafka zookeeper docker image

Flutter启动流程分析之插件化升级探索

得物技术

flutter Weex Google 框架 原生

恒源云(GPUSHARE)_AdderSR: Towards Energy Efficient Image Super-Resolution学习笔记

恒源云

人工智能 深度学习 计算机视觉

亚信科技AntDB数据库荣获“2021金融科技应用创新突出贡献奖”

亚信AntDB数据库

AntDB 金融行业 亚信科技

在线YAML转TOML工具

入门小站

工具

“在线设计”网络资源管理的源头活水

鲸品堂

通信运营商 在线设计平台

前端工程师 2022 年必备的 7 个工具

开源之巅

JavaScript node.js

2022年保障企业内网安全就用行云管家!免费试用!

行云管家

云计算 云平台 内网 云管平台

企业上云后,不容忽视的管理工具-云管平台

行云管家

云计算 企业上云 云管平台 云管理

“以终为始”的正确使用方式

石云升

思维模型 1月月更

手把手教你丨小熊派移植华为 LiteOS-M

华为云开发者联盟

华为 鸿蒙 LiteOS 小熊派 移植

高并发环境下,6个构建缓存服务需要注意的问题

华为云开发者联盟

缓存 高并发 开发 并发 缓存服务

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