BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Engine Yard が先導するパブリッククラウド用のローカル開発環境

Engine Yard が先導するパブリッククラウド用のローカル開発環境

原文(投稿日:2012/12/20)へのリンク

 

プラットフォーム・アズ・ア・サービス(PaaS)プロバイダのEngine Yardが先月 "クラウド・イン・ア・ボックス" 製品をリリースした。アプリケーションをパブリッククラウドに公開する前に,開発者がローカルでテストを行うためのプラットフォームだ。専用のクラウド環境を使ったアプリケーションの事前テストが手軽に実行できるのと同時に,開発期間の短縮も可能な方法として,現在では複数のクラウドプロバイダが,このデプロイメントモデルを採用している。

Engine Yard LocalはEngine Yardのパブリッククラウドと同じコアコンポーネントとインターフェースを備えていて,独立した仮想マシンとして使用することができる。Engine Yardによると,"Engine Yard CloudおよびEngine Yard Managedインスタンスで使用しているものと同じオペレーティングシステム,システム構成,プロビジョニングシステムとソフトウェアパッケージツリー" を再現しているということだ。製品リリースをアナウンスするブログ記事の中で,同社はこの製品の存在価値について次のように説明する。

Engine Yard Localは,動作しない部分を見つけるだけのために,アカウントへのサインアップから始まって,すべての設定やアプリケーションのデプロイ,インスタンス課金の支払いまで一連のプロセスを実施しなければならないような状況から,あなたを救う便利な方法として機能します。Engine Yard Localを使用すれば,あたかもクラウド上で作業しているような,アプリケーションの継続的なテストが可能です。違っているのは,制限のまったくないフリーなシミュレーションである,という点だけです。

Engine Yard Localは Vagrant を使って実現されている。Vagrantは,仮想マシン内に構築した開発環境を提供するオープンソースツールである。ローカルマシンにRubyとOracle Virtual Boxをインストールするだけで,Engine Yard Localの実行と開発環境ターゲットとしての設定が可能になる。Engine Yard Live という関連製品 — まだリリースされていないが — を使用すれば,インターネット経由でEngine Yard Local インスタンスに共有アクセスすることも可能だ。

現在では多数のPaaSプロバイダがこの種の開発環境を提供して,クラウドに公開する前にソフトウェアをテストできるようにしている。Microsoft の Windows Azure SDK でコンピューティングとストレージのエミュレータをインストールすれば,開発者はこれを使って,Microsoftのクラウドを自身のローカルマシン上でシミュレートすることが可能になる。ただしEngine Yard Localとは異なり,パーミッションや振る舞いに関しては,パブリックなWindows Azureクラウドとはさまざまな部分に違いがある。VMwareのCloud Foundry PaaSにも,Engine Yard Localに非常によく似たモデルがある。同社はCloud Foundry準拠のPaaSプロバイダ全般のサービスや動作,インターフェースなどを再現する完全装備の仮想マシンとして,Micro Cloud Foundryを提供している。

Engine Yard Localを試しみたいならば,同社のKnowledge Baseアーティクルを参照するのがよいだろう。インストールからテストまで,すべてのステップが説明されている。製品に対する疑問は,同社のQ&Aフォーラムに問い合わせることができる。InfoQでは今回のリリースに関してさらに詳細を知るべく,Engine Yardに対していくつかの質問を行った。

InfoQ: サポート対象のオペレーティングシステムやプラットフォームフレームワークは何でしょうか。それらを選択した理由についても教えてください。

Engine Yard: 私たちEngine Yardは,注目されている技術については絶えず評価を行っています。さらにビジネスや開発のニーズを満足するために何が重要なのかを知るため,ユーザのフィードバックにも耳を傾けています。

現在のEngine Yard Local 1.0がサポートしているのはEngine Yardのデフォルトスタックです。これはGentooオペレーティングシステム,Ruby 1.9.3,Nginx,Passenger 3,PostgreSQLで構成されています。動作対象のオペレーティングシステムはWindows,OSX,Linuxです。

Engine Yard PaaSはさまざまなオペレーティングシステム,プログラム言語,ミドルウェア,データベースをサポートします。ソフトウェアスタックの完全なリストはこちらにあります: https://support.cloud.engineyard.com/entries/21009842-engine-yard-technology-stack

InfoQ: Engine Yard Localのメリットを活用するための,一般的なワークフロー (例えば作成/コミット/ビルド/デプロイというような) は,どのようなものになるのでしょうか。

Engine Yard: Engine Yard Localは,Engine Yard Cloudの環境を開発者のローカルマシン上に実現します。開発者はEngine Yard Local仮想マシン上で,自身のRailsアプリケーションの開発とテストを行うことができます。完了したら修正内容をコミットして,それからEngine Yard Cloudにデプロイすればよいのです。一般的なワークフローとしては,作成/テスト/コミット/デプロイといったところでしょうね。

開発者インストールしたEngine Yard Localは,どのRailsアプリケーションからも利用することができます。例えば,新規作成したRailsアプリを移動して実行するためには,次のようにします。

$ rails new myapp

$ cd myapp

$ ey-local up

これによってEngine Yardスタックの動作する仮想マシンが起動し,アプリケーションが開始されます。http://127.0.0.1:8080/を参照すれば,ローカルマシン上でアプリケーションが動作しているのを確認したり,アプリケーションを操作して,それが要件を満たしていることを確認できます。

修正が適当であると確認できたならば,それを自分のGitレポジトリにコミットした後に,GitHub(あるいは他のレポジトリ)にプッシュします。

$ git add -A && git commit "It works"

$ git push origin master

ここまでの作業が完了すれば,継続的インテグレーションツールなど他のタスクを起動したり,変更コードをEngine Yard Cloudにデプロイするなどの操作が可能です。

InfoQ: Engine Yard Localの実現する開発環境は,開発者が現在,オンプレミスあるいはクラウドアプリケーションを構築している方法の論理的拡張なのでしょうか。

Engine Yard: 最近の開発者はアプリケーションのテストをローカルな環境か,あるいは/またはクラウドプロバイダを使ったテスト用の環境で行っています。Engine Yard Localはアプリケーションの開発とテストを,ローカルで実行可能にすると同時に,そのプロセスをさらに効果的なものにしてくれます。オンプレミスおよびクラウドアプリケーションのいずれにも利用可能です。

InfoQ: Engine Yard Localに適さないユースケースには,どのようなものがあるでしょうか (例えばパフォーマンステストなど)。何らかの完全な成果を得るために,Engine Yardでアプリを実行しなければならないのは,どのような場合なのでしょう。

Engine Yard: 現在のEngine Yard Localは,複数の仮想マシンを対象としていません。そのような条件が必要な場合には,実環境ではなくテスト環境でアプリケーションを実行した方がよいでしょう。そしてアプリケーションがマルチVM製品環境にスケール可能な状態になった時点で,Engine Yard Cloudにデプロイすればよいのです。

InfoQ: クラウドへの移行前に "試行" してみたいと考えている潜在的ユーザに対して,このツールがオンプレミスのアプリケーションの移行を促進する存在になるでしょうか。

Engine Yard: もちろんです。Engine Yard Localは,クラウドへの移行プロセスを合理的なものにします。デプロイ時のトラブルシュートが簡単になるのです。 ユーザがサインアップするインスタンスは,Engine Yard Cloud環境とまったく同じ技術を使用した,スタックコンポーネントを備えています。デプロイの準備ができたらボタンを押すだけで,アプリをクラウドにデプロイすることができるのです。

 

この記事に星をつける

おすすめ度
スタイル

BT