クラウドベースのシステムのベンダーロックインのリスクを軽減する最良の方法は何かを理解したいと思います。クラウドロックインのリスクを最小限に抑えるためのアーキテクチャ戦略?
たとえば、Amazon EC2やWindows Azureなど、さまざまなシステムを導入したいと考えていますが、必要に応じてこれらのシステムを別のクラウドベンダーに移行するコストを最小限に抑えたい。
少なくとも、ベンダー固有のソリューション(Amazon Queue Serviceなど)に依存するほど、私は本質的にロックされています(少なくとも私はそうだと思いますが)。このリスクをより良く理解してください。
これを軽減するためのアーキテクチャ戦略はありますか(たとえば、スクリプトが別のマップへの移植性が高いため、マップの削減に頼っている) O/Sや他のものより優れたスタックがあるか(Linux、LAMP?) JCloudsを使用していますか?
理想的には、たとえば、EC2にデプロイできるがAzureまたはApp Engine(またはその逆)に簡単に移行できる仮想システムを設計したいと考えています。
私は一般的にJavaで書いていますが、ScalaとPython(またはJython)の選択的な使用を考えていますが、一般的にはまだJVMベースのままです。私は多くの並列処理を行う傾向があり、SQLと非SQL(ただし、NoSQLは必要ない)ストレージとデータ操作技術の両方に頼っています。
ありがとうございます。私はあまりにも非現実的ではないと思う。私の意見で
ワークロードをVM上で完全にハンドブックすると、PaaSが提供するメリットが失われてしまいます。 IMHO、ロックインを避けるためにIaaSに切り替えるのは正しい方法ではないかもしれません。問題のためのPaaSの解決要素の抽象化は、@Igorekの応答をどのように解釈するかです。たとえば、キューのプロバイダを使用すること、すなわち、データが書き込まれ、キューから読み出される方法を抽象化することを考える。これは、各クラウドプラットフォームのプロバイダーを記述する必要があることを意味しますが、そのソリューションはアーキテクチャ上免責されます。 –