5

ですから、私は最終的に、クラウドベースのエンタープライズアプリケーションがどのように機能するか、そしてそれらのアーキテクチャが通常どのように見えるかを把握しようとしています。アマゾンのようなクラウドプロバイダーを使用しているとしましょう。私は、アプリケーションのニーズに応じてソフトウェアのスタックを収容する1台以上の仮想マシンにお金を払っていると思います(間違っている場合は訂正してください)。

jcloudsTerracottaのようなフレームワークがどのように画像に適合するかについて私は混乱しています。jcloudsは、自分自身を「クラウドの使用を開始するのに役立つオープンソースライブラリ」として宣伝し、意味のある例がなければあまり意味のない多数の巨大な機能をリストアップしています。Terracottaは、大規模なクラスタリングフレームワークとしての地位を誇っています。なぜjcloudsのようなものを使用する必要があるのですか?どのような具体的で具体的なシナリオに使用しますか?

繰り返しになりますが、Amazonをクラウドプロバイダーとして使用している場合、それらはすでに大規模に拡張されているのではないでしょうか。クラウドにテラコッタが必要なのはなぜですか?

4

2 に答える 2

5

これで、Linuxマシン(仮想インスタンス)ができて、正常に動作しています。しかし、突然スケーリングする必要があります。つまり、需要が高くなるにつれてより多くのインスタンスを起動し、需要が低下するにつれてそれらをシャットダウンする必要があります。つまり、基本的にAmazonのAPIを使用してEC2インスタンスを起動し、管理コンソールから実行できるすべてのこと(およびそれ以上)をプロビジョニングします。しかし、アマゾンのAPIを使用すると、基本的にアマゾンに手を結びます。JCloudなどのフレームワークでは、次のようになります(これは擬似コードです)。

CloudProvider provider = new CloudProvider.getProvider("Amazon"); 
provider.authenticate("username", "password");
provider.startInstance("some option", numOfInstances);

つまり、スケーリングする必要があり、JCloudを使用してAmazonにデプロイされているとしましょう-上記のようなものを使用しますが、突然、AmazonからRackspaceに移行することにしました。そのため、アプリのすべてのロジックを再設計する代わりに、インスタンスをプロビジョニングして操作することで、

CloudProvider provider = new CloudProvider.getProvider("Amazon");

のようなものに

CloudProvider provider = new CloudProvider.getProvider("RackSpace");

そして、authenticateメソッドとstartInstanceを引き続き使用しますが、ライブラリは、このライブラリメソッドを特定のクラウドプロバイダーがサポートする特定のメソッドに実際に「変換」する方法を採用します。基本的に、これは基盤となるクラウドプロバイダーを処理する必要のあるコードを抽象化する方法です。サービスを提供している限り、誰であるかは気にしないでください。

于 2011-09-28T19:11:11.727 に答える
5

アプリを「クラウドに」取り込むには、少なくとも2つの側面があります。

まず、ノードを管理する必要があります。すべてのノードにアプリをデプロイし、それらを監視し、新しいノードを起動して実際にスケーリングし、障害が発生したノードを検出して置き換え、新しいアプリバージョンの更新シナリオを実現します。通常、これはツールなしでは合理的に行うことはできません。JCloudsは、これらのポイントのいくつかをカバーしているため、ここに適合します。

次に、アプリ自体が「クラウド対応」である必要があります。任意のアプリを取得して複数のノードに配置し、適切に拡張できることを期待することはできません。ここでの主なポイントは、すべてのノード(SQLデータベース、NoSQLデータストア、場合によってはセッションレプリケーションなど)間で共有データへのアクセスをスケーリングする方法を定義することです。通常、共有状態を管理するには、既存のフレームワーク/アプリサーバー/データストアを使用します。Terracottaはその1つであり、基本的に、複数のノード上のJVMインスタンス間でメモリを共有するための効率的な方法を提供します。

于 2011-09-28T22:36:51.240 に答える