Upgrade to Pro — share decks privately, control downloads, hide ads and more …

hbstudy#82 SRE大全 ソフトウェアエンジニアリングによるToil削減

Avatar for tkitsunai tkitsunai
March 19, 2018

hbstudy#82 SRE大全 ソフトウェアエンジニアリングによるToil削減

hbstudy#82のSRE大全で発表した内容です。橘内パートのみ収録。

Avatar for tkitsunai

tkitsunai

March 19, 2018
Tweet

More Decks by tkitsunai

Other Decks in Technology

Transcript

  1. 自己紹介 橘内 孝幸 (Takayuki Kitsunai) UZABASE, Inc SRE Team Software

    Engineer ServerSide中心にFrontまで幅広く担当。最近はArchitecture設計も多め 2015年にUZABASEにJoin Product Team(2015~) -> SRE Team(2017~) SRE Team内のツール開発、Operation自動化、Webアプリ自体のソフトウェア開発も担当 主に開発プロセスや手法の指針作りの部分でリードしています。
  2. Table of Contents 1. UZABASEにとってのToilとは 2. Toilの計測 3. 自動化ツールの設計基本指針 (

    DDD ) 4. 自動化ツールの設計基本指針 ( CA ) 5. 設計指針に基づいた作成ツール事例 6. まとめ
  3. Table of Contents 1. UZABASEにとってのToilとは 2. Toilの計測 3. 自動化ツールの設計基本指針 (

    DDD ) 4. 自動化ツールの設計基本指針 ( CA ) 5. 設計指針に基づいた作成ツール事例 6. まとめ
  4. Toilの計測 より具体的な計測内容とその方針 • 緊急度が高く顧客指摘による不具合系(本番バグ) • ビジネス的に即時対応しなければならない改善タスク • 現行進んでいるプロジェクトを阻害するタスク • アラートによるジョブの対応

    • カレンダー上で重複されたスケジュール • 輪番タスク、Toilとして認識しているタスク 1日での予定で、想定外のことを計測 差し込み率、Toil率の割合を算出していく
  5. Table of Contents 1. UZABASEにとってのToilとは 2. Toilの計測 3. 自動化ツールの設計基本指針 (

    DDD ) 4. 自動化ツールの設計基本指針 ( CA ) 5. 設計指針に基づいた作成ツール事例 6. まとめ
  6. 自動化ツールの設計基本指針 業務領域 (ドメイン) に寄り添う • ドメイン駆動設計 : Domain Driven Design

    – 我々(あなた達)の業務は、ドメインとして知識化されている – ドメイン知識を噛み砕く(ドメインモデル化) – ドメインモデルは育てるもの(事業は成長する) Domain Model Domain Model ドメインを育てるということ:知識を噛み砕き、実装と結ぶ。
  7. Table of Contents 1. UZABASEにとってのToilとは 2. Toilの計測 3. 自動化ツールの設計基本指針 (

    DDD ) 4. 自動化ツールの設計基本指針 ( CA ) 5. 設計指針に基づいた作成ツール事例 6. まとめ
  8. 自動化ツールの設計基本指針 組織の成長を阻害しない • クリーンアーキテクチャ : Clean Architecture – 単方向の依存 –

    Frameworkに依存しない – UIに依存しない – Data Storeに依存しない – テスト容易性 出典: https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
  9. 自動化ツールの設計基本指針 なぜ、DDDとクリーンアーキテクチャ(CA)なのか? • システムは成長するため、システムのライフスパンはもっと短いはず – 置き換えをしやすく • 依存の考え方 – 業務がインフラに依存するのではなく、

    – インフラが業務に依存する – コアとなるドメインは変わらないはず – 解決したいのはインフラではなく業務 • CAは思想 – CAはパターンの一つだが、考え方
  10. Table of Contents 1. UZABASEにとってのToilとは 2. Toilの計測 3. 自動化ツールの設計基本指針 (

    DDD ) 4. 自動化ツールの設計基本指針 ( CA ) 5. 設計指針に基づいた作成ツール事例 6. まとめ
  11. 設計指針に基づいた作成ツール事例 • Corporate/SRE TeamにとってのToil削減 – 10~15min/employee (SRE) – 25~30min/employee (Corporate)

    • クリーン – SaaSを置き換え可能にする – コアドメインが類似 • エンジニアの良い練習場 – Golangの習得 – DDDの習得 – Architectureの習得 – Infrastructure as Codeの習得
  12. • Toilを計測しよう – 差し込み・Toilのレートを分析しアクションする • DDDで作ろう – ドメインモデルを成長させて、コアなドメインを作る • Clean

    Architectureは思想 – 学ぶのはアーキテクチャだけでなく、考え方。 – 単方向の依存と、レイヤ毎のクリーンさを保つ。 まとめ