2010-06-19 2 views
17

У меня есть частично разработанное приложение asp.net, но теперь клиент хочет, чтобы он был разработан в лазури. Сколько существующего кода можно использовать при разработке приложения в лазурном режиме.Насколько сложной задачей является перенос приложения asp.net на azure?

Какие проблемы мы можем столкнуться, когда пытаемся перенести существующее приложение asp.net на azure? Существуют ли другие альтернативы лазурным облачным вычислениям?

ответ

22

Для приложения asp.net вы можете, конечно, передать это Azure. Ваша основная логика будет относиться относительно просто, и вы получите множество преимуществ, которые может предложить Azure. С выпуском в июне 2010 года у вас также будет поддержка .NET 4, а также IntelliTrace для отладки.

Однако, как вы начинаете планировать свой Azure миграции, Есть несколько соображений, вы должны думать о том, (ни один из них непреодолимыми, и несколько относительно просто иметь дело с):

  • Вы должны иметь дело с управлением сеансом ASP.NET в ваших экземплярах веб-роли (которые не поддерживаются из коробки, кроме inproc). Вам также нужно будет настроить и использовать поставщиков роли и членства (подробнее см. here). EDIT: теперь у вас есть доступ к кэшу AppFabric для состояния сеанса, а также к SQL Azure, входящему в состав Universal Providers, включенному в Windows Azure SDK + Tools.
  • Вы должны изучить свой SQL-сервер для несовместимости с SQL Azure (например, запланированные задания, поскольку поддержка SQL-агента отсутствует). Различия в SQL Azure задокументированы here. Вам также необходимо будет рассмотреть ограничение размера SQL Azure на 50 ГБ, что может потребовать от вас разгрузить содержимое в хранилище Azure blob. EDIT: вы можете запустить свою базу данных SQL Server с помощью SQL Azure Migration Wizard для тестирования совместимости.
  • Вам необходимо настроить ведение журнала и диагностику, предпочтительно с выходом Trace, чтобы вы могли удаленно извлекать эти данные.
  • Вам нужно подумать о том, как вы будете контролировать и масштабировать свое приложение. Вся информация, которая может понадобиться для масштабирования, доступна для вас (счетчики производительности, длины очереди и т. Д.). Отметьте WASABI - блок приложения для автоматического масштабирования, входящий в состав Enterprise Library. Вы также можете подписаться на услугу, такую ​​как AzureWatch.
  • Вам нужно будет подумать о кешировании, , поскольку в настоящее время нет реализации кэширования вне коробки, которая проходит через экземпляры вашей веб-роли, которая теперь предоставляется как услуга. Читайте подробности here, а также часто задаваемые вопросы here.
  • Нужна ли вам поддержка SMTP? Если да, то есть подробности, которые вы должны прочитать о here. Недавно SendGrid анонсировала free-tier promotion для Windows Azure.
  • Вы также принимаете услуги WCF? Если это так, посмотрите this site для получения дополнительной информации (в частности, известные проблемы).

Итак: да, есть некоторые вещи, о которых вам нужно заботиться, но Azure - отличная платформа для размещения приложения asp.net, и вы должны его серьезно рассмотреть.

+1

Отличный ответ. Поскольку он ссылается на другие более новые сообщения, может быть полезно обновить его. Я думаю, что вы упомянули, что в другом месте есть приложение AppFabric Caching? –

+0

Samuel - спасибо! Я отредактирую это позже. –

2

Должно быть очень просто перенести приложение на Azure - особенно если вы используете SQL-сервер. Код может работать почти без изменений. Вам понадобится создать пакет установки Azure для файла проекта и конфигурации.

Если ваше приложение использует постоянное хранилище (кроме SQL Server), возможно, вам придется немного переработать этот код. Однако на платформе теперь хранится накопитель, который имитирует файловую систему, поэтому это должно быть довольно легко.

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

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

+1

Я думаю, что «очень легко» вводит в заблуждение. Подробнее см. Мой ответ ниже. –

1

Azure теперь поддерживает веб-сайты в качестве типа развертывания. В основном это позволяет публиковать любое стандартное приложение Asp.net (и другое поддерживаемое как PHP и т. Д.) Для Azure и иметь его как масштабируемый сервер. См. Эту статью http://blog.ntotten.com/2012/06/07/10-things-about-windows-azure-web-sites/

Многие из преимуществ Azure без необходимости вводить конкретный код/​​проект Azure в существующее приложение.

Кроме того, этот вопрос здесь What is the difference between an Azure Web Site and an Azure Web Role