Перенос веб-сайта Azure в облачную службу Azure

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

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

Но разве это хорошая отправная точка для вас? Выполняется ли миграция веб-сайта Azure в облачную службу Azure так же, как вы переносили обычный веб-сайт ASP.NET в облачную службу Azure? Вы бы начали с облачной службы Azure с самого начала? Если да, то почему?

Спасибо за ваше время.


person kzfabi    schedule 27.07.2012    source источник
comment
Хотелось бы, чтобы на веб-сайте Microsoft Azure была красивая простая таблица, объясняющая различия. Много перекрытий. Почему бы не начать с 3 месяцев оплаты веб-сайта?   -  person paparazzo    schedule 28.07.2012


Ответы (5)


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

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

Веб-сайты Windows Azure

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

Плюсы

  • 10 бесплатных сайтов во время предварительного просмотра [бесплатно в течение 12 месяцев]
  • Простое развертывание (используйте Git, TFS, веб-развертывание или FTP)
  • Быстрая масштабируемость (вы можете перейти в свой собственный выделенный кластер [также известный как зарезервировано стандарт])
  • Простая разработка (поддерживает классический ASP, ASP.NET, Node.js, Python и PHP)
  • Постоянная среда (большинство людей к этому привыкло)

Минусы

  • Нет поддержки SSL в пользовательских доменах
  • в предварительном просмотре (в настоящее время без SLA)

Облачные службы Windows Azure

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

Плюсы

  • Повышенный контроль над стоимостью вашего приложения (при правильной архитектуре)
  • Flexibility (You have full control over the environment)
    • SSL Support
    • Языковой агностик
    • Независимость от веб-сервера (хотя IIS доступен по умолчанию)
  • Автоматическое управление серверами

Минусы

  • Следует тщательно продумать архитектуру
  • Время развертывания медленнее (замедляет цикл разработки)

Что следует учитывать при переносимости

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

Вот список вещей, которые помогут переносить веб-сайты в облачные сервисы:

  1. Начните думать без гражданства

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

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

    • Don't rely on Session State
      • If you need it, come up with a strategy to make it scale (Caching Service, SQL, or Storage)
    • Use the Storage Service
      • Assets such as Static HTML, css, javascript and images are better placed in Storage
        • Avoids additional bandwidth on your Web Site (potentially stay shared longer for lower cost)
        • Может быть включен CDN, обеспечивает лучший опыт работы на международных рынках
        • Легче обновлять веб-ресурсы, когда приложение переносится в облачные сервисы
      • Storing User content
        • If your application already stores to the Storage Service, there is one less code modification in the future when moving to cloud services.
  2. Упростите обнаружение закономерностей в ваших данных

    Преимущество облачных сервисов в том, что они позволяют снизить затраты за счет масштабирования только того, что необходимо масштабировать. Запуск процесса определения единиц масштабирования, т. Е. Того, как вы разбиваете базу данных или таблицы в хранилище.

person cory-fowler    schedule 27.07.2012
comment
Это тот ответ, который я действительно искал. Спасибо за то, что указали на плюсы и минусы каждого подхода, а также за соображения при переходе от одного к другому, о чем я и просил. Спасибо! - person kzfabi; 28.07.2012
comment
Я опубликовал новую запись в блоге, в которой описывается, как можно определить, работает ли ваше приложение на веб-сайтах или в облачных службах - person cory-fowler; 12.10.2012

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

  • Веб-сайты и размещенные службы Azure действительно легко развернуть. С помощью Visual Studio вы создаете пакет и просто загружаете его. Тогда у вас есть среда разработки, чтобы это проверить. Если вас устраивает, поменяйте местами ips. Если вас это не устраивает, обновите еще раз.

  • У ваших экземпляров есть некоторые свойства, которые могут раздражать. Например, вы не можете быть уверены в своем IP. Затем, если ваше приложение работает с каким-либо поставщиком, использующим ограничение IP, вам нужно будет выяснить, что делать дальше.

  • Еще соображения. Ваш "сервер" может быть переименован в любой момент. Если вы сохраните что-то на локальном диске, этот файл может исчезнуть в любой момент.

  • Azure отлично работает, если у вас есть как минимум 2 или более экземпляра для каждого веб-сайта. Возможно, ваше приложение не готово к этому. Первым шагом будет управление сеансами с помощью appFabri c. Это действительно просто, просто измените вашу веб-конфигурацию. Будьте осторожны, потому что это состояние сеанса не работает точно так же, как «старое». Вы не можете хранить несериализуемые объекты (должно быть легко адаптировать) или очень большие объекты (более 8 МБ).

Если вы собираетесь разрабатывать что-то с нуля, я предлагаю вам начать с лазурного с самого начала. Причина проста: это действительно дешево для начала, и вы не будете платить серьезные деньги, пока приложение не будет иметь много посещений. Также очень дешево настроить SQLAzure и учетную запись хранения. Если у вас все готово, легко добавить больше экземпляров или увеличить масштаб.

Пример:

Представьте, что у вас есть идея и вы хотите ее продемонстрировать некоторым возможным инвесторам.

Вы начинаете настраивать небольшую базу данных SQLAzure (1 ГБ) за 9,99 долларов в месяц.

Затем вы создаете сайт и устанавливаете 2 дополнительных небольших экземпляра по 18,72 доллара в месяц.

Допустим, вам нужно 100 ГБ места (изображения, резервные копии, ...), 12,50 долларов в месяц.

По его мнению, у вас есть все необходимое, чтобы начать свой бизнес, платя менее 50 долларов в месяц.

Если у вашего сайта есть выход и посещения начинают приходить, вы меняете свои экземпляры на небольшие (действительно опасно иметь производственную среду с дополнительными небольшими экземплярами, потому что у них нет резервирования ЦП). Затем вы изменяете сверхмалую стоимость (18,71 доллара США) до 57,60 долларов США. Может быть, вам нужно больше места для этого SQL Azure? так далее...

цены рассчитываются здесь: http://www.windowsazure.com/en-us/pricing/calculator/?scenario=web.

Это несколько советов, есть еще много всего. Мой совет - завести пробную учетную запись и поиграть с ней.

Последний совет: Все очень легко решить, просто купив дополнительные ресурсы. Иногда вам нужно провести рефакторинг и оптимизировать код. Если вы просто добавляете больше ресурсов каждый раз, когда у вас возникает проблема, вы можете закончить с огромным счетом и очень запутанным кодом.

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

person Jordi    schedule 27.07.2012
comment
Привет, @Jordi, все, что ты говоришь, правильно, но я спросил не об этом. Я уже знаю основы Azure. То, что я спросил, относится к конкретной проблеме с веб-сайтами Azure и Cloud Services, а также преимущества перехода с один к другому по причинам масштабирования. - person kzfabi; 28.07.2012
comment
Об управлении сеансом в Azure проверьте использование хранилища таблиц для состояния сеанса менеджмент, я тоже считаю, что это очень хорошее решение. - person kzfabi; 28.07.2012
comment
Хранение таблиц дешевле, memcache быстрее. - person Jordi; 01.08.2012

Я прочитал все сообщения, и все они очень полезны. В дополнение ко всем сообщениям я нашел информацию на msdn: Веб-сайты, облачные службы и виртуальные машины Windows Azure: когда использовать какие?

С помощью веб-сайтов Windows Azure вы можете:

  • Создавайте высокомасштабируемые веб-сайты в Windows Azure.
  • Быстро и легко развертывайте сайты в хорошо масштабируемой облачной среде, которая позволяет вам начать с малого и масштабироваться по мере необходимости.
  • Используйте языки и приложения с открытым исходным кодом по вашему выбору, затем разверните их с помощью FTP, Git или TFS и легко интегрируйте службы Windows Azure, такие как база данных SQL, кэширование, CDN и хранилище.

С помощью облачных сервисов вы можете:

  • Создавайте или расширяйте свои корпоративные приложения в Windows Azure.
  • Создавайте высокодоступные, масштабируемые приложения и сервисы, используя богатую среду PaaS. Поддержка расширенных многоуровневых сценариев, автоматического развертывания и гибкого масштабирования. Предлагайте отличные SaaS-решения клиентам по всему миру.

А также кратко описана опция на msdn:

Обобщает параметры веб-сайтов, облачных служб и виртуальных машин

И сравнивая некоторые функции веб-сайтов и облачных сервисов на msdn:

Сравнение функций веб-сайтов и облачных служб

person Serkan Yılmaz    schedule 21.02.2013

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

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

person Girish Bhat    schedule 01.10.2012

У нас был наш веб-сайт, работающий на PHP на каком-то хостинге, и в какой-то момент мы решили переместить его в Azure (где находится основная часть нашего сервиса). Мы начали с веб-сайтов Azure, которые были отличными с точки зрения разработки (в основном интеграция с git). Но примерно после недели тестирования (когда мы решили фактически переместить рабочий веб-сайт) мы обнаружили, что в настоящее время

  1. Нет SSL для пользовательских доменов
  2. Пользовательские домены доступны только для зарезервированных экземпляров (без общей инфраструктуры)
  3. SLA

Итак, мы перешли на размещенную службу. Основной проблемой для нас было отсутствие возможности простого развертывания (необходимость собрать пакет и загрузить весь пакет веб-сайта), и найденное решение заключалось в использовании dropbox - в качестве задачи запуска для роли мы устанавливаем службу dropbox на машина, которая берет весь веб-сайт из Dropbox, который, в свою очередь, имеет извлеченную папку SVN, поэтому обновлять сайт стало очень легко.

person Stam    schedule 02.08.2012
comment
уооо! выглядит опасно, но если работает :) Я действительно впечатлен этим решением. - person Jordi; 04.08.2012