ADR의 실천

2978 단어 adrtech

의 목적


효과적인 ADR 실행

이전 단락


https://qiita.com/hirokidaichi/items/a746062917595619720b
원래 구조 설계가 필요한지 여부를 포함한 매우 참고 가치가 있는 문서.
딱 보면 많이 살 수 있을 거야.

ADR가 뭐예요?


Archiitecture Decision Records, 약칭 ADR.
구조 설계상의 중요한 결정과 그 배경의 기록.아니면 그 수법?
https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
구조 설계상의 결정의 이유와 배경을 기록함으로써 현황과 이후의 구조 설계를 효과적으로 파악할 수 있다.
반대로 이게 없었다면 프로젝트의 새 멤버나 선정과 관련이 있어야 하는데 단편적 기억상실에 빠진 기존 멤버가 재구성 설계를 할 때 혼란스러웠을 것이다.
왜 눈앞의 구조를 채택했는지 잘 모르겠는데 현황에 대한 파악과 학습은 처음부터 곤경에 빠졌고 그 전의 경위를 파악하지 못했기 때문에 디자인이 잘못되었을 가능성이 높아졌다.

ADR 활용


아래의 운용 방법은 일본어로 쓴다고 가정하여 본가부터 약간의 수정을 진행하였다.

서법

  • 하나의 구조에 대한 확정, 하나의 파일
  • 재활용 금지.동일한 아키텍처라도 새로운 결정을 내릴 때 새 파일을 만듭니다
  • .
  • Mardown과 같은 가벼운 책갈피 언어 사용
  • 프로젝트의 창고 doc/arch/adr-NN-XX입니다.md에 놓다
  • NN은 제작 순서, XXX는 제목
  • 간결한 문서를 만듭니다.그거 만들기 쉽고 읽기 쉽고 ADR
  • 도 효과적으로 활용
    ADR 참조 템플릿은 다음과 같습니다.

    참조 템플릿


    adr-001-SUGOI 구조의 채택.md
    # SUGOIアーキテクチャの採用
    > タイトル。どんな内容の提案なのか、簡潔明瞭なタイトルにする。
    
    Date: 2021-11-06
    > 該当する決定を行った日付(YYYY-MM-DD形式)
    
    ## Status
    > 提案に対してどう決定したのかのステータス。
    承認
    > 基本的に承認/却下/検討中の3つで十分と思われる。
    
    ## Context
    > 決定の背景。
    > まず今の課題と、議題にあげているアーキテクチャを採用した場合にどのような形でそれが解決できるか、どのようなメリットがあるかを書く。
    
    現状、IMAICHIアーキテクチャを採用しているが、オートスケールが不可能で可用性が悪く、稼働率が70%程度になってしまっているという課題がある。
    しかし、このSUGOIアーキテクチャを採用すれば、可用性を含めたパフォーマンスが大きく改善し、稼働率が99.9%になる上にランニングコストも50%程度下がることが見込まれる。
    [SUGOIアーキテクチャのスペック](リンクのURL)
    
    > 次に採用した場合のデメリット、弊害、プロジェクトを取り巻く環境などを書く。
    
    SUGOIアーキテクチャを採用した場合のデメリットとして考えられるのは、プロジェクトメンバーに半月~1ヶ月程度の学習コストが発生することである。
    来月に100個の新機能リリースを控えてる今の状況で採用した場合、スケジュールが破綻してしまう可能性がある。
    また、2ヶ月後に議題のSUGOIアーキテクチャの倍のパフォーマンスが期待できるYABAIアーキテクチャがリリースされるという情報もある。
    [YABAIアーキテクチャのPR記事](リンクのURL)
    
    > 最終的にどう判断したかを書く。
    
    上記の通り様々なことが検討されたが、ユーザーから稼働率に関する不満のフィードバックが多く、これがサービスとしての致命傷になリ得ると判断されたため、今回SUGOIアーキテクチャを採用することを決定した。
    
    ## Decision
    >  決定事項。今回決まったことを書く。箇条書きが望ましい。
    
    - 来月リリース予定の新機能のうち、優先度の高い新機能Aと新機能Bのリリース完了後にSUGOIアーキテクチャ導入作業に入ることとする
    - 来月の10日になってプロジェクトメンバーのうち、2人が学習完了しなかった場合はSUGOIアーキテクチャの採用をいったん保留とする
    
    ## Conquences
    > 決定を行った結果。
    > 後日、その決定の結果を評価する。良かった点、悪かった点や次回のADRに向けてのコメントなどを書く。
    
    SUGOIアーキテクチャを導入した結果、課題だった稼働率は99.9%になりユーザーからも稼働率に関しての不満がでることはなくなった。
    やはり、IMAICHIアーキテクトのIMAICHI機構は採用するべきではなく、SUGOIアーキテクチャにあるようなSUGOI機構が可用性の担保には重要であった。
    しかし、ランニングコストは想定よりも下がらず10%減にとどまったことと、スループットが旧アーキテクチャより下がってしまいコア機能の処理時間が増大してしまったことに関しては事前検証が甘かった。
    YABAIアーキテクチャの採用も検討したいところだが、その際は同じ轍を踏まないようにこれら点も精査して設計に臨みたい。
    
    

    사용자 정의


    그리고 각 조직에 따라 조정하는 것이 좋다.
    예1) 각 항목의 구조는 횡단 작용을 하기 때문에 각 창고에 ADR을 설치하면 오히려 관리하기 어렵기 때문에 ADR용 창고를 사용한다.
    예2) 해당 ADR 제작에 참여한 참석자를 기재한 정보
    예3) 가급적 본가에 충실하기 위해 폐지 등의 상태가 추가되었다

    좋은 웹페이지 즐겨찾기