『The DevOps ハンドブック 理論・原則・実践のすべて』:私のお気に入りなエンジニア向け書籍
2021年05月27日 木曜日
CONTENTS
こんにちは、m-t-a-n-a-k-aと申します。よろしくお願いいたします。
普段はクラウドサービスの仮想化基盤の運用改善業務をメインに担当しております。
今回は「The DevOps ハンドブック 理論・原則・実践のすべて」という本をご紹介いたします。
組織におけるDevOpsの実践方法が体系的にまとめられたガイドブックです。
The DevOps ハンドブック 理論・原則・実践のすべて
- 著者:Gene Kim, Jez Humble, Patrick Debois, John Willis 長尾高弘 訳
- 出版社:日経BP
幅広い層の方におすすめできる書籍ですが、個人的には、特に技術系の新入社員の方にぜひ手に取っていただきたい本だと考えております。
エンジニアとしてのキャリアをスタートしたけど、どうにもエンジニアリングと関係ないしがらみが多い気がして、パフォーマンスが上がらない……といった状況を好転させる助けになるかもしれません。
DevOpsについて
DevOpsという用語は昨今様々な文脈で使われますが、ここでは「開発と運用との連携を円滑化することに焦点を当てた、顧客への迅速かつ安全確実な価値提供を実現するための継続的改善活動」という意味で使用いたします。
なぜDevOpsが提唱されたのでしょうか。
それはひとえに、多くの組織が、顧客への迅速かつ安全確実な価値提供ができていない、という課題を抱えているからに他なりません。
情報技術の進歩に伴い、ビジネスを取り巻く環境の変化は一層激しさを増しています。
そうした中で、顧客への迅速な価値提供は、競合への優位性を保つ上でより一層重要になっています。
しかし迅速化に注力すれば、システムに加えられる変更も頻繁になり、障害が引き起されるリスクも高まります。
市場で優位に立つには価値提供を迅速化する必要があるが、それに注力すると障害が発生するリスクも高まってしまう、というある種の板挟みな状況があるわけです。
この課題に取り組むには、単に新しい自動化ツールを採用するといった戦術的な対応に留まらず、組織文化の刷新まで含めた戦略的な対応が必要になります。
そのような包括的な改革運動を、特に開発と運用の連携の円滑化に焦点を当て、体系化したものがDevOpsというわけです。
DevOpsの観点から取り組むべき領域は複数ありますが、例えばそのうちの1つであるシステムの可観測性の改善に取り組めば、開発チームは運用チームにわざわざ依頼することなくいつでもパフォーマンス情報を確認できるようになり、またパフォーマンスに対する責任を自分事として捉えて開発するようになります。
このような改善は、システムへ頻繁な変更を加えつつ安全性も維持するという、理想的な顧客への価値提供へと繋がります。
本書のオススメポイント
私が考える本書のオススメポイントは以下です。
理念から実践までの丁寧なブレイクダウン
私が初めてDevOpsを知った時は、「なるほど、素晴らしい理念だけど、じゃあそれをどう実践に繋げればいいの?」という点が中々腑に落ちませんでした。
私が調べた際の感覚的には、DevOpsは種々の原理の緩やかな集合として述べられていることが多いようで、実践する上での取っ掛かりが見えづらく思いました。
本書では、DevOpsの理念を「フローの原則」「フィードバックの原則」および「継続的な学習と実験の原則」の3つの原則にブレイクダウンし、それぞれの原則に対してプラクティスを述べることで、理念から実践までを一貫した形で解説しています。
これにより、DevOpsの観点で脆弱な箇所に対して、組織が逐次的な改善に取り組みやすい構成になっています。
取り入れやすいプラクティスの紹介
DevOpsの文脈でよく言われるように、職能横断型チームの方が顧客への迅速な価値提供が可能になる、ということは事実かもしれません。
しかし、それを前提にしたプラクティスしか解説されないのであれば、職能指向型の場合はまず職能横断型に変えてください、という話に尽きてしまい、DevOpsを実践する最初のハードルが上がってしまいます。
本書では、上記のような、DevOpsの観点で理想的でない状況においても、最初の一歩を踏み出せる解説が心がけられています。
上記の職能指向型チームの例に対して、本書では、セルフサービス化による開発チームの生産性向上や開発チームへの運用エンジニア配置、または開発チームから運用チームへの連絡担当者配置という方法で、職能指向型の欠点をカバーするプラクティスを述べています。
各プラクティスの具体例として挙げられる豊富なケーススタディ
本書では、プラクティスを適用した場合のケーススタディが豊富に紹介されており、実践時のイメージが湧きやすい形で解説されています。
DevOpsの実践例という粒度であれば、豊富なケーススタディを紹介している書籍は他にもあります。
しかし本書ではプラクティスの粒度でケーススタディを紹介しているため、実施した手段とその効果が特に分かりやすい構成になっています。
最後に
システムの運用は、ともすると責任が重くてルーチンワークの多い、嫌な感じになりがちな仕事です。
しかしDevOpsの実践を心がければ、顧客への迅速な価値提供が可能になるのはもちろんのこと、つまらない運用の仕事の多くをコンピュータにやらせるか消し去ることができるようになり、楽しい仕事に集中できるようになります。
そして実践にあたっては本書が役に立つはずです。
気になった方は、ぜひお手に取ってみてください。