プログラマブルなITプラットフォーム
次世代ITプラットフォーム像=プログラマブルなITプラットフォーム
既存のITプラットフォームがサイロ化などの課題を抱える中、次世代ITプラットフォームに対する期待が高まりつつあります。既存の課題を解決しつつ、さらなる効率化を可能にするものが求められています。
次世代プラットフォームとは、具体的には、以下の3つを同時に達成するものといえます。
- 全体最適化を前提とした、テンプレート管理型の基盤
- ツールによってシステム運用指針を維持できる、運用管理が自動化された基盤
- 費用対効果が高い、オープンソース型の基盤
これまでやってきた部分最適化ではなく、全体最適化を意識した施策を進めるためには、インフラ技術者による指針の策定と徹底が重要です。もちろん、指針の策定と徹底を実現するためには、何かしらのツールが必要になります。
システム管理用のツールは数多くありますが、最近では、仮想化技術の浸透とともに、システムの設定情報をテンプレートとして管理する手法が注目されています(テンプレートは、スクリプトやイメージとして作成・維持する)。言うならば、あたかもアプリケーションをコーディング(プログラミング)するかのように、インフラ構築をコーディングするのです。
インフラ技術者は、各部門や各業務用途で必要になるシステム設定情報を調査し、事前に整理します。こうして、いくつかの典型的なシステム環境を、スクリプト・テンプレートとしてまとめておきます。これにより、システムの利用者は、テンプレートを選択するだけで、テンプレートとして定義された環境を即座に構築できるようになります。
もちろん、すべてがテンプレート化できるわけではありません。しかし、テンプレート化が進めば進むほど、システム運用の効率が高まります。可能な限りテンプレートの範囲内で解決できるようにシステムとユーザー・ニーズを管理することが求められます。
システムのテンプレート化を支援し、結果としてシステム管理業務の自動化を促進するのが、プロビジョニング(調達)・ツールです。プロビジョニング・ツールは、"プログラマブルなITプラットフォーム構築"を可能にします。商用の製品も存在しますが、オープンソースもあります。主なオープンソースのプロビジョニング・ツールは、以下の通りです。
オープンソースのプロビジョニング・ツール一覧
- Puppet
- http://www.puppetlabs.com/
- Cfengine
- http://www.cfengine.org/
- Chef
- http://www.opscode.com/chef/
- BCFG2
- http://trac.mcs.anl.gov/projects/bcfg2
- LCFG
- http://www.lcfg.org/
- AutomateIt
- http://automateit.org/
- Smartfrog
- http://wiki.smartfrog.org/
- kokki
- http://github.com/samuel/kokki
- slack
- http://code.google.com/p/slack/
図2: インフラの"コーディング"が可能に |
アプリケーション最適化を実現するプラットフォーム
次世代のITプラットフォームの役割は、次世代のアプリケーションを支えることです。ITプラットフォームそのものには価値はなく、その上で稼働するアプリケーションにビジネス上の価値があるからです。
アプリケーションを最適化するためには、アプリケーション自体の最適化と同時に、アプリケーションの周辺に存在するシステム構成要素、つまり、ライブラリ、データベース、OS、ハードウエアなどの最適化も必要です。プロビジョニング・ツールを活用することで、こうした最適化が可能になります。
例えば、プロビジョニング・ツールでは、個々のシステム構成要素に対するバージョン管理やテストの実施が可能です。トライ&エラー方式でテストに取り組むためには、ロール・バック(直前の変更前の状態に戻してやり直す)やロール・フォワード(最初から処理をやり直す)といった機能を備えていることが重要になります。
もちろん、アプリケーション・システムの全体最適化を実現するためには、プロビジョニング・ツールだけでなく、ほかにも数多くのツールを利用しなければなりません。まずはサーバー仮想化ソフトが必要であり、この上で、各種の運用管理ソフトが必要になります。
以下は、オープンソースのツール群を用いて全体最適化を実現するための一例です。
- VMware、Xen、KVMといった、ハイパーバイザ(サーバー仮想化)機能を提供する仮想化基盤
- ハイパーバイザ上に構築される仮想サーバーを動的に管理・配備するクラウド基盤(Amazon EC2やGoGridのようなパブリック・クラウド基盤、もしくは、Eucalyptus、OpenNebula、Nimbus、CloudStackといったプライベート・クラウド基盤)
- 仮想化/クラウド基盤を支える物理インフラ(物理サーバーやネットワークなど)のリソースを監視する、Nagios、Icinga、ZABBIXなどのモニタリング・ツール
- 仮想サーバーを、実際にアプリケーションを動作させられる状態にまで設定する、PuppetやChefなどのプロビジョニング・ツール
- 仮想サーバー環境の上に、実際にアプリケーションをデプロイ(配備)する、CapistranoやFuncなどのアプリケーション・デプロイメント・ツール
これらのツールが、明確な指針の下で、すべて相互的に連携しながら全自動化された時、その時こそ、前述した以下の3要素を実現できる、次世代ITプラットフォームが構築されたことになります。この結果として、管理コストとシステム・リスクが減り、管理時間が短縮されます。
- 全体最適化を前提とした、テンプレート管理型の基盤
- ツールによってシステム運用指針を維持できる、運用管理を自動化した基盤
- 費用対効果が高い、オープンソース型の基盤
図3: 全体最適化を志向した次世代ITプラットフォームの全体像(クリックで拡大) |