Могу ли я переместить мое приложение asp.net в облако? - PullRequest
0 голосов
/ 02 марта 2012

Наша компания думает о переходе в облако.Будем ли мы по-прежнему соответствовать всем нашим текущим требованиям (ниже).Мы хотим иметь возможность легко масштабироваться в будущем без больших затрат.

  • 5 сайтов ASP.net 4.0, работающих (с использованием баз данных sql, см. Ниже)
  • SQL Server 2008 Express (8 баз данных на этом)
  • 2 Службы планировщика работают (отправлять ночные отчеты по электронной почте, например, новые заказы в дБ)
  • MongoDB и Memcached также установлены на сервере

В настоящее время сайты находятся на отдельном сервере от сервера базы данных по соображениям безопасности.

Мы думали о Windows Azure и Amazon Web Services (AWS) в качестве поставщиков,что лучше всего соответствует нашим требованиям?

Есть ли другие факторы, которые мы должны учитывать?

Ответы [ 6 ]

2 голосов
/ 02 марта 2012

Re: базы данных SQL: в Windows Azure это будет соответствовать SQL Azure.Расходы начинаются с 5 долларов в месяц для экземпляра до 100 МБ - и доходят до 150 ГБ - и выходят за рамки федерации.

Re: 5 сайтов ASP.net 4.0, работающих: эти карты естественным образом включаются в веб-роли Windows Azure.«Малый» экземпляр стоит $ 0,12 / час / экземпляр, и вам обычно требуется два экземпляра (чтобы избежать единой точки отказа для нескольких сценариев).В зависимости от вашей нагрузки вы можете разместить все 5 сайтов в одном экземпляре.Если у вас очень мало сайтов использования, рассмотрите «очень маленький» экземпляр за $ 0,05 / час / экземпляр.

Re: В настоящее время сайты находятся на отдельном сервере от сервера базы данных по соображениям безопасности: конечно, это также выполнимо.

Re: 2 Службы планировщика работают: Запуск служб Windows не проблема.

Re: отправка ночных отчетов по электронной почтенапример, новые заказы в db: Нет проблем с выполнением, хотя это не запекается в Windows Azure напрямую, но есть много простых способов сделать это (даже бесплатно, например, через SendGrid ).

Re: Мы хотим, чтобы в будущем можно было легко масштабировать без больших затрат: вам нужно будет посчитать ваши фактические затраты, но Windows Azure наверняка сможет масштабироваться.

Re: MongoDB и Memcache также установлены на сервере: Оба они могут быть запущены в Azure.Проверьте https://github.com/mongodb/mongo для MongoDB.Также доступна служба Azure Caching (управляемая для вас).

Re: Мы думали о Azure и Amazon как о поставщиках, которые наилучшим образом соответствуют нашим требованиям: Они функционально очень похожи (по возможностям и стоимости), с некоторыми примечательными отличиями.

  1. Windows Azure - это платформа как услуга, поэтому вам не нужно беспокоиться о виртуальных машинах, а о приложениях.Другими словами, вы загружаете свой (в основном) пакет приложений Zipped в облако для исполнения.С Amazon вы будете иметь дело с виртуальной машиной самостоятельно.В Azure вы получаете копию Windows Server 2008, которая управляется для вас, но вы также можете делать с ней административные действия, если это необходимо.Это гораздо меньше преимущества, если ваше приложение является старой грязной установкой, которая не очень чистая (хотя, в любом случае, она не может быть хорошим облачным кандидатом).
  2. В Windows Azure есть эмулятор, который прекрасно работает- F5 прямо из Visual Studio для работы с системой хранения и виртуальными машинами и более популярными функциями.

Re: Есть ли другие факторы, которые мы должны учитывать: Да.С любым облачным приложением вам нужно быть готовым к масштабированию (а не к увеличению), связанному с временными повторными попытками (вам может потребоваться повторить операцию для облачной службы - любой облачной службы).Преимущества этого - гораздо лучшая (и более рентабельная) масштабируемость и более высокая надежность (когда вы работаете на узлах, у вас нет единой точки отказа).Обязательно поймите, когда и где хранилище на ВМ является постоянным по сравнению с временным.Есть и другие соображения, но это основные.

Возможно, вы захотите проверить калькулятор цен Windows Azure .

Удачи!И добро пожаловать в облако.

1 голос
/ 02 марта 2012

Рассматривали ли вы AppHarbour ?Он имеет Memcached , MongoDB , SQL Server и , т. Е. , и быстрее развертывается, чем Azure.Мне нравится Azure, но есть довольно крутая кривая обучения, и я обнаружил, что соединение с SQL Azure довольно плохое, что означает реорганизацию вашего DAL для использования чего-то вроде SQL Transient Failure Library = что-то вроде ошибки для существующих проектов.

В AppHarbour нет хранилища BLOB-объектов - поэтому при загрузке файлов вам потребуется использовать хранилище BLOB-объектов Azure или Amazon S3 или какой-либо другой аналог.

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

1 голос
/ 02 марта 2012

за исключением вопроса о масштабировании и двух физических серверов, вы можете переместить эту функциональность в размещенную среду, и технически вы окажетесь в «облаке». Это может быть выделенный или VPS (виртуальный частный сервер), или даже общий сервер, если вы маленький.

Они могут позволить рост с течением времени ... вам просто нужно обновить то, что у вас есть с провайдером.

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

Поскольку вы используете SQL Express, помните, что каждая база данных ограничена 8 ГБ. Так что это ограничит ваш рост в какой-то момент. Это повлечет за собой обновление с Express до обычного SQL, если вы не хотите что-либо реорганизовывать.

0 голосов
/ 03 марта 2012

codingoutloud дал очень подробный ответ. Я хотел бы добавить два очень важных соображения, которые следует учитывать при переносе любого приложения в Azure (или, действительно, многих других облачных провайдеров).

Местное государство
В обычном Azure они оставляют за собой право в любой момент закрыть любой экземпляр роли, чтобы переместить или обновить ее. Это означает, что вам всегда нужно как минимум два экземпляра какой-либо одной роли, и они будут прозрачно распределены по нагрузке. Если ваши текущие веб-сайты в настоящее время работают на отдельных серверах, то они могут полагаться на состояние сеанса или файлы в локальных каталогах и т. Д. Теперь есть способы обойти это (например, перевод состояния сеанса в SQL, использование поставщика cookie для временных данных, использование общего ресурса). диск для файлов и т. д.) или, действительно, обойдя множество преимуществ Azure и используя их концепции «виртуального сервера», что означает, что вы не получите преимуществ от масштабирования и т. д. Но для сайтов, которые сильно зависят от локального государства, может быть сложно перейти в облако.

Часовые пояса
Все серверы Azure работают по времени UTC. Если вы привыкли работать на выделенных серверах, обслуживающих пользователей из одного часового пояса, есть вероятность, что вы используете такие вещи, как DateTime.Now (), которые на самом деле не будут соответствовать желанию пользователя.

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

Как уже упоминалось в другом месте, есть кривая обучения в Azure, и каким-то образом документация - как бы она ни была многочисленна - просто не совсем помогает по какой-то причине. Однако, как только вы это получите, я нахожу Azure действительно хорошим, и есть множество тонких функций, которые помогут вам создавать масштабируемые решения, такие как вся инфраструктура очередей, хранилище больших двоичных объектов и хранилище таблиц. В некотором смысле обучение затрудняется из-за слишком большого выбора.

Удачи!

0 голосов
/ 02 марта 2012

Все требования, которые вы суммируете, не являются проблемой для развертывания в Windows Azure.В Интернете вы можете найти много информации о том, как это сделать.

Имейте в виду, что если вы хотите развернуть свои службы в Windows Azure, вам нужно будет выполнить некоторый обзор кода ваших приложений, чтобыисправьте состояние сеанса, кэш вывода и т. д. в своих веб-приложениях.

Поскольку вы хотите масштабировать их, а они находятся за незакрепленным балансировщиком нагрузки циклического перебора, у вас возникнут проблемы с сеансом.укажите, сохранен ли он на самой машине.Вам нужно будет разделить состояние сеанса, например, на SQL Azure или хранилище таблиц Windows Azure.

Установка MongoB и Memcache в Azure не является проблемой, вы найдете много информации о том, как это сделать.это, но это потребует некоторых для настройки вашей роли и сценариев

0 голосов
/ 02 марта 2012

Не эксперт, но поскольку Asp.net является продуктом Microsoft, переход на Azure должен быть проще, хотя, как я слышал, AWS не должно быть сложным. Еще одна вещь, которую вы можете рассмотреть, это стоимость. В прошлый раз я проверял, что AWS значительно дешевле, если вы уже не платите за подписки MSDN.

...