Open14
『The DevOps ハンドブック 理論・原則・実践のすべて』読書メモ
DevOpsの原則
- フローの原則:左から右へのフロー(全体)を高速化する
- フィードバックの原則:(全てのステージで)右から左へのフィードバックを返す
- 継続的な学習と実践の原則:生産的な文化を作る
元ネタはこれらしい
これらの原則のプラクティスとしては「技術」以外の部分もある
継続的な学習と実践の原則は「文化」の話
フローの原則では作業の可視化、WIP制限などの「プロセス」のプラクティスがある
フロー改善の技術的実践
デプロイパイプラインの構築
CDのことでない
- 環境をオンデマンドで作成できるようにする
- VMイメージのコピー、IaC、Docker、クラウド
- 全てをバージョン管理する
- 修理より再構築の方が簡単なインフラ
- イミュータブルなインフラ
- 本番に近い環境での動作確認も「完成」の条件に含める
上記を使って、本番環境に近い環境を使って開発、動作確認を行い、変更が全てコミットされるプロセスを作る
自動テスト
- 継続なビルド、テスト、インテグレーション
- 高速で信頼性の高い自動テストをコミットごとに実行する
- 第1ステージは10分以内
- パイプラインが失敗したら修正されるまでコミットを禁止する
継続的インテグレーション
- トランクベースの開発
- 最低1日1回はマージする
自動化とローリスクリリース
- デプロイの自動化
- パイプラインへの統合
- リリースとデプロイの分離
- デプロイは単に配置すること、リリースは新機能を利用可能な状態にすること
- ブルーグリーンやカナリア、ダークローンチを実施することで分離できる
ローリスクのアーキテクチャ
- モノリスからマイクロサービスへ
- 絞め殺しパターンで少しずつマイグレートする
フィードバックの技術的実践
遠隔測定データを作る
テレメトリデータのこと
- 一元的な遠隔測定インフラを作り、データを集約する
- アプリにログ作成機能を追加する
- 問題解決に遠隔測定データを利用する
- 指標を簡単に追加できるようにする
- 遠隔測定データにセルフサービスでアクセスできるようにする
遠隔測定データを分析して問題を予測する
- 統計手法を用いて問題を検出する
- アラートを送る
フィードバックループを実現して安全にデプロイできるようにする
- デプロイ時に積極的にモニタリングする
- 開発と運用でオンコールを共有する
- 本番サービスを開発に管理させる
- 初期や脆弱になった場合
仮説駆動開発とA/Bテスト
レビューと調整プロセス
- ピアレビュー
- デプロイのサイズを減らす
- ペアプロ