Изграждане на WindowsВиртуална машина Azure за хостинг на уеб приложения, Microsoft Docs
В днешната статия ще се опитам да ви кажа как можете да разширите границите на използването на Azure, като използвате примера за създаване на виртуална машина в нея и хостване на уеб приложение върху нея.
Стъпка 0. Получаване на достъп.
За тези, които ги мързи да последват връзката в началото на статията, ще ви напомня как можете да получите безплатен достъп до новите функции на Windows Azure.
Стъпка 1: Създайте виртуална машина
След като имаме достъп до компонентите на Windows Azure, е време да започнем да ги използваме. За да направите това, изберете елемента Виртуални машини в портала за управление и щракнете върху големия бутон плюс в долната част на страницата (не го пропускайте):
Два елемента ще бъдат достъпни за нас: Бързо създаване и От галерия. Всъщност разликата между тях е малка, така че нека разгледаме по-пълен път. Изберете от галерията:
В този диалогов прозорец имаме няколко опции за избор. Да започнем с това, че освен готови образи на ОС (вижда се на скрийншота), ни се дава възможност да качим собствен образ или VHD диск, от който впоследствие да бъде създадена виртуална машина. Това ще бъде удобно за големи проекти, където трябва да създадете ферма от идентични машини, без да се занимавате с настройката на всяка от тях. Сега това не ни интересува, така че нека насочим вниманието си към наличните готови изображения.
Имаме няколко възможности за избор. Има Windows Server 2008 R2 (две версии), Linux машини, специализиран сървър за SQL Server (между другото, това изображение беше написано наскоро в Habré) и героят на днешния ни експеримент е Windows Server 2012. Защо? Това е мой личен избор. Тъй като засега използвам Windows Azure повече за информационни цели, реших товаби било хубаво да опитате "новия сезон" - новия сървър 2012.
Така че, изберете операционната система, от която се нуждаем, и щракнете върху стрелката по-долу. Стигаме до следващия екран на съветника за създаване на виртуална машина:
Тук всичко е доста ясно. Трябва да посочите името на VM, администраторската парола и да изберете една от предложените конфигурации за бъдещия хардуер. Изборът е доста добър и може да покрие повечето от изискванията за производителност за различни видове проекти. Избрах Small, който ми пасва много добре. Продължавай.
На третата стъпка на съветника всичко също е съвсем ясно:
Първо трябва да решите целта на бъдещата машина. Ако искаме да го използваме като самостоятелен ресурс (а това е точно това, което искаме в момента), тогава избираме Standalone. Режимът Connect To, както е написано в подсказката, ще ни позволи да свържем тази виртуална машина към някаква съществуваща мрежа за споделяне на натоварването. Все още не се интересуваме от това.
След това трябва да измислите име на хост, чрез което машината ще бъде достъпна. Тук е необходимо да не се бърка името на машината в предишната стъпка и даденото име на хост. Името на машината е името на компютъра в Windows. Името на хоста е поддомейнът в домейна cloudapp.net, чрез който сървърът ще бъде достъпен и контролиран. Това име трябва да е уникално, така че незабавно да ни бъде дадена подсказка в съветника относно наличността или използването на определено име.
На четвъртата стъпка не е нужно да правите нищо, оставете всичко както е:
Кликнете върху квадратчето за отметка по-долу и виртуалната машина ще започне да се създава.
Стъпка 2 Управлявайте виртуалната машина
След като създадете виртуална машина, тя ще бъде достъпна в съответния списък:
Не забравяйте да изчакате, докато състоянието на машината се промени от Provisioning на Running. Това ще означава, че машината е готова заизползване. Ако щракнете върху името му, ще се отвори контролният панел на виртуалната машина:
В долната част на страницата има бутон Свързване. Това ще ви помогне да получите правилния rdp файл, за да се свържете с тази машина с помощта на отдалечен работен плот. Време е да отидете на нов сървър и да го управлявате.
Стъпка 3 Управление на сървъра
Всъщност в тази статия няма да навлизам в подробности за администрирането на Windows Server 2012. Тъй като заглавието на тази статия се отнася за уеб приложения, точно това ще направим - ще инсталираме IIS.
Когато за първи път влезете в нов сървър, прозорецът на Server Manager ще се отвори за нас:
По подразбиране IIS не е активиран в Windows Server 2012, така че трябва да го добавите. Изберете елемента Добавяне на роли и функции, след което се отваря съветникът за добавяне на роли. Щракнете върху Напред три пъти (особено любопитните хора четат какво пишат там, но сега не се интересуваме от това) и в дървото, което се отваря, изберете Уеб сървър (IIS). След това трябва да сме сигурни, че сме избрали необходимите IIS компоненти, които ще ни позволят да изпълняваме ASP.NET MVC приложения на него. Няма да пиша точните настройки, всеки сам ще реши какво точно му трябва. Не забравяйте да включите ASP.NET, останалото на вкус.
Щракваме върху Напред няколко пъти, настройваме бъдещата роля, както ни е необходима, и след като инсталационният процес приключи, нашият сървър е щастлив да приеме гости. Можете да проверите това, като отидете на localhost/. Трябва да се появи нещо подобно:
Стъпка 4. Отваряне на достъп
Всичко е страхотно, така че най-накрая настроихме уеб сървър, поставихме някакво приложение върху него и то се отваря на localhost. Как сега да го отворя отвън? Всъщност всичко е съвсем просто. Със сигурност на етапа на създаване на виртуална машина сте се опитали да щракнете върху връзката в контролния панел,който изглежда като .cloudapp.net. И вероятно не сте видели нищо. Това е така, защото достъпът отвън е затворен за виртуалната машина и то не на ниво защитна стена на самата операционна система, а на ниво инфраструктура на Windows Azure.
Ако погледнете нагоре в контролния панел на виртуалната машина, ще видите три елемента от менюто там: табло, крайни точки и конфигуриране. Разбрахме първия в самото начало, всичко е ясно с последния - хардуерните параметри са конфигурирани там, но нека да разберем какво представляват крайните точки.
В раздела Endpoints можем да зададем кои протоколи и кои портове ще бъдат отворени за тази виртуална машина и към кои физически портове ще бъдат пренасочени:
По подразбиране в този списък ще има само един порт - този, на който се свързвате чрез отдалечен работен плот. Освен това общественото пристанище може да бъде всяко, което очевидно се прави за по-голяма сигурност. За да отворите уеб приложения на тази виртуална машина, порт 80 трябва да бъде отворен. Екранната снимка по-горе показва това. След като направите това, трябва да можете да видите собственото си приложение на връзката .cloudapp.net. Постигната е малка победа.
Стъпка 5. Задайте свой собствен домейн
В предишната стъпка направихме всичко възможно приложението да работи в облака и да бъде достъпно отвън. Въпреки това трябва да признаете, че изобщо не би било готино, ако можем да имаме достъп до него само чрез поддомейн и не можем да присвоим собствен един или повече домейни.
Разбира се, това е възможно и доста лесно да се направи. За да направите това, официалната документация препоръчва два различни начина и двата включват редактиране на DNS зоната. Първият предполага, че създавате CNAME запис, в който посочвате, че например www.mydomain.com ще бъде пренасочен къмmywinazure.cloudapp.net. Този метод е прост, но твърде ясен. Ако имате няколко уеб приложения, хоствани на сървъра, или може да има няколко поддомейна на основния домейн, тогава този метод няма да работи. За щастие има втори, по-добър начин.
Стъпка 6. Бонус
Прехвърлих файловете на самото приложение безболезнено. Но когато си спомних базата, в началото ми стана малко мъчно. Веднага си представих, че първо трябва да изтегля дистрибуцията, след което да отделя определено място за нейната инсталация. Стартирайте услугата за база данни на вече не най-бързата машина. Имате база данни и уеб приложение на един и същи сървър. Прехвърляне на данни от един сървър на друг. Е, и още няколко такива проблеми. Да не кажа, че наистина беше толкова трудно, но, честно казано, мързеливо.
И тогава си помислих - какво ще стане, ако настроя приложението, хоствано във виртуална машина, върху база данни, която е създадена като част от хостването на сайт на уеб сайтове? Всъщност, от гледна точка на приложението, тази база данни е точно същата, както ако беше инсталирана на локален сървър. Казано, сторено. Промених web.config според нуждите, като посочих същия сървър, който имах в Windows Azure като сървър на база данни. И какво бихте си помислили? Работи. Сега имам отделен сървър за приложения и отделна база данни, която може да бъде независимо заменена, разширена и дублирана според нуждите. Благодаря ти Azure за такова удоволствие.
Заключение
Ако някой се интересува да види какво приложение работи в облака, тогава ето връзките: prog-facts.ru и ss10.ru (вторият беше даден само като пример, че два домейна са идеално насочени към един хостинг).
Благодаря за вниманието!
Благодаря на Георги Могелашвили, Microsoft MCP за подготовката на статията