Как писать приложения, переносимые на облачные платформы?
Например, есть облачная платформа, и я разрабатываю конкретное приложение для этой облачной платформы. Позже я решил перенести это приложение в облако другой платформы. Если существуют типичные стандарты облачной платформы, приложение может быть легко перенесено между платформами.
Не существует стандарта для определения «облака», не говоря уже о стандартах поставщиков. Большинство из них основаны на какой-то виртуализации, и, хотя вы можете прыгнуть через несколько обручей, чтобы, скажем, получить образы VMWare для запуска на Virtualbox (просто пример), нет способа просто охватить это.
Лучше всего иметь приложение на основе веб-сервера, а затем сделать его практически независимым от платформы. Затем вам просто нужно позаботиться о настройке новой виртуальной машины и веб-сервера и перенести оттуда приложение. Насколько я знаю (и другие меня поправят, если я ошибаюсь, без сомнения), вы не можете просто вставить систему, размещенную на Amazon, в «облачную платформу» Microsoft и ожидать, что она заработает.
Сейчас «Облако» - это просто маркетинговый мем, на который пользователи могут рассчитывать как на нечто волшебное. "Ура облако!"
Так что это зависит от платформы.
Для платформы как услуги - облака, в котором вы предоставляете свой собственный код - вы обычно можете написать это на Java, или RoR, или $ language_du_jour, и ряд облачных провайдеров могут запустить это (например, OpenShift, Heroku, CloudFoundry)
Для инфраструктуры как услуги - вы можете обеспечить переносимость с помощью инструментов управления конфигурацией, таких как Chef и Puppet, - в такой ситуации основная платформа виртуализации перестает быть проблемой, ОС сама является вашей платформой, а управление конфигурацией делает перемещение между различными поставщиками относительно тривиальным.
Как отмечают другие, стандартного определения облака не существует, но есть де-факто стандарт, который был установлен успехами Веб-сервисы Amazon по крайней мере для PaaS часть чего либо облако. В той степени, в которой вы заботитесь только о API AWS и хотите писать свои услуги, надеюсь, переносимым способом, тогда вам следует подумать об использовании Бото для написания вашего программного обеспечения и использования OpenStack, OpenNebula, и / или Эвкалипт для реализации ваших услуг.