【書評】サーバ/インフラエンジニア養成読本 DevOps編

Kaizen Platform社の@glidenoteさんから、「サーバ/インフラエンジニア養成読本 DevOps編」をご恵贈頂きました!

Amazon.co.jp: サーバ/インフラエンジニア養成読本 DevOps編 [Infrastructure as Code を実践するノウハウが満載! ] (Software Design plus): 吉羽 龍太郎, 新原 雅司, 前田 章, 馬場 俊彰: 本

この本の表紙なんですが、CircleCICircle CIになっているとTwitterで喚き散らしていたところ、「CircleCIによる継続的インテグレーション入門」の特殊記事を執筆された@glidenoteさんから頂けることになりました。ありがとうございます。

ざっと書評

養成読本シリーズだけあって、サーバサイド・インフラをバックグラウンドに持つエンジニアであればそれなりに一気読みできるかと。

特集1:最速攻略!Ansible2によるサーバ構築

今のプロジェクトは基本的にフルDockerのため、従来のようにプロビジョニングでやることが圧倒的に少なくなってしまったのでもうAnsibleは使ってないのです。以前利用していた時は、varsの使い方とかいつもどうすんのが一番いいのかな?って感じで試行錯誤していたのでベストプラクティスについて書かれているのを見て結構納得しました。はい。

Ansible2でブロックがサポートされたりで便利機能が増えるのはいいなと思いつつも、相変わらずのYAML芸かよという面も否めませんね。まあでも変にDSLを導入されたりするよりはいいのかなぁ。

特集2:CircleCIによる継続的インテグレーション入門

現時点で、テスト駆動インフラを実現するための一通りのツールや手法について触れられています。Infrastrucre Codeに馴染みがないと全然知らない技術やツールばっかりだと思うかもしれませんけど、フロントエンドみたいに節操のない領域じゃないので(おい)、ある程度定番の構成というのが確立されつつある分野だと思います。

Serverspecでテスト書いたり、オーケストレーションをTerraformでやったり、それをCircleCIでCIしたり。手法だけ聞くと簡単かもしれないですが、実際に運用に落としていくにはそれなりにブレイクスルーが必要なので具体的な手法が記述されているのが良いです。circle.ymlの実用的な書き方にまで踏み込んでいるのも良いですね。

TerraformをCircleCIで運用するのはウチでもやっていてなかなか良くて、AWSの変更差分をCircleCIで見れるのでPRのレビューのネタにもなります(実際にapplyしてみないとわからない面もあるが)。ただし、ELBとかAutoscalingGroupのように運用で状態が変わってしまうものに関してはTerraformはあんまり向いてないので、状況に応じてTerraformの守備範囲をしっかり決めておくのが良いのかなというのが運用してみた感想です。

DigitalOceanはてっとり早く試すのにはコスト的にもうってつけなVPSで、日本から一番近いのがSingaporeリージョンのため多少のレイテンシはありますがサポートされているディストリビューションも多いし、気軽に使えるのでオススメです(CoreOSもありますね)。AWSとかそれなりに利用を気をつけないと大変なことになりますからね。

特集3:Dockerによる仮想環境構築とKubernetesによるDockerクラスタ管理

Dockerに触れたことがある人はもうかなり多くなってきたと思いますが、実際の開発に投入するとなるレベルで広がってきているかどうかはまだまだ微妙なところがあります。

養成読本でいきなりKubernetes?となるかもしれませんが、ちゃんとDockerの導入から紹介されているので障壁は高くありません。また、Dockerを利用したアプリケーションの組み方のイメージがわからないという声はよく聞きますが、この記事では Kubernetesの基本やアーキテクチャが広く浅く抑えられているのでイメージを掴みやすいと思われます。導入記事なので十分な内容ですが、実際にDockerを開発・運用してみると(ウチのプロジェクトはAmazon ECSですが)色々な苦労があるのでその辺の生生しい話もこれからは求められるのかなと思われます。

感想

良書でした。@glidenoteさんありがとうございました!