連載
» 2015年11月24日 05時00分 公開

「Puppet」がもたらすインフラ構築自動化と“それ以外”のメリット「Puppet」ユーザー会が発足(3/3 ページ)

[高橋睦美@IT]
前のページへ 1|2|3       

大規模なシステムインテグレーションにも使えるPuppet

 この日行われたユーザー会では、NTTデータの落合秀俊氏がPuppetを大規模なシステムインテグレーションに適用した事例を紹介した。PuppetというとWebサービス系の導入事例が多いが、今回紹介された事例では、社会的基盤を担う大規模システムの構築と維持管理にPuppetを活用したという。

photo 大規模SIプロジェクトでのPuppetの適用例を紹介したNTTデータの落合秀俊氏

 落合氏の説明によると、このシステムは約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は非常に役に立つと思った」と落合氏。今後もユーザー会の場を通じて、さまざまなノウハウを共有し、積極的な活用を推進していきたいと述べ、発表を締めくくった。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。