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

88

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

На данный момент я понимаю:

IaaS: сырое оборудование (процессоры, сети, хранилище).

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

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

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

РЕДАКТИРОВАТЬ: Хорошо, я поставлю это более конкретным образом -

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

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

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

user32262
источник
2
Вы забыли Rackspace Cloud / Rackspace Cloud Servers
phoebus
2
Это интересный вопрос, но, возможно, больше подходит для ServerFault, поскольку он больше касается того, как распространять серверные приложения, а не просто писать его. Может быть, вам стоит опубликовать второй пост в SF, который относится к этому, и добавить ссылку отсюда на Q в SF. Таким образом, вы получите лучшее представление как от программистов, так и от системных администраторов!
Вим тен Бринк
@phoebus также является менее известным CloudSigma, но очень масштабируемым.
AwesomeUser

Ответы:

58

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

EC2 - «Инфраструктура как услуга»; вы получаете экземпляры ВМ и делаете с ними, как хотите. Облачные серверы Rackspace более или менее похожи.

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

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

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

Ник Джонсон
источник
привет, в настоящее время мы используем Godaddy и arvixe, но мы планируем перейти на Amazon AWS или Azure, я читал отсюда, что для AWS требуется много изменений в коде, но как интернет-магазин розничной торговли мы не хотим никаких изменений в код, потому что это требует времени, поэтому в этой ситуации какой хостинг лучше всего выбрать?
Shaijut
13

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

Я считаю, что Azure отличается от других быстрым переходом от локальной среды к облаку. Например -

  • SQL Azure - измените строку подключения, загрузите БД, вперед!
  • Очереди во многом похожи на MSMQ.
  • В любом случае капли - это в значительной степени капли, но они масштабируются как сумасшедшие.
  • Компонент хранения таблиц хорош тем, что обеспечивает невероятную масштабируемость для пар имя / значение, но требует некоторого привыкания.
  • Служебная шина - моя любимая из служб, поскольку она позволяет использовать различные парадигмы связи. Две конечные точки SB сначала пытаются подключиться друг к другу, если они не могут, затем они маршрутизируют через облако, что обеспечивает очень безопасную и масштабируемую обработку, когда брандмауэры, как правило, мешают.
  • Список управления доступом - обычно в паре со служебной шиной, чтобы убедиться, что нужные люди получают доступ к нужным вещам - подумайте о SAML в облаке.

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

Дерек
источник
8

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

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

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

Платформа НЕ решает всех проблем.

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

Крейг Харрис
источник
6

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

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

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

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

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

Игорек
источник
3

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

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

joemar.ct
источник
Звучит интересно @ joemar.ct! Что это за задачи? Где я могу найти учебники, как это сделать?
Andru
2

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

Альберт Ченг
источник