2025年7月15日
「オープンソースカンファレンス(OSC)」発起人「Linux標準教科書」著者
1994年に日本オラクル入社、Linux版Oracleのマーケティングに従事。その後は企業経営の傍ら、オープンソースソフトウェアや仮想化技術を中心に執筆・講演活動を行う。2004年に始めた「オープンソースカンファレンス」(OSC)は全国に広がり、その功績により2008年、IPA「日本OSS貢献者賞」を受賞。著書に『ADSLによるLinuxインターネットサーバー構築ガイド』(技術評論社)、『Linux実用Tipsリファレンス』(共著, 技術評論社)、『仮想化技術 完全攻略ガイド』(共著, インプレスジャパン)など。
皆さん、こんにちは。宮原徹です。前回はこれからインフラ技術を学びたい人におすすめの技術書籍をご紹介しました。今回は、Linuxやコンテナなどインフラ技術についての基礎を学んだ方に、さらに追加でスキルを身につけるためのおすすめの技術書籍をご紹介します。
Linuxやコンテナ(DockerやKubernetes)などの技術はインフラ技術の中心にありますが、実際のプロジェクトなどではさらに幅の広いスキルが求められます。具体的には、DevOpsやSREなどが話題に挙がるでしょう。これらは開発や運用の手法でもあるので、単に「Linuxが使えます」「コンテナを動かせます」だけでは対応できません。今回は、DevOpsやSREとは何かを理解できるようになるために身につけたいスキルという観点でおすすめ技術書籍を選んでみました。
Gitはいわゆるバージョン管理システムです。主にソースコードのバージョン管理に使うので、アプリケーションなどの開発者が使うイメージがありますが、インフラエンジニアも同様にGitを活用するようになりました。インフラの自動化を行う、いわゆる「IaC」(Infrastructure as Code)では、自動化を行うためのスクリプトや設定ファイルを記述しますし、それらをバージョン管理する必要もあります。そのような作業にGitは欠かせません。
Gitの入門書は多数ありますが、その多くが基本的なGitを操作するためのコマンドを順々に解説していくスタイルを取っているため、若干イメージが湧きにくいのが難点です。
紹介する『Gitハンズオンラーニング』はタイトルの通りハンズオン、つまり手を動かしながら学べるという点と、概念的で把握しにくいGitの動作を「ビジュアル化」してかなり細かく図解してくれているという点で、学ぶ人だけでなくGitの使い方を教えないといけない人にも参考になるかと思います。
また随所に「なぜそのような操作が必要になるのか」といった解説が入っているのも、単に使い方を説明した書籍との違いがあります。Gitをこれから学ぶ人だけでなく、Gitを使っているのだけど今一つ仕組みがよく分かっていない、という人にもおすすめの一冊です。
「IaC」(Infrastructure as Code)は、従来手作業で行っていたインフラの構築や修正をコード、つまりスクリプトやツールを使って自動化する手法です。
手作業ではヒューマンエラーを排除できない、作業履歴が取りにくいなどのデメリットがありますが、自動化することで、誰が何回やっても同じようになる、いわゆる「冪等性」(べきとうせい)が担保されるようになります。今後インフラの作業はすべて自動化が大前提になっていくでしょう。クラウドなどのインフラを活用する際、様々な作業をWebブラウザで操作するダッシュボードではなくAPI経由で自動化することが当たり前になるということです。
自動化ツールにはAnsibleなどがありますが、ここ最近ではTerraformが使われることも多くなってきました。Ansibleはスクリプトの記述通りに作業が行われる「手続き型」のツールであるのに対して、Terraformはどのようなシステムを作りたいのかを記述する「宣言型」のツールであるところに違いがあります。どちらが優れているというわけではありませんが、手作業を自動化に置き換える際に手続き型の方が直感的に分かりやすい分、宣言型をしっかりと学んでほしいのでTerraformを選択しました。
Terraformの解説書はそれほど多くありませんが、今回おすすめする『入門Terraform』は比較的新しく、また各種クラウドへの対応のほか、より業務で突っ込んで使う際に必要となってくるSaaS「HCP Terraform」(旧Terraform Cloud)やモジュールなどにも触れられていて、実務にも耐えられるレベルをカバーしています。AWSなどのクラウドの構築運用をしっかりと行えるようになりたいのであれば、必携の一冊といえるでしょう。
ここ最近、オブザーバビリティという言葉が使われることが増えています。
「システムの状態を外部から監視できるようにする」というような意味合いです。
以前からシステムの監視自体は行われてきましたが、システムが停止していないかどうかを監視する「死活監視」が主でした。しかし、“停止はしていない”、“動作している”と言っても、性能その他の面で正常動作とは言えない場合もあります。このように、死活監視から一歩踏み込んで性能その他を監視する必要が出てきています。
本書は直接的にオブザーバビリティについて解説した書籍ではありません。どちらかというと死活監視から性能監視にやっと踏み込んだ、というぐらいの内容になっています。一方で、オブザーバビリティという考え方は突然現れたわけではなく、死活監視から性能監視へと進化していく延長線上にあります。そういう点で、まずは監視という考え方そのものの基礎を身につけておく必要があります。
1章のアンチパターンは、すでに監視について触れている人にも役に立つでしょう。また、4章の統計入門はごく簡単な要素にしか触れていませんが、知っておくべき内容です。6章以降は具体的に監視対象別の基本が触れられているので、本書のメインといえるかと思います。あまりページ数も多くないので、順番に読んでもいいし、興味のあるところだけ拾い読みしてもいいでしょう。
インフラエンジニアとして、今後避けて通れないのは「DevOpsについて理解し、実践できること」でしょう。そこでDevOpsの全体像を網羅的に学んでもらうための入門書籍を見繕ってみようと考えたのですが、実践的なものが多いため入門書籍としてなかなかいいものがありませんでした。若干手前味噌ですが、筆者の会社でDevOpsの概論や実践についてThinkITに記事を多数寄稿しているので、そちらを紹介しておきます。この連載以外にもDevOps関連の記事もありますので、探してみてください。
[ThinkIT]DevOpsを実現するために行うこと・考えること
さて、おすすめの技術書籍ですが、『SCRUM BOOT CAMP THE BOOK【増補改訂版】』をご紹介します。
スクラムはアジャイル開発の手法の1つで、多くの開発チームが取り入れ始めています。このアジャイル開発を実現するには、DevOpsのような開発チームと構築・運用チームが協力し合うことが必要です。そのためにも、インフラエンジニアとして開発にはノータッチではなく、積極的に開発プロセスに関与していく役割が求められます。
まず相手を理解するところから始めよ、ということで、アジャイル開発の理解を始める一冊としてこちらの書籍を紹介します。
この書籍のよいところは、チームメンバーがキャラクターとして「立って」いて、随所にマンガが書かれていることです。技術書籍を読むのが苦手な人は、まずはマンガパートだけ一通り読んでみることをおすすめします(筆者はそうしました)。そのようにして全体的な流れを把握したら、あらためて冒頭から読んでいきましょう。文体もやさしく書かれているので、かなりスイスイと読んでいけるのではないでしょうか。スクラムの全体像を把握し、DevOpsの実践へと繋げていくイメージで本書を読んでみてください。
SRE (Site Reliability Engineering)は、Googleが提唱したシステムの開発・運用の手法で、DevOpsの1つの形態といってよいかと思います。SREを(誤解を恐れずに)超要約すると、たとえばWebサービスならシステムが遅くてページがなかなか表示されないと顧客満足度が下がってしまうので、ある決められた時間でページが表示できるようにする、そして表示できなくなってしまった時には何らかの改善手段を取る、というシステムの開発・運用の手法です。実際には、レスポンスタイム以外の様々な観点での指標化、監視、改善のサイクルを廻していくことになります。
DevOpsも明確な定義を持たない曖昧な概念ですが、SREも解釈の幅がある手法です。そういう意味では、まずGoogleのSREを学ぶために『SRE サイトリライアビリティエンジニアリング』を読むべきなのでしょうが、なかなか歯応えのある本で、読み通すのは大変かも知れません。
シリーズ書籍として『サイトリライアビリティワークブック』、『SREの探求』があり、Google以外の様々な事例が掲載されています。『サイトリライアビリティワークブック』は『SRE サイトリライアビリティエンジニアリング』の副読本という位置付けになります。順番としては邪道かもしれませんが、まず初めに気軽に読む読み物という観点でいうと、沢山の事例が掲載されている『SREの探求』がよいでしょう。
SREには、自動化やオブザーバビリティなど、いくつもの要素が取り込まれています。ご紹介した様々な技術の総仕上げとして、SREの理解にも取り組んでみてください。
ここまで紹介してきた技術書籍はツールの使い方は開発・運用の手法について解説していましたが、技術を深掘りする技術書籍としてLinuxカーネルについて解説している『絵で見てわかるLinuxカーネルの仕組み』をご紹介します。
Linuxカーネルについて解説した書籍はこれまでもありましたが、やや難解なものが多く、万人におすすめできるものではありませんでした。本書はまえがきに「本書の読者としては、Linuxをある程度は使えるようになって、次のステップとしてカーネルについて学習したいと思われた方を想定しています」とあるように、図解も交えつつ難解過ぎない内容になっています。
内容としては、プロセススケジューラやメモリ管理、ファイルシステムなどOSのごく基本的な機能だけでなく、セキュリティ、仮想マシン、コンテナといった技術についても触れられています。たとえば、コンテナを支える仕組みとして名前空間やcgroupについて解説されています。これらを知らなくてもコンテナを活用できますが、自分で使うツールがブラックボックスで仕組みが分からないと気持ち悪いという感覚があるかどうかは、優れたインフラエンジニアかどうかを見分ける1つの指標でもあるように思います。まずは好奇心を持って、どのような仕組みなんだろう?と調べてみる習慣をつけるためにも、この本を読んでみてください。
今回の書籍は、SREのような開発・運用の手法に到達する道筋をイメージしておすすめ書籍を選定しました。ですが、ここでは番外編として少し違う観点でおすすめしたい書籍もご紹介しておきます。
本編が一本の道筋だとしたら、ここに挙げたのは横に拡がるようなイメージでスキルの全体像を捉えるための書籍です。
一冊一冊についての細かいご紹介は割愛しますが、インフラエンジニアとしての「素養」を身につけるには最適な技術書籍です。是非、手に取ってみてください。
関連記事
人気記事