Puppet Labsは現在,年次のPuppetConfカンファレンスを開催中だ。今年は速度の向上した次世代Puppet Serverに合わせて,Puppet Enterprise製品用の新しい管理機能とレポート機能,新たなPuppet Appsのローンチを発表した。
新世代Puppet Server
Puppert LabsはPuppet Serverプロジェクトを新たに立ち上げた。これは現行のPuppetマスタに代わるもので,PuppetDBで使用しているのと同じJVMスタックを採用し,新しい機能としてClojureを,既存のRubyコードベースを実行するためにJRubyを備える。また新サーバでは,従来よりもサーバ志向のアーキテクチャを採用することで,小規模インストレーションでは異なるサービスを同一サーバ上で実行し,負荷の増加に従って水平スケールすることが可能になる。Puppet Labs CEOのLuke Kanies氏はパフォーマンス向上に関して,JVMベースのサーバとApache/Passenger上で動作する3.6 Puppetマスタを比較した場合,リクエスト応答で3倍,カタログのコンパイル時間では2倍高速だと説明している。
Puppet Serverは,Pupper Enterpriseの次期バージョンの一部としてリリースが予定されている。また,既存のPuppetにドロップインリプレース可能なプレビューリリースが公開中だ。
Puppet Appsの導入
Puppet Appsは,アップデートの頻度を上げる目的で,Puppetコードベースから独立してリリースされる専用アプリケーションである。Puppet Enterpriseユーザの既存ライセンスをベースとして,Puppet Enterprise 3.4から提供が開始されている。
その第1段であるPuppet Node Managerは,オペレーティングシステムや地理的ロケーション,IPアドレスなどの重要な特徴を基準にノードをグループ分けする,ルールベースの分類機構である。人手の介入を必要とせず,自動的にアップデートされる,スマートなノードコレクションを生成する。
Puppet Node ManagerはPuppet Enterprise 3.4の一部として,第4四半期のリリースが予定されている。他のPuppet Appsも2015年初めには提供される予定だ。
新しい管理機能とレポート機能
新しくなったPuppet Enterprise 3.4リリースには,新たな管理機能が含まれている。
-
Roll-Based Access Control (RBAC): さまざまな粒度のRBAC機能によって,Puppet Enterpriseノードをセグメント化することより,チーム単位から個人に至るまで,管理タスクの委譲が可能になる。例えば,アプリケーションチーム単位でインフラストラクチャをセグメント化すれば,他のアプリケーション開発に影響を与えることなく,自分たち自身のサーバを管理することができる。Microsoft Active DirectoryやOpenLADPといった,標準的なディレクトリサービスとの統合も可能だ。新しいRBACサービスは,当面はPuppet Node Managerによって使用されるが,今後のリリースで,他のPuppet Appsやサービスでも利用可能になる予定だ。
-
Puppet Server Reporting: 新しいプロファイラとMetrics Serviceによって,アクティブな要求数や要求間隔,実行時間,コンパイルロードといったPuppet Serverの状態やパフォーマンスに関連する主要な測定値をトラッキングして記録する。これにより,JMXをサポートする任意のサードパーティアプリ,あるいはGraphiteサーバによって,監視や警告を行うことが可能になる。セットアップの便宜を図るため,パフォーマンスとシステム状態をレポートするGraphiteの設定済みパッケージも提供される。
Puppet言語のアップデート
次バージョンのPuppet言語では,コードの記述やメンテナンスを容易にするための拡張が行われている。
新しい機能には,次のようなものがある。
- ラムダとイテレーション: each, map, filterなどの関数で,ラムダを使用したコードブロックの適用が可能だ。イテレーションは,Rubyでコードを記述しなくても使用することができる。
- データシステム: 新しいデータ型システムにより,クラスパラメータ型の定義が可能になる。クラスの使用時には,Puppetによる型チェックが行われる。
- Puppetテンプレート: Rubyではなく,Puppet言語を使用してテンプレートを記述することが可能。テンプレートはコンテナマネージャ内で,Puppetによって実行される。
- エラー処理: これまでよりも詳細なエラー情報の提供と,問題を検出した場所の正確な指示が可能になる。
最新リリースであるPuppet 3.7の言語拡張に関するプレビューは,PuppetのFuture Parserで見ることができる。これらの機能は,Puppetのマスタ設定で parser = future
を使用するか,あるいはクライアントで --parser future
コマンドラインオプションを使用すれば有効になる。3.7で提供される言語は最終仕様と考えられている。Future Parserは,2015年初めにリリースされるPuppet 4でデフォルトになる予定だ。