Я хотел бы понять, как лучше всего снизить риск привязки к поставщику для облачных систем.
Например, я хотел бы развернуть множество различных систем, скажем, в Amazon EC2 или Windows Azure, но я бы хотел минимизировать стоимость миграции этих систем на альтернативного поставщика облачных вычислений, если / когда это необходимо.
По крайней мере, кажется, что чем больше я полагаюсь на решения для конкретных поставщиков (например, Amazon Queue Service), тем больше я по своей сути заблокирован (по крайней мере, мне так кажется), но я хотел бы понять этот риск лучше и выше его.
Существуют ли архитектурные стратегии, которые я могу использовать для смягчения этого (например, полагаться на уменьшение карты, так как мои сценарии будут переносимы на другую карту, уменьшающую облачную среду)? Есть ли O / S или стеки, которые лучше, чем другие (Linux, LAMP?). Полезно ли использовать JClouds?
В идеале я хотел бы разработать виртуальные системы, которые можно развернуть, например, в EC2, но затем легко перенести в Azure или App Engine (или наоборот).
Я обычно пишу на Java, но рассматриваю выборочное использование Scala и Python (или Jython) и, как правило, все еще пытаюсь оставаться на основе JVM. Я склонен выполнять много параллельной обработки и полагаюсь на технологии хранения и обработки данных как SQL, так и не SQL (но не обязательно NoSQL).
Заранее спасибо. Надеюсь, я не слишком нереалистичен.