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

StackOverflow https://stackoverflow.com/questions/1518594

Вопрос

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

Мое понимание на данный момент таково:

IaaS:Необработанное аппаратное обеспечение (Процессоры, Сети, Хранилища).

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

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

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

Редактировать:Хорошо, я изложу это более конкретно -

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

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

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

Это было полезно?

Решение

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

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, требует еще больше работы (на самом деле, намного больше), но обеспечивает еще большую универсальность.Мой общий совет - выбрать платформу самого высокого уровня, которая по-прежнему соответствует вашим требованиям, и строить на ее основе.

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ситуация постоянно меняется, теперь Windows Azure также поддерживает виртуальную машину, так что теперь она также является поставщиком IaaS.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top