Когда следует использовать следующее: Amazon EC2, Google App Engine, Microsoft Azure и Salesforce.com?

Я спрашиваю об этом в самом общем смысле. Как с точки зрения поставщика и облаком потребителя. Также вопрос не для какого-либо конкретного вида приложения (на самом деле намерение состоит в том, чтобы знать, какой тип приложений/доменов может вписаться в какой из облачной плиты-SaaS PaaS IaaS).

мое понимание до сих пор:

IaaS: Необработанное Оборудование (Процессоры, Сети, Хранилища).

Паас: ОС, программное обеспечение системы, рамки развития, виртуальные Машины.

SaaS: Программные Приложения.

было бы здорово, если Stackoverflower может поделиться своим пониманием и опытом концепции облачных вычислений.

EDIT: хорошо, я поставлю его более конкретным образом -

Amazon EC2: у вас нет контроля над аппаратным уровнем. Но вы можете выбрать образ ОС, Dev Framework (.NET, J2EE, LAMP) и приложение и поместить его на оборудование EC2. Можете ли вы развернуть приложения, построенные с помощью приложения Google Engine или Azure на EC2?

Google App Engine: у вас нет контроля над оборудованием и ОС, и вы получаете определенную платформу Dev для создания своего приложения. Можете ли вы взять любое существующее приложение Java или Python и перенести его в GAE? Или наоборот, могут ли приложения, построенные на GAE, быть извлечены из GAE и портированы на любой сервер приложений, например Websphere или Weblogic?

Azure: у вас нет контроля над оборудованием и ОС, и вы получаете определенную платформу Dev для сборки ваше приложение. Можете ли вы взять любое существующее приложение .NET и перенести его в Azure? Или наоборот, можно ли приложения, построенные на Azure, извлекать из Azure и переносить на любой сервер приложений, например Biztalk?

7 ответов


хороший вопрос! Как вы указываете, различные предложения вписываются в разные категории:

EC2-это инфраструктура как Служба; вы получаете экземпляры VM и делаете с ними, как хотите. Облачные серверы Rackspace более или менее одинаковы.

Azure, App Engine и Salesforce-это платформа как Служба; они предлагают разные уровни интеграции: Azure в значительной степени позволяет запускать произвольные фоновые службы, в то время как App Engine ориентирован на короткий срок задачи обработчика запросов (хотя он также поддерживает очередь задач и запланированные задачи). Я не очень хорошо знаком с предложением Salesforce, но я понимаю, что он похож на App Engine в некоторых отношениях, хотя и более специализирован для своей конкретной ниши.

облачные предложения, которые подпадают под программное обеспечение в качестве сервиса, - это все, от инфраструктурных частей, таких как простая служба хранения Amazon и SimpleDB, до полных приложений, таких как Fog Creek, размещенный FogBugz и конечно, клиент StackExchange.

хорошим общим правилом является то, что чем выше уровень предложения, тем меньше работы вам придется делать, но тем более конкретным он является. Если вы хотите, чтобы баг-трекер, с помощью они явно будут меньше работать; здание один в топ App Engine или Azure-это больше работы, но дает больше гибкости при наращивании на сырье виртуальные машины, такие как EC2-это еще больше работы (довольно много, на самом деле), но обеспечивает еще больше гибкости. Мой общий совет-выбрать высшего уровня, который удовлетворяет вашим требованиям, и построить оттуда.


Это хороший вопрос. Полное раскрытие, поскольку я неравнодушен к Azure, но имею опыт работы с другими.

где я думаю, что Azure выделяется из других, это быстрый переход от prem к облаку. Например -

  • SQL Azure-изменить строку подключения, загрузить DB, go!
  • очереди работают так же, как MSMQ.
  • Blobs в значительной степени blobs любым способом встряхнуть их, но они масштабируются как сумасшедшие.
  • в компонент хранения таблиц хорош, потому что он обеспечивает невероятную масштабируемость для пар имя/значение, но требует некоторого привыкания.
  • Service Bus - мой любимый из сервисов, потому что он позволяет использовать различные коммуникационные парадигмы. Две конечные точки SB сначала пытаются подключиться друг к другу, если они не могут, то они проходят через облако - делает для очень безопасной и масштабируемой обработки, когда брандмауэры, как правило, мешают.
  • список управления доступом-спаренный типично с помощью служебной шины, чтобы убедиться, что правильные люди получают доступ к правильным вещам-подумайте SAML в облаке.

надеюсь, это поможет!


мой облачный опыт в настоящее время ограничен Salesforce.com

для стандартных бизнес-операций и автоматизации он предоставляет значительное количество функций, которые позволяют нам получать приложения и работать очень быстро. Нам особенно выгодно следующее:

  • Безопасность (Администраторы могут контролировать доступ к объектам и полям)
  • Рабочий Процесс И Утверждения
  • автоматическое создание пользовательского интерфейса
  • построенный в отчетности и дашборд
  • вся система (включая наши пользовательские изменения) доступна через веб-службы
  • возможность сделать данные в системе доступными через общедоступные сайты (например, электронная коммерция)
  • большая библиотека сторонних приложений для решения стандартных задач

платформа не решает все проблемы.

Я бы не стал использовать платформу для моделирования атомной электростанции или создания следующего twitter.


основные моменты облачных вычислений, чтобы сэкономить на расходах, заплатив за использование и включить немедленное развертывание вычислительных ресурсов.

затраты не являются чисто x количество центов за экземпляр в час. В стоимость входит техническое обслуживание, разработка, администрирование и т. д. Огромное преимущество cloud, на мой взгляд, заключается в том, чтобы освободить клиентов от необходимости управлять чем-либо, что не входит в сферу их основной бизнес-компетенции. Если я страховка бизнес, я хочу, чтобы мои разработчики сосредоточились на моих страховых проблемах, которые помогают решить потребности моих претензий, ставок и т. д. Я бы предпочел избежать проблем с серверами электронной почты, файловыми серверами, хранилищами документов и администрированием исправлений ОС, пакетов обновления и т. д.

таким образом, на мой взгляд, самые большие преимущества получены от облачных предложений SaaS и PaaS. Следует обращаться к IaaS только тогда, когда PaaS или SaaS имеют серьезные ограничения для конкретных потребностей (т. е. мне нужно установить набор собственных com-компонентов и Azure их не поддерживает).

SaaS хорош для товарных типов приложений, которые не являются основной линией бизнеса для клиента, но являются более полезными. Это ваши типичные системы обмена сообщениями, порталы, хранилища документов, системы электронной почты, CRMs, ERP, Бухгалтерия и т.д. так далее. так далее. Зачем изобретать колесо, написав свой собственный, когда вы можете настроить хорошо поддерживаемый сторонний продукт.

PaaS отлично подходит для основной линии бизнес-программное обеспечение, поддерживающее основное бизнес-предложение компании. Абстрагирует клиентов от необходимости иметь дело с управлением ОС и позволяет клиентам сосредоточиться на разработке бизнес-системы-то, что никто другой не может сделать для клиента.


можно также воспользоваться преимуществами PaaS (скажем, Google App Engine) и расширить его, время от времени и при необходимости, вытащив некоторые виртуальные машины из поставщиков IaaS (например, Amazon), чтобы сделать некоторое количество хруста, а затем просто отправить обратно вывод в Google App Engine.

таким образом, вы получаете лучшее из обоих миров-вы можете быстро разрабатывать масштабируемые приложения в GAE, а затем вы всегда можете увеличить его, запустив любую программу, которую вы хотите от виртуальных машин Amazon.


Это продолжает меняться, теперь Windows Azure также поддерживает VM, поэтому теперь это также поставщик IaaS.


теперь как насчет бесплатного Amazon EC2 в течение года, чтобы сделать лучшее сравнение. Проверить это.

http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/