我想了解什么是减轻基于云的系统供应商锁定风险的最佳方法。
例如,我想将大量不同的系统部署到 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)存储和数据操作技术。
提前致谢。希望我在这里不会太不切实际。