Nasazení nové verze do Windows Azure pod 15 sekund

Každý, kdo někdy zkoušel Windows Azure ví, že nasazení nové verze obnáší vytvoření nových virtuálních počítačů a trvá minimálně 15 minut. Tato doba je jistě obhájitelná robustností a vysokou dostupností celé platformy, nicméně pro rychlý iterativní vývoj a testování aplikací je to ovšem velmi nepohodlné a příliš dlouhé. S novým Windows Azure SDK 1.4 Refresh je možné nasadit novou aplikaci v horizontu sekund pomocí technologie Web Deploy, přičemž limitujícím faktorem je propustnost vaší linky směrem ven (pozor, funguje pouze za určitých okolností, čtěte text malými písmenky dole).

Celý postup je velmi snadný. Stačí v dialogu Publish pro nasazení aplikace na Azure projektu zvolit checkbox úplně dole.

clip_image001

Poté můžete aplikaci nasadit tradičním způsobem (cca 20 minut). Toto nastavení zároveň nainstaluje a aktivuje ve web roli tzv. IIS Web Management Service (WMSVC), který umožňuje nasazení pomocí metody Web Deploy. Poté už můžete nasazovat další verze aplikace velmi rychlé prostřednictvím této metody – příslušný dialog se zobrazí při zvolení nabídky Publish v kontextovém menu webového projektu (ne Azure projektu). Všechny adresy, porty aj. jsou již předvyplněny, stačí zadat heslo:

clip_image002

Ještě důkaz titulku – zde je moje verze 1:

clip_image004

A zde moje verze 2:

clip_image006

A nyní slíbený text malými písmeny:

  • Web Deploy funguje pouze s web rolí. Nejde použít na worker nebo VM roli.
  • Web Deploy funguje pouze pokud máte jedinou instanci role (což je v rozporu s požadavkem na vysokou dostupnost). Nejde použít při více instancích.
  • Web Deploy je určený pouze pro iterativní vývoj a testování. Není určen pro nasazování fixů do produkce (technicky to ovšem je možné).
  • Web Deploy obchází vytvoření aplikačního balíčku, proto změny jím provedené nemají trvalou povahu a mohou být kdykoliv nahrazeny původní verzí v balíčku (např. při přesunu na jiný server). K trvalému zachování změn musíte aplikaci korektně zabalit a nasadit.
  • Web Deploy vyžaduje rozchozený Remote Desktop a tento vyžaduje instalaci certifikátu na server (certifikát si můžete vydat sami, nemusí být důvěryhodný), více např. na https://msdn.microsoft.com/en-us/library/gg443832.aspx

Michael