DevOpsの理論・実践を理解するための、おススメ技術書7選

※当サイトではアフィリエイト広告を利用しています。

CTOの視点

DevOps(デブ・オプス)はエンジニアが覚えておくべき必須事項となりつつあります。DevOpsは開発(Development)と運用(Operation)を組み合わせた用語です。短いサイクルで製品をリリースして顧客からフィードバックを頻繁に受けるため、開発計画から実装・テスト・デプロイを含めたライフサイクルを自動化して、ユーザーへの価値提供をスムーズに行うことを目指します。

従来、新機能を追加する開発部門と、システムの安定稼働を目指す運用部門が分断されてしまうケースがありました。頻繁に変更を加えると運用部門の負担が増し、テストやデプロイに時間がかかると開発部門のリリースが遅れてしまうという関係です。DevOpsでは、開発、運用に加え、品質保証部門が一体となって、製品リリースの高速化・安定化を進めます。

DevOpsには測定・共有・自動化といったコンセプトが重要です。ミスを起こさないよう開発インフラの自動化を進め、改善を行えるよう何でも測定します。チーム間で測定結果を共有し、互いの仕事がより良くなるよう共同作業を行います。

DevOpsには様々な技術領域が関わります。継続的インテグレーション、継続的デリバリー、マイクロサービス。また、それを実現するためにJenkins、Docker、Kubernetesなど、新しいツールが日々、更新されていきます。

急激な進歩が続くDevOpsの理論・実践からツールの活用まで、様々な書籍が出版されています。本記事では特に評価の高いものを紹介します。

The DevOps ハンドブック 理論・原則・実践のすべて

その副題の通り、理論・原則・実践を網羅したDevOpsの決定版です。理論面では、DevOpsがもたらすビジネス上の価値や思想について述べられています。特に、専門家のインタビューやGoogle・Facebookといった主要テック企業のケーススタディは、DevOpsの実務について理解を助けます。DevOpsを始めるために必要な考え方が提示され、実践への道筋が示されます。

DevOpsはITバリューストリーム(製品管理、開発、品質保証、IT 運用、情報セキュリティ)の全てに関わります。エンジニアは必須科目として理解するべきであり、また、開発・運用に関係する管理職・経営層にも推奨される一冊です。

DevOpsの「3つの道」とは何か疑問に思った人は、ぜひ手にとって見てください。

DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する

本書はDevOpsの概念から具体的なツールの利用まで概要をつかむのに最適な一冊です。個人レベルの開発環境から、チーム開発のための継続的デリバリー、また、DevOpsを実現するためのインフラ構築まで、徐々に高度化していくよう解説が進みます。

書籍のタイトルにも含まれているInfrastructure as Codeとは、プログラムを書いて開発作業を行うように、コードを記述してインフラを構築・運用する考え方です。拡張性・柔軟性を増して、DevOpsの実現を目指します。本書では、DevOpsを組織に展開するためのTipsが解説されます。

2016年に刊行されましたが、多くのツールは現在も主要な技術要素として認識されています。具体的な実装の観点から理解を進めたい人に向いている書籍です。

継続的デリバリー 信頼できるソフトウエアリリースのためのビルド・テスト・デプロイメントの自動化

継続的デリバリーはDevOpsの要となる概念です。短いサイクルで品質の高い製品をリリースするには、テストの自動化を推進し、コンポーネントからシステム全体まで期待される機能が実装されている点を確認する必要があります。具体的には、ビルド・デプロイ・テスト・リリースの自動化が含まれます。

継続的デリバリーでは、パイプラインと呼ばれる自動化の手続きを構築します。スクリプトを記述して、コードのコミットから自動受け入れテスト・非機能要件のテストなどを確実に実施させます。また、高度なバージョン管理や基盤・環境の構築も欠かせません。

継続的デリバリーの実装に興味がある人に推奨される本です。

Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術

Jenkinsは世界中で利用されている継続的インテグレーションサーバーです。ソースコードのビルドや単体テストを自動化し、成果物のデプロイを実行します。Jenkinsは川口耕介氏によって開発されました。「Jenkins実践入門」は同氏の監修のもと、Jenkinsの導入から運用管理を解説しています。

インストールからJunitを使ったテスト、プラグインの紹介と応用が主な内容となっています。2018年11月に刊行された改訂第3版は、最新のツールに関する解説が含まれました。継続的インテグレーションを導入しようとしているエンジニアに好まれている入門書です。

プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

プログラマにとって意外とストレスを感じるのが、開発環境の構築です。ある環境で作成したコードが、少しでも異なる環境では動作せず、それを修正するのに膨大な時間がかかってしまいます。プログラムを開発する時間が奪われ、生産性を大きく下げてしまいます。そこで、Dockerは仮想環境の構築を容易にし、同じ環境でプログラムの開発・運用を行い、再現性を高めるのがメリットです。

本書は、インフラ構築経験の少ないプログラマでも、Dockerを使って環境構築を行えるようになることを目的とします。システム・インフラの基礎知識から始まり、Dockerの基本コマンドや設定ファイル及びリポジトリの使い方を解説しています。さらに、実務で使えるよう、クラウド環境でのDocker利用といった応用編もあります。

Web系の開発を専門にしていてインフラの経験が少なかったプログラマや、クラウド環境で開発を行うデータ・サイエンティスト等、入門書として活用できます。

Kubernetes完全ガイド

Dockerのようにコンテナを前提としたアプリケーションが増えています。必要に応じてプロセスを立ち上げて処理を行う際に、仮想環境を再現し、安定運用を目指します。コンテナの管理を自動化し柔軟な運用は行うためにKubernetes(クーバネティス)の利用が増えてきました。

Kubernetesはコンテナを使ったシステムのデプロイ、拡張、管理を自動化するプラットフォームであり、コンテナ・オーケストレーション・エンジンとも呼ばれます。同書は、Kubernetesの要素を体系的にまとめ、マニフェスト管理・モニタリング・ログ・継続的デリバリー・継続的インテグレーションといった周辺技術も網羅しています。

初心者にも中級者にも高い評価を受ける良書です。

Docker/Kubernetes 実践コンテナ開発入門

Docker及びKubernetesを利用してコンテナを使ったアプリケーションを開発する手順を解説した一冊です。実務経験豊富な筆者が、その経験をもとに、本番環境でコンテナ・ベースのアプリケーションを開発・運用するために必要な知識を解説しています。

その構成は極めて実務的です。Dockerの基礎・デプロイから、Kubernetesのクラスタ構築・運用へとつながり、アプリケーション開発の手順に沿って学習が進められます。やるべきこと・やるべきではないことを明らかにし、実務に使えるヒントが豊富になっています。オンプレミス又はクラウドでの環境構築、チーム開発やセキュリティといったトピックにも触れられています。

まとめ

DevOpsでは、各チームが強みを活かし、全体として素早い開発と安定稼働を実現するという企業文化が求められます。いわば「エンジニアの働き方改革」と言うべきもので、皆が楽をしながら、開発と運用に専念できるような環境を整えます。紹介した書籍は、初心者にも中級者にも有効な良書です。まだ立ち上がって間もない分野であり、また、変化が激しい技術でもあるので、書籍に書かれている具体的なコマンドやインターフェースは変わってしまうかもしれません。しかし、DevOpsの考え方は今後も重要さを増していき、エンジニアにとって学ぶべき技術として知られていくようになるでしょう。

Dockerコンテナ・CI/CDパイプライン入門

オンライン動画教育サービスUdemyでもDevOpsに関する講座が開設されています。例えば、「Dockerコンテナ・CI/CDパイプライン入門」では、前半の理論編でコンテナやCI/CDの概要を解説した上で、後半の実践編でAWS上の環境を使用して数多くのハンズオンを実施する構成になっています。ハンズオンを通じて、書籍とは異なる学習体験を獲得し、理解を深めていくことができるでしょう。


Dockerコンテナ・CI/CDパイプライン入門
タイトルとURLをコピーしました