0

クラウドにアプリケーションを実装する際に従うべきベストプラクティスを知っている人はいますか?

クラウドに依存しないアプリケーションを構築したいと考えています。したがって、DAC は構成を変更するだけで S3 / AppEngine / Azure に対して動作できるはずです。コードがクラウド プロバイダーに依存しないようにするために、従うべきフレームワークまたは最適なパターンはありますか。

編集: DAC / セッション管理などのさまざまなコンポーネントを抽象化する方法について理解したいと思います。これにより、将来 (クラウド プロバイダーが他の言語のサポートを開始したときに)、あるベンダーから別のベンダーに移行できるようになります。私が理解しているように、Django モデルの代わりに AppEngine のモデルを使用し、Django の代わりに App エンジンのフォームを使用する必要があります。これらは、プロバイダーでアプリにロックされる傾向があります。これを回避する方法はありますか?

4

3 に答える 3

0

AppEngineは、データアクセス用のJDOおよびJPAとともにJ2EEコンテナ仕様を実装します。したがって、Javaを使用する場合は、J2EEアプリをAppEngineとの間で非常に簡単に移動できます。EC2では、サーバーを自分で管理する必要があります。つまり、JBossのような独自のJ2EEサーバーをインストールして設定することになります。クラスタリングとスケーリングにも対処する必要があります。AppEngineがすべてを行います。Azureは厳密に.NET用です。

于 2009-07-13T01:39:47.800 に答える
0

現時点では、構成を変更するだけでこれら3つのクラウド間でアプリケーションを移動できるという目標は実現不可能だと思います。appengine(pythonまたはjava)で実行され、ASP.netでも実行される効率的なコードを作成するのはおそらく難しいでしょう。(誰かが紺碧でdjangoを実行している場合を除いて、これは素晴らしいことです)

1つのコードベースを3つのうち2つ(appengineとEC2、またはAzureとEC2)で動作させることに挑戦するかもしれません。3つすべての中で、AmazonのEC2は最低レベルのサービスであるため、最も柔軟性があります(実行するには、より多くの管理が必要です)。asp.netとSQLサーバーを使用してWindowsボックスを実行し、Azure環境に一致させるか、Javaスタックを実行してAppEngine環境を概算することができます。

于 2009-07-13T03:13:20.217 に答える
0

さまざまな製品に共通点はあまりないように思えます。(たとえば、あなたが言及した3つ....)

  • S3 はマシン イメージ タイプのソリューションです。クラウド内の ESX サーバーを考えてみてください。そのため、アプリは Linux または Windows のマシン イメージのインスタンスにデプロイされるだけです。
  • AppEngine は、Python または Java アプリ用のホスト型アプリ環境です (最近 Java サポートが追加されました)。
  • Azure (コンピューティング) は、多数の追加サービス (メッセージング、BLOB ストレージなど) を備えたホストされた ASP.NET Web アプリに似ています。

したがって、いくつかの共通点はありますが、これらの製品のほとんどの間でのアプリの移行はそれほど簡単ではないと思います. しかし、私はそれが不可能だとも思いません。

編集:実際には嘘をつきます.S3はマシンイメージソリューションではありません.EC2と混同していました. S3 は、ホストされたアプリケーションとは関係のないデータストレージソリューションです。(おそらくホストされたアプリのストレージ ソリューションであることは別として)。

于 2009-07-13T01:23:54.963 に答える