Na tento týden jsem pro vás připravil miniseriál o Azure Web Sites (vyzkoušejte zdarma!), což je webový hosting vysokých technických parametrů se speciálními vlastnostmi pro vývojáře. Po prvním dílu věnovaném základním technickým parametrům a možnostem se dnes budeme věnovat možnostem nasazení do Azure Web Sites.

Možností je poměrně velký počet a můžeme je rozdělit do dvou základních skupin:

  • přímé (neverzované) – nová verze se nasadí přímo z vývojářského počítače na server
  • verzované – nasazení probíhá skrze verzované úložiště

Neverzované nasazení (editace)

Tato možnost je vhodná pokud web vytváří jediný člověk. Je velmi jednoduchá na nastavení. Na druhou stranu je funkčně omezená, např. se nelze jednoduše vrátit ke starší verzi aplikace. Probereme si teď jednotlivé možnosti:

WebDeploy a nástroj WebMatrix

Nejjednodušším způsobem editace webu je použití nástroje Web Matrix. Stačí stisknout tlačítko Webmatrix dole na stavovém řádku – zkušenost je podobná jako když kliknete na dokument Wordu, kdy se vám otevře příslušný dokument ve Wordu. Zde se vám otevře příslušný web ve WebMatrixu:

image

Pokud je WebMatrix již nainstalován, otevře se web rovnou v tomto nástroji, pokud není, je vám nabídnuta možnost jeho instalace. Nástroj je bezplatný a lze jej použít na všechny technologie Azure Web Sites (PHP, ASP.NET i node.js). Standardně se web otevře v režimu vzdálené editace (Remote View), ale je možné si ho stáhnout i na lokální počítač (Download). V tom případě se příslušné změny provádí pouze lokálně a na vzdálený server se přenesou stiskem tlačítka Publish.

WebDeploy a Visual Studio

Web Matrix je nástroj určený pro ty, jež nechtějí vyvíjet v pravém smyslu toho slova – spíše upravují existující hotová řešení. Pokud chcete opravdu vyvíjet, je pro platformu ASP.NET nejlepším nástrojem Visual Studio. Pro vývoj webů můžete použít bezplatnou edici Visual Studio Express 2012 for Web anebo lépe některou z komečních edicí. V tomto nástroji můžete vyvíjet svoji webovou aplikaci běžným způsobem. Pro nasazení na Azure Web Site potřebujete dvě věci: nainstalovat si příslušné SDK pro vaši verzi Visual Studia (ke stažení zde) a dále si stáhnout z Azure portálu tzv. Publish Profile, což je v podstatě soubor s definicí nezbytných údajů pro nasazení do Azure Web Site. Po jeho naimportování do Visual Studia je nasazení změn v aplikaci triviální:

image

Veškeré změny jsou tak během pár sekund velmi efektivně přeneseny na web.

FTP nebo FTPS

Pokud nepoužíváte ASP.NET a Visual Studio, zřejmě budete hledat něco univerzálnějšího – odpovědí je v tomto případě FTP nebo FTPS protokol. Po nastavení přihlašovacího jména a hesla na Azure portálu je k dispozici plnohodnotný FTP přístup:

image

Poté můžete použít libovolného dostupného FTP klienta (lze použít i Windows Explorer přímo ve Windows) v kombinaci s libovolným nástrojem anebo lze použít libovolný nástroj s podporou FTP protokolu (kam patří mimochodem i Visual Studio a WebMatrix).

Dropbox

Dropbox je známé cloudové úložiště souborů, které lze použít i jako zdroj pro webový server v rámci Azure Web Sites. Nejzajímavějším rysem tohoto řešení je, že na klientovi nepoužíváte žádný speciální nástroj. Veškeré změny na lokálním disku jsou agentem Dropboxu automaticky synchronizovány s cloudovým úložištěm:

image

Azure Web Site si tyto změny na vyžádání převezme z Dropboxu a jsou nasazeny přímo na server – jedná se o velmi elegantní řešení pro individuálního vývojáře (podrobnější návod zde).

Verzované nasazení s úložišti zdrojového kódu

Pokud na vývoji webu spolupracuje více lidí, není žádný z výše uvedených postupů praktický – vždy bude docházet ke kolizím a nekompatibilním verzím. V takovém případě se hodí ukládat změny do verzovaného úložiště, které je pak jakýmsi prostředníkem pro nasazení změn na server. Toto uspořádání sice přináší větší práci s nastavením, ale nabízí větší komfort a hlavně možnost kroku “zpět” v případě, že nasazené změny způsobí v aplikaci problém (což je schopnost, kterou ocení i individuální vývojář). Pojďmě se podívat na možnosti:

Team Foundation Service

Team Foundation Service je v cloudu hostovaný Team Foundation Server. Pokud je vaše aplikace napsaná v ASP.NET, jedná se o možnost s bezkonkurenčně nejvyšším komfortem. Po propojení Azure Web Site s TFS se vytvoří nová definice buildu, která při každé změně zdrojového kódu v repository spustí build, který zkontroluje kompilovatelnost a spustí případné testy. Pokud vše proběhne normálně, je na Azure Web Site nasazený nový build vaší aplikace:

image

Jak jsem již řekl, jedná se o zdaleka nejkomfortnější, a přitom velmi flexibilní možnost verzování a řízení projektu webové aplikace s automatickým nasazením bezchybných nových verzí do cloudu. Více o této možnosti se dočtete zde.

Local Git repository

Zejména pro vývojáře v PHP a node.js může být zajímavá další možnost – použití Git repository. Azure Web Site se v tomto případě chová jako vzdálené Git úložiště, do kterého můžete přenášet (push) změny ve vašem lokálním verzovaném úložišti:

image

Azure Web Site se tedy navenek chová jako další úložiště, ve kterém nevznikají žádné změny. Jsou do něj pouze přenášeny změny z jiných úložišť. Tato možnost je velmi jednoduchá na nastavení, stačí povolit Git úložiště na straně webu, nastavit jméno/heslo a můžete propagovat vaše změny. Podrobnější návod je zde.

Další možnosti – úložiště hostovaná na internetu

Na internetu je k dispozici řada různých verzovaných úložišť, které mají typicky k dispozici nějakou bezplatnou základní službu a k tomu placené prémiové služby. Azure Web Sites v tuto chvíli podporují GitHub (nástroj Git), CodePlex (nástroj TFS, Git, Mercurial, Subversion) a BitBucket (nástroj Git nebo Mercurial). Nastavení integrace se všemi těmito nástroji je velmi podobné, vyberme jako příklad GitHub:

image

Pokud nastavíme integraci některého z těchto nástrojů s Azure Web Sites, může si váš web automaticky převzít změny z verzovaného úložiště, případně je možné tuto operaci vynutit manuálním spuštěním. Můžete tak vyvíjet proti svému preferovanému úložišti a přitom mít neustále k dispozici běžící funkční web s poslední uloženou verzí.

Závěr a pozvánka na seminář

Pokud se o tomto tématu chcete dozvědět více, zaregistrujte se na online seminář. Zde se můžete dozvědět o této problematice více, případně se zeptat na otázky, které vás napadly. V zítřejším třetím a posledním díle na nás čeká monitorování, konfigurace a diagnostiku webu.

Michael