Infrastructure as Code 第I部読了。Infrastructure as Codeとそれを構成する要素を俯瞰できる第I部でした

Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス

Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス

やっと、Infrastructure as Codeの第I部を読み終わることができました。 (なかなかまとまった時間がとれなくて、何度も読み戻ってしまいました)

Infrastructure as Codeといえば、

ちょうどnobolycloudでもmizzyさんがゲストで、Infrastructure as Codeの見どころを紹介していましたね。

cloudinfra.audio

自分が言いたいことはタイトルで書いてしまったのですが、以下長々と感想です。

第I部

Infrastruture as Codeはクラウド時代に仕事を終わらせなければならないエンジニアのためのもの

仕事を終わらせなければならない」が個人的パワーワードでした。

確かになーと。

ここ数年で自分の中でAnsibleやCapistrano、TerraformやServerspecがあたり前になっていて、それらを当然として開発をしています。

先日もRoute53で管理されている複数のドメインの設定変更を行いました。

その時もRoadworkerPiculet、そして少しのRubyスクリプトを駆使することで事前の検証や一括設定変更ができて、心理的負担少なく対応ができました(今度どこかで書きます)。

もし、Infrastructure as Codeがなかったとしたら

「もし、Infrastructure as CodeやCodenizeの考え方がなかったとしたら、、、?」というのは、今となっては考えられません。

自分は、社内では少なくなった「CDでOSをインストールしたことがある」「データセンターにラックサーバを設置したことがある」世代です。

しかし、当時のインフラ運用の仕方を今もしていたら到底仕事は回らないと思います。

むしろ、「さらにInfrastructure as Code / Codenizeを進めていかないと会社として競争力を失い遅れていくのでは?」という不安も強く感じます。

例えば1章では、そういった不安の原因を「課題」として名前を付けてわかりやすく説明してくれています。

スノーフレーク」や「オートメーション恐怖症」など、あるある過ぎます(何を意味するのかは是非本書を読んでみて欲しいです)。

それらの課題についてどのようなアプローチで解決するべきなのかを俯瞰的に紹介してくれます。そしてそれらを原則と呼んでいます。

IaCに興味があるエンジニアだけでなく、IaCの導入が進まないエンジニアにも是非読んで欲しいです。

「へー、Infrastructure as Codeってこういう課題から生まれているのか。うちに必要かな」

「Infrastructure as Codeの原則に沿っているかな?」

と読むのに良い章だと思います。

この章だけ読むのも十分価値があります。

インフラがプログラマブルになったからInfrastructure as Codeが定着したという側面

Infrastructure as Codeは全てのインフラに十分な形で適用できるわけではありません。

Infrastructure as Codeの発展の裏にはインフラの進化があって、その進化したインフラにInfrastructure as Codeがマッチするというのです。

2章や5章はそういった「Infrastructure as Codeと相性の良いインフラの条件」について紹介しています。

自分はAWSを良く使うのですが、AWSはまさに本章で紹介する「ダイナミックインフラストラクチャプラットフォーム」です。

操作のほとんどがAPI経由で実現できますし、サービスのリリースのタイミングでAPISDKがリリースされることもあります。

そんなAWSが「Infrastructure as Codeと相性が良い」というのは感覚ではわかっていました。

本書では「Infrastructure as Codeと相性の良いインフラの条件」をしっかりと説明しています。

読むと逆にそれらの条件を満たしているAWSやその他のクラウドサービスの凄さを改めて感じます。

良い時代。

受け身かオートメーションか

「サーバを追加したら、サーバ管理システムに登録してください」

正直、これが本当に面倒です。

脆弱性が報告されたので、各自管理しているサーバを確認してください」

必要なのはわかっていますが、これも面倒です。

この課題をいつか解決をしたいと思っています。(実は受託開発会社ならではの悩ましいところもあるのですが、解決はしたいのです。)

今ならVulsがありますし、komaも作ったりしました。なんかできそうな気がしています。

そういった意味で3章のCMDBについての話はうなずきっぱなしでした。

(CMDBの話も是非本書を読んでみてください。)

サーバ構成ツールからコンテナの世界

4章は「Infrastructure as Code」と聞いて個人的に真っ先に想像するサーバ構成ツールの話です。

やはりコンテナに章の大部分を割いており、コンテナの利点やセキュリティの考え方などがわかりやすく説明されています。

イミュータブルな世界には憧れます。

第II部が楽しみ

第I部は、Infrastructure as Codeの基礎でした。

それを踏まえて第II部はさまざまなパターンについて書かれているそうです。

nobolycloudでも好印象な箇所なので非常に楽しみです。

最後に

mizzyさん、ご恵投いただきありがとうございました!

まだ時間はかかりそうですが、じっくり読んでいきます!