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

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

tkitsunai
March 19, 2018

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

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

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