Решил-таки попробовать платформу Windows Azure для нашего нового проекта. Поначалу относился очень скептически. Ну не верил я в облака после довольно печального опыта с Google App Engine. И до сих пор не очень уверен, но все же решился попробовать Azure. Скачал SDK, установил, открыл в студии уже готовое ASP.NET MVC приложение и пошел смотреть видео. К своему проекту я просто добавил к возможность деплоймента в Azure. Должен сказать, был удивлен — все задеплоилось как в видеомануале.
В процессе я столкнулся с некоторыми на мой взгляд ограничениями и странностями. Нужно отметить, что у меня 30-ная триальная подписка которую я получил в Softline. Возможно, если бы у меня была нормальная подписка, некоторые из этих странностей отпали бы сами собой, не знаю. Тем не менее, перечислю:
1) При создании Hosted Service можно выбирать только из трех вариантов
- East Asia
- Southeast Asia
- Anywhere Asia
2) При создании Server SQL Azure можно выбирать следующие местоположения:
- South Central US
- North Europe
- West Europe
- East Asia
- Southeast Asia
3) Я так понял, что однажды создав Hosted Service с определенным именем, уже никто другой не сможет его использовать. Т.е. оно уникально на платформе. Более того, даже если Вы удалите, то все равно оно будет недоступно для использования в новом сервисе. Кстати, в Google App Engine такая же история — невозможно создать приложения с одним и тем же именем.
В целом все прошло гладко. Однако сразу вопрос: почему процесс публикации в облако занимает так много времени? 12-14 минут! Я не поленился и попробовал опубликовать проект несколько раз — результат одинаковый. В обычном веб-приложении это исправлялось выставлением “Replace matching files with local copies” вместо “Delete all existing files prior to publish”. А здесь же как-будто всегда стоит вторая опция. Гугл сразу выдал ссылку на stackoverflow — Why does Azure deployment take so long?
В итоге, после прочтения статей и мануалов, мне пришлось смириться с этим. Похоже, тут ничего не поделать. Придется подстраивать процесс, чтобы это не сильно сказывалось на скорости разработки и тестирования. Ладно, переживем. Пойдем дальше.
Протестировав автоматически сгенерированное имя вида xxxxxx.cloudapp.net убеждаемся что наше приложение работает. Теперь я хочу чтобы к нему можно было обращаться с доменным именем, которое я специально зарегистрировал типа myapp.ovlad.com. Я поступил очень просто — пропинговал xxxxxx.cloudapp.net и полученный IP адрес вписал в новую А-запись в DNS настройках. Через примерно пару часов я мог уже пользоваться им.
По-моему начало довольно неплохое, не считая вышеперечисленных странностей или ограничений. Будем исследовать дальше.
Автор: wesert