【読書メモ】『The DevOps ハンドブック 理論・原則・実践のすべて』
1.この記事で達成したいこと 以下の本を読んだので感想や学びを残す The DevOps ハンドブック 理論・原則・実践のすべて : ジーン・キム, ジェズ・ハンブル, パトリック・ボア, ジョン・ウィリス, 榊原 彰, 長尾 高弘: Japanese Books 2.前提 本題に入る前に、前提として僕の DevOps 周りの背景知識について触れようと思う。 2-1.僕の DevOps 周りの背景知識 これまで以下の経験をしており、多少なりとも DevOps とはなんぞやという点は抑えているつもりだった。。 toB の Web サービスの運用と開発 Gitlab Runner と Argo CD を使った GitOps なパイプラインの設計と構築 Django 制の社内システムの開発 以下の podcast を聞いたことがあり、Circle CI はまさに DevOps を体現していると思っている 7. CI/CD とか、CircleCI 自体の設計・開発プロセスとか | fukabori.fm ※ 本書を読み進めるまでは、DevOps とは開発と運用が手を取り合っておこなうこと、あるいは一手に引き受けることだと思っていた しかし、本書を読み進めていくうちに、DevOps を推し進めるには、それだけで足りないと考えを改めることになる 3.目次 第1部 3つの道 第1章 アジャイル、継続的デリバリー、そして3つの道 第2章 第1の道:フローの原則 ほか 第2部 スタートのための糸口 第5章 最初に手を付けるバリューストリームの選択方法 第6章 バリューストリーム内の作業を理解し、それを可視化して、組織全体に広げる ほか 第3部 第1の道:フロー改善の技術的実践 第9章 デプロイパイプラインの基礎の構築 第10章 高速で信頼性の高い自動テストの実現 ほか 第4部 第2の道:フィードバックの技術的実践 第14章 問題の可視化と解決のための基礎となる遠隔測定データを作り出す 第15章 遠隔測定データを分析して問題の予測と目標の達成に活かす ほか 第5部 第3の道:継続的な学習と実験の技術的実践 第19章 日常業務での学習の実現と日常業務への学習の注入 第20章 一部門の発見を全社的な進歩につなげる ほか 第6部 情報セキュリティ、変更管理、コンプライアンスを統合するための技術的実践 第22章 すべてのエンジニアの毎日の職務として情報セキュリティを位置づける 第23章 デプロイパイプラインを防御する 4.感想や学び DevOps とは開発と運用が手を取り合っておこなうこと、あるいは一手に引き受けるという方法論だけを説いているのではない。 ソフトウェアの変更を早く、安く、正確にプロダクション環境に反映させるという目標がまずあり、その目標を達成するために IaC を始めとする方法論などの話題が出てくる。 本書で言うリードタイムとプロセスタイムの違いに意識するという点もその一例。 DevOps は Unix 哲学の考え が随所に表れているという印象を持った。 例えば、DevOps を推し進める上で重要なこととして、リリースやデプロイのサイクルを早くするためにバッチサイズを小さくしたり、受け渡しの数を少なくすること(フローの原則)を挙げている。 このようなリリース対象を小さくすること、あるいはパイプラインの簡素化はまさに Unix 哲学でいう"Small is beautiful"や"Make each program do one thing well"だと感じた。 DevOps を推し進める上で重要なことはフローの原則以外に以下の 2 つを挙げている。 フィードバックの原則。 継続的な学習と実験の原則。 フィードバックの原則と継続的な学習どちらも大事なことだと思うが、ここではフィードバックの原則に関連して今月弊社に転職して驚いたことがあったので書き残しておきたい。 それは 「フィードバックをし、またそれを受け入れている光景」 をいたるところで見かけるということ。 例えば、情シスなどいろんな部署が主催するオンボーディング研修に参加すると、都度 zoom で質問やコメントをしあっている。 また、kintone のアプリ(チャット)上でも、そういったやりとりがテキストベースでされている。 なお、これは余談だが、情報量が多い様子を「情報の海」と言うこともあり笑。 以下の記事のとおり、情報の取捨選択が求められていると感じる。 cf. 若手から偉い人まで! テレワークで重宝されるサイボウズの分報はいかにして社内に浸透したのか? - ログミー Biz 5.本書で何度も読み返したいところ 『6.3 専任の変革チームを編成する』 ...