亞馬遜使用架構決策記錄來簡化軟體開發專案的技術決策 - AWS
本指南介紹了軟體工程專案的架構決策記錄 (ADR) 過程。ADR 支援團隊協調,記錄專案或產品的戰略方向,並減少重複和耗時的決策工作。
在專案和產品開發期間,軟體工程團隊需要做出架構決策以實現其目標。這些決策可以是技術性的,例如決定使用命令查詢職責分離 (CQRS) 模式,也可以是與流程相關的,例如決定使用 GitFlow 工作流來管理原始碼。做出這些決定是一個耗時且困難的過程。團隊必須證明、記錄這些決定並將這些決定傳達給相關的利益相關者。
在做出架構決策時,經常會出現三種主要的反模式:
- 因為害怕做出錯誤的選擇,根本沒有做出任何決定。
- 一個決定是在沒有任何理由的情況下做出的,人們不明白為什麼會做出這樣的決定。這導致同一主題被多次討論。
- 決策不會在架構決策儲存庫中捕獲,因此團隊成員會忘記或不知道已做出決策。
在產品或專案的開發過程中處理這些反模式特別重要。
以 ADR 的形式捕獲導致決策的決策、背景和考慮因素,使當前和未來的利益相關者能夠收集有關所做決策和每個決策背後的思考過程的資訊。這減少了軟體開發時間,併為未來的團隊提供了更好的文件。
有針對性的業務成果
ADR 針對三個業務成果:
- 他們使當前和未來的團隊成員保持一致。
- 他們為專案或產品設定了戰略方向。
- 他們透過定義一個流程來正確記錄和傳達架構決策,從而避免決策反模式。
ADR 捕獲決策的背景,以告知未來的利益相關者。ADR 集合提供了移交經驗和參考文件。團隊或專案成員使用 ADR 集合進行後續專案和產品功能規劃。能夠參考 ADR 可以減少開發、審查和架構決策所需的時間。ADR 還允許其他團隊學習並深入瞭解其他專案和產品開發團隊所做的考慮。
ADR流程
架構決策記錄 (ADR) 是描述團隊對他們計劃構建的軟體架構的一個重要方面做出的選擇的文件。每個 ADR 都描述了架構決策、其上下文及其後果。ADR 具有狀態,因此遵循生命週期。有關 ADR 的示例,請參閱附錄。
ADR 流程輸出架構決策記錄的集合。此集合建立決策日誌。決策日誌提供專案背景以及詳細的實施和設計資訊。專案成員瀏覽每個 ADR 的標題以瞭解專案背景。他們閱讀 ADR 以深入瞭解專案實施和設計選擇。
當團隊接受 ADR 時,它變得不可變。如果新的見解需要不同的決定,團隊會提出新的 ADR。當團隊接受新的 ADR 時,它將取代以前的 ADR。
專案成員應為影響軟體專案或產品的每個具有重大架構意義的決策建立 ADR,包括以下內容(Richards 和 Ford 2020):
- 結構(例如,微服務等模式)
- 非功能性需求(安全性、高可用性和容錯性)
- 依賴關係(元件的耦合)
- 介面(API 和已釋出的合約)
- 構建技術(庫、框架、工具和流程)
詳細點選標題
相關文章
- 如何記錄產品和軟體架構決策?架構
- 資深架構師的經驗分享——軟體專案開發和決策架構
- 輕量級的架構決策記錄機制架構
- 技術架構師如何制定決策 – Mark Greville架構
- 再聊對架構決策記錄的一些思考架構
- 亞馬遜雲科技智慧湖倉架構:從上雲到實時決策的資料服務整體解決方案亞馬遜架構
- drools決策表的簡單使用
- 架構師如何做出架構決策? – IasaGlobal架構
- AI決策進階:深度學習遷移技術賦能決策AI深度學習
- Redgate是如何做出架構決策的?架構
- 解析丨自動駕駛核心技術:感知、決策與執行(中:決策篇)自動駕駛
- 如何做出重大技術路線決策?
- 我們如何在Adyen做出架構決策 - Adyen架構
- 決策易aPaaS,一款非技術人員也能使用的自定義開發神器
- CRM軟體助力企業科學決策
- 「馬爾可夫決策過程」學習筆記馬爾可夫筆記
- 決策樹模型(3)決策樹的生成與剪枝模型
- AWS 亞馬遜S3檔案上傳亞馬遜S3
- 決策樹
- 亞馬遜雲服務AWS Marketplace “重塑”企業軟體SaaS之旅亞馬遜
- IT技術助力於業務流程:RPA解決方案的策
- 理解馬爾可夫決策過程馬爾可夫
- GitHub 熱點速覽 Vol.34:亞馬遜、微軟開源專案帶你學硬核技術Github亞馬遜微軟
- Python之父重回決策層,未來如何發展?Python
- 實時決策系統中 OpenMLDB 的常見架構整合方式架構
- 決策樹示例
- 亞馬遜DRKG使用體驗亞馬遜
- 強化學習(二)馬爾科夫決策過程(MDP)強化學習馬爾科夫
- Java開發架構篇:DDD模型領域層決策規則樹服務設計Java架構模型
- 決策單調性最佳化
- 使用線上供應鏈採購系統,將分散性決策變為集中公開決策
- 亞馬遜aws文件語法錯誤亞馬遜
- Python之父重回決策層,社群未來如何發展?Python
- 02決策樹-初識與構建
- 關於亞馬遜AWS 棄用 Oracle的思考亞馬遜Oracle
- 揭祕亞馬遜雲科技軟體開發工程師團隊亞馬遜工程師
- 資料驅動決策:決策智慧與設計思維
- 情指一體化資訊化建設解決方案,警務視覺化輔助決策系統開發視覺化