ITpro Special
週間WEEKLY ITpro Special ITpro

アジャイル開発環境を一瞬で手に入れる 次世代PaaS基盤「OpenShift」

一般的にアジャイル開発環境を構築するには、高度な技術力が必要だ。開発言語に適したミドルウエアやデータベースの準備だけでなく、アジャイルな開発スタイルを実現するためにJenkinsなどをインストールし、ビルド環境とソースコード管理環境、テスト環境を統合し、継続的インテグレーション(CI)環境を構築しなければならない。また、これがチーム開発となるとなおさら複雑だ。多くの場合、これらの環境構築はマニュアルで構築されているため、ミスも多い。レッドハットが提供する次世代PaaS基盤「OpenShift」は、多様な開発言語、ミドルウエアとフレームワーク、データベースに対応したアジャイル開発環境とアプリケーションの実行基盤だ。企業アプリケーションにおけるアジャイル開発に大きな革新をもたらす起爆剤になりそうだ。

開発環境の構築に6~9カ月間も

 米国のある大手IT企業では、アプリケーションを開発する部門が開発環境の申請を行ってから環境が用意されるまで、6~9カ月間待たされていた。その間に、アプリケーション利用者側の要求や市場の潮目が変わってしまう可能性がないとはいえない。しびれを切らした開発部門は、外部のクラウドサービスを利用してアプリケーションを開発し始めた。あとで調べてみると、社内で把握できないシャドーITの割合が20%を超えていたことが判明した。このIT企業では、迅速かつ最適なアプリケーション開発環境を提供すること、そしてITガバナンスを強化するために「DevOps」を実践する必要性があると判断した。

 DevOpsとは、開発部門と運用部門のメンバーが連携・協力し、ビジネスに求められるシステムやアプリケーションを短期間でリリースを可能にする手法だ。ビルドとテスト工程の自動化を支援するCI(継続的インテグレーション)を短期間で繰り返し行う開発スタイルに特色があり、開発されたアプリケーションの仕様と運用側および利用者側のニーズの乖離を防ぐ、アジャイル開発の実現手段として注目されている。

ビジネスの要求に迅速に応えられるDevOps

PaaSがDevOpsを加速

 上記のDevOpsで追い風になっているのが、PaaS(Platform as a Service)の存在だ。PaaSとは、クラウド上にアプリケーションの開発と実行基盤を包括的なサービスとして提供している。PaaSでは、アプリケーションの開発から運用までに必要な環境がクラウド環境にシームレスに用意されているため、アプリケーションの開発およびテスト、本番環境を手際よく切り替えたり、変更・追加要望のフィードバックの反映を行ったりすることが容易である。

 そのPaaSの中でも頭角を現しているのが「OpenShift」である。なぜ、注目されるのか。

 振り返ると、ここ数年主流であるアプリケーション環境は、その開発環境、テスト環境、ステージング環境、そして本番環境などをそれぞれ別に仮想化基盤の上に構築するアプローチだ。通常、それぞれの環境用に仮想基盤を用意し、OSをインストール、Web/AP/DBサーバーをその上にセットアップする。同一環境にするため、各種設定やパラメータの確認に長時間かかるのは避けられなかった。

 これらの環境を一つに同居させることも技術的にはできる。ただし、TCP/IPのポート番号の重複回避やライブラリの衝突回避などといったリソース競合のための防止設定、ドメインを意識しないで済む仮想ホスティングの準備などが不可欠だ。その結果として環境全体がむしろ複雑になる。これらの制約を避けるために、昨今の潤沢なハードウエア性能が利用できることを理由に、結果的に複数の環境を仮想基盤に作ってしまっているというのが一般的な現状だ。しかし、このような環境構築を続けているのでは、開発プロジェクトがいくつも並走してくると毎度、各種設定を行う多くの時間とマンパワーをそこに割かなければならない。もっと効率的な環境構築の方法はないのだろうか。

 実は、レッドハットが提供するOpenShiftは、この問題を簡単に解決する。OpenShiftでは、ギアと呼ばれるコンテナにカートリッジと呼ばれるWebフレームワークやミドルウエア、データベースなどのアプリケーション基盤をそれぞれ割り当て、複数のRed Hat Enterprise Linuxで構成されるOpenShift PaaS環境に自動的に割り当ててくれる。この作業は、すべてPaaS基盤がすべて自動的にやってくれるので手間はそれほどかからない。なお、それぞれのギアにカートリッジでラッピングされたアプリケーションを割り当てることで、リソース競合を排除したアプリケーションの独立性を確保している。つまり、上述しているような仮想環境が一切不要になっていることに気付いて欲しい。PaaS環境を利用したい開発者は、その開発者が必要な環境を選ぶだけだ。もちろん、OpenShift PaaSで構築されたアプリケーション環境は、DevOpsを実現するためのソースコード管理機能、ビルド機能、Jenkinsとテスト環境を統合したCI環境も自動的に構築されている。開発者は、使い慣れた統合開発環境を利用して、OpenShift PaaS環境に構築されたソースコード管理環境に開発したアプリケーションコードをプッシュするだけだ。OpenShift環境にプッシュされたアプリケーションのソースコードは、その場ですぐにビルドされ、ユニットテストが自動的に起動、テストコードが終了するまでJenkinsによって監視される。テストが見事に成功した場合は、ステージング環境や本番環境にそのアプリケーションが自動的に配備される。万が一に、テストに失敗した場合、その失敗したテストシナリオがアプリケーション開発者に自動的に通知される。

 このようにOpenShiftを使えば、迅速かつ容易にアプリケーションを開発することができるだけでなく、継続的なインテグレーションが必然的に導入されることで、開発されたアプリケーションの品質向上にも寄与することができる環境になるというわけだ。さらに、このようなアプリケーション開発環境が、ものの5分程度という驚くほどの短時間で手に入れることができるのだ。今までDevOpsを実践したくても環境構築の手間や高度な技術者が必要だったプロジェクトマネジャーにとってみれば、喉から手が出るほど欲しい環境に違いない。

OpenShiftでクラウドアプリを高速開発

シームレスな環境を構築するPaaS

 OpenShiftには現在、3種類のラインアップがある。まずはJava、Ruby、PHP、Perl、Pythonなど複数の言語だけでなく、MySQLやMongoDB(もちろん、Oracleなどの商用データベースも利用できる)など複数のデータベースなどに対応し、Red Hat Enterprise Linux(RHEL)とともにオンプレミス環境向けに提供される「OpenShift Enterprise」、もう一つが、レッドハットが提供するパブリックPaaSとして展開される「OpenShift Online」、そしてOSSのコミュニティーによって運営される「OpenShift Origin」である。

 冒頭に紹介した悩める大手IT企業は、その後「OpenShift Enterprise」を導入し、375人の開発者が利用するPaaS環境を構築している。今後は1000人規模まで拡張する予定だという。一つのOpenShiftのPaaS環境は、複数のRHELのインスタンスで構成されている。そのため、アプリケーションの実体が動作するギアのリソースが足りなくなってきた場合は、OpenShiftのPaaSノードとして新しいRHELのインスタンスを追加すればよいだけである。OpenShiftは比較的余裕のあるノードにギアを自動的に集約する機能も持っており、新しく追加されたOpenShiftのPaaSノード(RHELインスタンス)にギアを自動的に分散する。結果的にスケールアウト可能で高密度なマルチテナント環境を簡単に維持できるわけだ。

 また、開発の担当者は、実行環境を心配することなく即座に開発コーディングに着手できる。OpenShift PaaSに自動的に構築されたソースコード管理システム、Git環境に対してSSHによってセキュアに保護されたGitプロトコルを使い、更新したアプリケーションコードをプッシュする。そのプッシュをトリガーに、ビルド管理のMaven、CIツールのJenkinsが即座にコードのビルド、テスト、配備を自動的に行う。

 このようにOpenShiftが提供するPaaS環境は、自動的にDevOps環境も提供する。そのため、DevOps環境を必然的に手に入れることができるのである。そのため、OpenShiftを利用することで、結果的にエンタープライズアプリケーションにおけるアジャイル開発はメインストリームになっていくだろう。

 次回はさらに、OpenShiftのアドバンテージとJBossとの関連、さらに次バージョンにおけるDocker連携について解説したい。

各種ツールが標準で備わっているOpenShift
お問い合わせ
  • レッドハット株式会社

    セールスオペレーションセンター SOC
    TEL 0120-266-086
    URL http://www.jp.redhat.com/
    メールでのお問い合わせはこちら

    〒150-0013 東京都渋谷区恵比寿4-1-18 恵比寿ネオナート