クラウドベースのシステムのベンダー ロックインのリスクを軽減する最善の方法を理解したいと思います。
たとえば、Amazon EC2 や Windows Azure などに多数の異なるシステムをデプロイしたいと考えていますが、必要に応じてそれらのシステムを代替のクラウド ベンダーに移行するコストを最小限に抑えたいと考えています。
少なくとも、ベンダー固有のソリューション (Amazon Queue Service など) に依存すればするほど、本質的に閉じ込められているように思えます (少なくとも私はそう思います)。しかし、このリスクをよりよく理解したいと思います。そしてそれ以上。
これを軽減するために使用できるアーキテクチャ戦略はありますか (たとえば、私のスクリプトは別の map reduce クラウド環境に移植できるため、map reduce に依存します)? 他のものよりも優れた O/S やスタックはありますか (Linux、LAMP?)。JClouds の使用は役に立ちますか?
理想的には、たとえば EC2 にデプロイできる仮想システムを設計したいと考えていますが、Azure または App Engine に簡単に移行できます (またはその逆)。
私は通常 Java で書いていますが、Scala と Python (または Jython) を選択的に使用することを検討しており、一般的にはまだ JVM ベースのままでいようとしています。私は多くの並列処理を行う傾向があり、SQL と非 SQL (ただし NoSQL は必要ありません) の両方のストレージとデータ操作テクノロジに依存しています。
前もって感謝します。ここで私が非現実的すぎないことを願っています。