「Puppet」がもたらすインフラ構築自動化と“それ以外”のメリット:「Puppet」ユーザー会が発足(3/3 ページ)
インフラ構築自動化ツールの一つ、「Puppet」に関するユーザーやベンダーの情報交換を促す「Puppetユーザ会」が設立された。第一回の会合に合わせて来日したPuppet LabsのCIO カーステン・ナイジャル氏とユーザー会代表の菅原亮氏に、その特徴とメリットを聞いた。
大規模なシステムインテグレーションにも使えるPuppet
この日行われたユーザー会では、NTTデータの落合秀俊氏がPuppetを大規模なシステムインテグレーションに適用した事例を紹介した。PuppetというとWebサービス系の導入事例が多いが、今回紹介された事例では、社会的基盤を担う大規模システムの構築と維持管理にPuppetを活用したという。
落合氏の説明によると、このシステムは約30種類、400台規模のサーバーで構成されている。この規模のシステムで、「大量のサーバーを効率的に配置しなければならない。また、種類は同じにもかかわらず構成が異なるサーバーが構築されないようにし、変更が起きても不整合がないようにする必要がある。これらの課題を解決するために、Puppetで構築と維持管理を行った」という。
Puppetは、構築の実作業を自動化し、楽にしてくれるものというイメージが強い。しかしこの事例では、いくつか予想以上の効果が得られたという。まずは大規模導入に対応しながらの品質の向上だ。マニフェストを一カ所にまとめ、それを全サーバーに適用することによって作業ミスをなくせた。結果として品質の向上につながったことになる。
開発・構築を進める中で得られたノウハウをマニフェストに反映することで、学習効果を蓄積できるメリットも得られたという。単体テスト、モジュール結合、他システムとの連携……と作業を進める中でたまったノウハウをマニフェストに反映し、失敗もフィードバックしていった。この結果、「後ろの方のテストフェースになればなるほど失敗が減り、短期間でしかもミスなく構築できるようになった」(落合氏)という。
加えて「期間短縮という効果はさることながら、スケジュールの確度が上がることもありがたかった。マニフェストを活用することで失敗しにくくなるため、作業を予定通りに進められるという効果が大きい」(落合氏)という。
この案件は改修ではなく新規システム構築であったことから、要件定義の手戻りなど、多くの変更が生じることが予想された。そうした変更に柔軟に対応できることも、ポイントの一つだったという。「『Infrastructure as a Code』、つまりコードとしてトラッキングできるため、変更のハードルを下げられる効果があった」と落合氏は説明した。
変更依頼が入ってくると、Dockerで作成したPuppetの検証環境でその変更を加えたマニフェストを試し、OKならば実際の開発環境に、さらには本番環境に適用する流れで進めたという。「手元に自由に使える環境を用意し、トライ&エラーで要求を固め、確定したらそのマニフェストを『コード』として持ち歩くことができた」(落合氏)
この案件にはもう一つ、導入先が顧客のデータセンターとなるため、作業の「場所」「時間」「期間」が制限され、「短期間での確実な導入が求められる」条件があった。この部分には、Puppetによる自動化もさることながら、「スケジュールの確度が高まる効果が絶大だった」と落合氏は述べた。
「他のところで検証したマニフェストをそのまま持っていけばOKなので、期間を確実に守ることができる。あるメンバーは『本番環境での作業はたいてい胃がキリキリ痛くなるものだが、今回は安心して進められた』と漏らしたほどだし、自分もそう思った」(落合氏)
マニフェストの作成に際しては、Puppet Labsが公開している「The Puppet Language Style Guide」や「Module Fundamentals」といった事例が参考になったそうだ。
気を付けたのは、できるだけ単純にするということ。「If文など制御文を入れると、マニフェスト自体のテストが大変になってしまう。また、汎用性を高めようとすると穴埋め部分(変数)が増えて、『マッチョ』な構成になってしまう。最低限の値のみ穴埋め方式とし、あとは決め打ちにした」(落合氏)
Puppetを使ってみて、改めて、特にオープンソースのミドルウエアとの相性の良さを感じたという。逆に商用ソフトウエアの場合は、コマンドラインやrpmでインストールできるものがある一方で、対話的インストールが必要なものもある。全てを自動的に完結させるのは難しい。
「商用ソフトウエアのインストールが、インストール前提条件としてライブラリのバージョンや環境変数が決まっていることがある。この前提条件を整えるところをPuppetがやってくれるだけでも効果がある。商用ソフトのインストールが失敗するのは、この前提条件が整っていないケースが多いからだ」と落合氏は付け加えた。
大規模プロジェクトで利用してみて、「大規模なシステムインテグレーションプロジェクトにおいても、Puppetは非常に役に立つと思った」と落合氏。今後もユーザー会の場を通じて、さまざまなノウハウを共有し、積極的な活用を推進していきたいと述べ、発表を締めくくった。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Puppetのインストールと動作確認、トラブル対処法
サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。今回は、agent/master型のPuppetのセットアップ方法を順に解説。インターネットに接続できない環境や証明書の不整合の解決法も。 - 環境構築自動化の手順と評価検証、Puppetの基礎知識
サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。 - 作業手順書はもういらない! Puppetにおける自動化の定義書「マニフェスト」の書き方と基礎文法まとめ
サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。今回は、自動化ツールを使う上で大切な3つのことを基に、Puppetの変数とテンプレート、条件分岐、クラス、モジュールの使い方などを解説します。 - 「Puppet Enterprise」と「Red Hat Satellite」の連携が実現。一方、レッドハットは「Ansible」を買収へ
Puppet EnterpriseとRed Hat Satelliteが連携可能に。一方、米レッドハットはPuppetの競合とされるAnsibleの買収を発表し、自社ソリューションへの取り込みを表明した。 - Puppetの商用版を、ネットワールドが日本で初めて正式展開
ネットワールドは2015年5月13日、米Puppet Labsと日本初のディストリビューター契約を締結し、インフラ構成自動化ツールPuppetのサポート付商用版「Puppet Enterprise」を、同日に販売開始したと発表した。