ゲスト投稿:「Chef活用ガイド コードではじめる構成管理」発売2周年 #getchef
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は 「Chef活用ガイド コードではじめる構成管理」発売2周年 (2016/04/28) からのゲスト投稿です。
「Chef活用ガイド コードではじめる構成管理 (大型本), (Kindle版)」が 2014/4/28 に世に出て早 2年が経ちました。Chef 界隈において 1周年 からどのような変化があったのか、振り返ってみましょう。
どの Chef を使えばいいの?
一口に Chef と言っても、Chef-Solo、Chef-Client ローカルモード、Knife-Solo、Knife-Zero、オンプレミス版 Chef-Server、ホステッド版 Chef-Server とさまざまな種類があります。一体何を基準にして使えばいいのかを明確にするため、「あなたに合ったChefはどれ? 〜 おすすめ構成確認チャート (2015/05/19)」を作成しました。どの Chef を導入したらよいか検討する一助となれば幸いです。
なお、ある種のインターネット・ミームと化していた「Chef-Solo オワコン」、最近は誤解が解けてきたのか、あまり聞かなくなったように思います。参考: Chef-Solo, Chef-Client LocalMode, Knife-Solo, Knife-Zero and us. (2014/12/25)
テスト駆動インフラ開発の発展
周辺ツールの充実により、テスト駆動インフラ開発がますます発展してきました。いくつかブログエントリを振り返ってみます。
- Chefによるテスト駆動インフラの概観 (2015/04/21)
- Test Kitchen: 開発のフィードバック工場 (2015/09/10)
- ChefとServerspecでテスト駆動インフラ開発 (2015/10/26)
- InSpecへの道 (2015/11/04)
- 静的解析: Cookbook の質と一貫性の改善 (2015/11/20)
- Test Kitchen の Shell Verifier で Serverspec による Cookbook テストを行う (2015/12/15)
- テスト駆動 Cookbook 開発 (2016/03/03)
特に注目すべきは InSpec、そして Shell Verifier でしょう。
InSpec は Serverspec にインスパイアされた、インフラテストフレームワークです。人間および機械が読み易い言語で、インフラのコンプライアンス、セキュリティ、ポリシーの要求を記述できることを目指しています。監査の対象は既存のインフラだけでなく、Test Kichen から呼び出すことで Cookbook に対するテストを行うといった使い方も可能です。これまで Cookbook のテストに使われていたのは冒頭に挙げた Serverspec や BATS といった Chef 社外のツールであり、必ずしも Cookbook のテストに向かない場合もありました。InSpec の登場により、Chef 社内製ツールで Cookbook テストが行えるようになりました。
Shell Verifier は Test Kitchen v1.5.0 でマージされた機能です。
Shell Verifier について説明する前に、Kitchen Busser について説明しましょう。Kitchen Busser (以下 Busser) とは、Cookbook を適用した Node に対してテストスイートのインストールやテストケースの転送を行い、Node 内部のテストを行う仕組みです。もともと Test Kitchen のデフォルトのテストスイートであった BATS は、Node に対してネットワークを経由して外部からテストを行う仕組みを備えていなかったため、Busser のような仕組みが必要となったのでしょう。Busser という仕組みの問題点として、Cookbook を適用した Node に対して、テストに必要なソフトウェアのインストールなどの変更を加えてしまうということです。そのため、純粋に Cookbook のテストのみを行っているとは言い難い面もありました。
Shell Verifier は Test Kitchen を実行しているホスト上でコマンドを実行する仕組みです。Cookbook を適用した Node のテストは、ホスト上にインストールされているテストスイートを使用してネットワーク経由で行うので、純粋に Cookbook のテストが可能となっているのです。これまで主流だった Busser + busser-serverspec + Serverspec による Cookbook テストから、Shell Verifier + Serverspec による Cookbook テストへ転換が進むことを期待しています。
Windows 対応の拡大
Chef の Windows Powershell DSC の対応は次の通り、前々から行われていました。
- Chef Client 11.16.0がPowerShell DSCをサポート (2014/09/08)
- Chef Client 11.18.0 リリース (2015/01/14)
- Chef Client 12.2.0 リリース (2015/03/26)
その後、Microsoft Azure マーケットプレイスに Chef が登場し、ネイティブ 64 ビット版 Windows 用の Chef Client のリリースが行われるなど、Windows 対応は着実に拡大しています。
- Microsoft Azure に Chef が登場 (2015/09/09)
- プレリリースアナウンス: ネイティブ 64-bit Windows Chef Client (2015/11/19)
- ネイティブ 64-bit Windows Chef Client のアップデート (2016/02/08)
これを機会に、Windows の構成管理を Chef に任せてみるのはいかがでしょうか?
プレミアム機能の充実
Chef エコシステムの充実をはかる新しいプレミアムソフトウェアが発表されました。Chef Delivery と Chef Compliance です。
- 配達準備: Chef Deliveryに備えよう (2015/05/21)
- エンタープライズ企業向けDevOps新時代の幕開け--Chef社が新製品をリリース (2015/11/03)
- Chef ComplianceがAWS Marketplaceで利用可能に (2015/11/09)
- Chef Delivery ガイドツアー (2015/11/23)
Chef によるワークフローの自動化をさらに推進する Chef Delivery、Chef によるインフラの監査を自動化する Chef Compliance が登場しました。インフラの状態を可視化する Chef Analytics と合わせて、Chef による自動化エコシステムはますます充実していっています。参考: Chef Analyticsプラットフォームとの出会い (2014/07/15)
まとめ
Chef そのものは成熟の段階にあり、特にテスト駆動開発や CI/CD についての進化が大きかった 1年だと言えるでしょう。本書の提唱する内容はまだまだ現役で活用が可能です。是非、本書をお手元に置いていただければ幸いです。