Migrace ASP.NET aplikace do Azure WebSite

6. díl - Migrace ASP.NET aplikace do Azure WebSite

Tomáš Herceg       18.05.2014       C#, SQL, Azure       12942 zobrazení

Dnes si ukážeme, jak zmigrovat existující ASP.NET aplikaci a databázi z webhostingu do Windows Azure.

Tento díl stojí trochu mimo plánovanou sérii o Azure a napsal jsem jej proto, že jsem pro jednoho zákazníka zrovna do cloudu migroval aplikaci www.inventoroid.com a naznal jsem, že mít na jednom místě návod, jak zmigrovat aplikaci i databázi do Azure, se určitě hodí.
A mimochodem pokud potřebujete provést inventuru čehokoliv, co na sobě má čárové kódy, a nechce se vám pořizovat čtečky nebo jakékoliv speciální vybavení, klidně Inventoroid vyzkoušejte – stačí k tomu smartphone.

Dnes se tedy podíváme na nejtypičtější scénář pro ty, kteří s Windows Azure začínají – totiž s migrací existující ASP.NET aplikace do prostředí Azure WebSites. Předpokládejme, že máte hotovou ASP.NET aplikaci, která běží na klasickém web hostingu. Potřebujeme tedy přesunout soubory aplikace a databázi.

 

Migrace webové aplikace

Doporučuji mít nainstalovanou poslední verzi Windows Azure SDK (v době psaní článku je to verze 2.3). Na stránce v odkazu klikněte na VS 2013 Install nebo VS 2012 Install podle verze Visual Studia, kterou máte.

Ve Visual Studiu v okně Solution Explorer klikněte pravým tlačítkem na projekt webové aplikace a vyberte Publish.

Publish

Na první stránce průvodce klikněte na možnost Windows Azure Web Sites.

image

Přihlaste se svým účtem, který používáte pro Windows Azure.

image

Vyberte New a vyplňte název website a zvolte si jméno a heslo k databázovému serveru.

Vytvoření nové web site

Po potvrzení se website vytvoří. Průvodce nám k ní vytvoří i prázdnou databázi na novém databázovém serveru v Azure.

Na záložce Configure vidíme, že se v sekci Databases vyplnil connection string a že je zaškrtnuto Use this connection string at runtime (update destination web.config).

Po dokončení průvodce se webová aplikace vypublikuje do Azure Web Sites. Jakékoliv změny v aplikaci kdykoliv opět snadno nasadíte přes okno Publish, Visual Studio si všechna nastavení uložilo, takže nebudete muset nic zadávat.

 

Pokud jste náhodou už website dříve vytvořili ve webovém portálu Azure, stačí ji místo vytváření vybrat, anebo můžete ve webovém rozhraní vyexportovat publish profil a ten naimportovat, jak bylo popsáno v předchozích dílech, kde jsme používali starší verzi SDK a jiná možnost nebyla.

 

Migrace databáze

Databázi můžeme do Azure dostat dvěma způsoby – buď vytvoříme novou prázdnou a pomocí SQL skriptů vytvoříme tabulky a naplníme je daty, anebo existující databázi přeneseme pomocí BACPAC souboru. Přenos pomocí BACPAC souboru je jednodušší, nicméně není možný u všech hostingů.

Takže buď potřebujeme sehnat BACPAC soubor, nebo SQL skript, který databázi včetně dat založí. Různé webhostingy přistupují ke správě databáze různě, takže jsou v zásadě 3 možnosti:

  • Webhosting umožňuje připojit se k databázi přes SQL Server Management Studio, anebo databázi máte u sebe u počítače. V takovém případě můžete databázi vyexportovat do formátu BACPAC.
  • Pokud platí to, co v předchozím případě, tedy k databázi se dostanete přes SQL Management Studio, ale export BACPAC se z nějakého důvodu nepovede (stará verze SQL Serveru, nastavení, které není s BACPAC kompatibilní atd., více dále v článku), vyexportujete databázi jako SQL skript – to by mělo fungovat vždy.
  • V případě, že se k databázi webhostera připojit nemůžete, je nutné SQL skript sehnat jinak – webhostingy typicky nabízí nějaké webové rozhraní, kterým lze databázi spravovat, a odtud většinou můžete buď získat SQL skript, nebo třeba backup databáze – ten obnovíte na lokálním SQL serveru a export do BACPAC nebo SQL skriptu uděláte potom. Případně můžete zkontaktovat podporu webhostingu, aby vám poradila.

 

Export pomocí BACPAC (Data-tier Application)

Pokud se k databázi na hostingu můžete připojit přímo pomocí SQL Management Studia (některé to umožňují), zkuste pravým tlačítkem kliknout na danou databázi a vybrat možnost Export Data-tier Application.

Export Data-tier application

V následujícím okně zadáme cestu, kam má SQL Management Studio uložit soubor s databází – tento soubor má příponu BACPAC a obsahuje jak schéma databáze, tak i data.

Export Data-tier application

Může se stát, že možnost Export Data-tier application nebude fungovat – některé databáze obsahují nastavení, která do BACPAC exportovat nelze. Typicky to spadne ve chvíli, kdy jsou v databázi nastavena nějaká oprávnění pro uživatelské účty z Windows.

 

Vyexportování SQL skriptů

V takovém případě bude potřeba databázi vyexportovat do SQL skriptů. Pokud se k databázi na hostingu můžete připojit přes SQL Management Studio, použijte následující postup. V případě, že webhosting nabízí jinou možnost správy databáze (např. webové rozhraní), pravděpodobně tam najdete možnost, jak SQL skript z databáze vygenerovat. Pokud ani to nejde, budete se muset obrátit na podporu konkrétného webhostingu.

V případě, že můžete použít SQL Management Studio, postupujte takto:

Generování SQL skriptů z databáze

V průvodci poté vybereme objekty, které chceme exportovat (zaškrtněte vše kromě uživatelů).

Generování SQL skriptů

Na další obrazovce klikneme na tlačítko Advanced a provedeme následující změny – vybereme, že chceme exportovat pro SQL Azure, a že chceme vyexportovat jak schéma, tak data:

image

Dále zadáme soubor, kam se má databáze vyexportovat, a potvrdíme. Po chvíli nám SQL Management Studio vygeneruje soubor SQL, který bude obsahovat vše potřebné. Pozor, pokud je databáze větší, soubor může narůst i na několik stovek MB. V takovém případě jej úplně nedoporučuji načíst do SQL Management Studia, ale bude nutné SQL skript spustit přes příkazový řádek.

 

Připojení k Azure databázovému serveru

Spusťte SQL Management Studio a v okně připojení zadejte jméno serveru (je tvořeno názvem serveru, který vidíte v Azure portálu, a za ním je database.windows.net,1433 – té čárky, která odděluje port, se nelekejte – je správně) a přihlašovací údaje.

Pokud se vám nepůjde připojit, tak v Azure portálu v sekci SQL Databases / Servers vyberte daný server a na záložce Configure zkontrolujte, že máte pro svoji IP adresu povolen přístup – pokud ne, tak jej přidejte a klikněte na tlačítko Save.

Připojení k serveru

 

Import BACPAC souboru

Pokud máte BACPAC soubor, je to velmi jednoduché. Bohužel průvodce nám již vytvořil novou prázdnou databázi, takže ji musíme nejprve smazat – do existující databáze BACPAC naimportovat nejde.

Nejprve tedy klikněte na původní databázi pravým tlačítkem, vyberte Delete a potvrďte.

Pak klikněte pravým tlačítkem na Databases a vyberte Import Data-tier application.

image

V průvodci zadejte cestu k souboru BACPAC na disku. Na další záložce zadejte název databáze (stejný jako u databáze, kterou jste právě smazali, abyste nemuseli měnit connection string) a pak edici a maximální velikost databáze. Rozdíly mezi jednotlivými variantami byly popsány v minulých dílech, ve většině případů stačí defaultní nastavení.

Import by měl po chvíli proběhnout a tím máme hotovo.

 

Vytvoření tabulek a import dat ze SQL skriptu

Pokud máte databázi exportovanou jako SQL skript, otevřete jej přes menu File / Open.

Ujistěte se, že v panelu nástrojů máte vybranou správnou databázi.

image

Následně zkontrolujte, jestli v SQL skriptu nejsou žádné věci, které SQL Azure nepodporuje (neměly by být), ale pro jistotu dejte přes Ctrl-F hledat CREATE USER – pokud to tam někde je, tak je to určitě špatně.

Pak už jen stačí zmáčknout F5 a počkat, než se skript provede. Jakmile je hotovo, zkontrolujte dole, že nenastaly žádné chyby – pokud tam nebude zelená ikonka, je nutné projít okno s výsledky a zjistit, co tam bylo špatně. Jinak nemáte jistotu, že se naimportovalo vše správně.

Kontrola správnosti dotazu

 

Nastavení DNS

DNS záznamy domény, na které vaše aplikace běžela, ještě pořád směřují na původní hosting.

Nejprve v Azure portálu otevřete detail dané website a na záložce Scale ji přepněte z režimu Free alespoň na Shared.

Nedávno se v Azure kromě režimu Free, Shared a Standard objevila ještě varianta Basic, která je velmi podobná variantě Standard, ale má několik omezení a je trochu levnější. Varianta Basic běží též na instanci, která je rezervována jen pro vás, má o něco menší úložiště (10GB místo 50GB u varianty Standard), podporuje škálování jen do 3 instancí namísto 10, nenabízí SSL certifikáty pro doménu 2. řádu zdarma. Podrobněji je to vidět v ceníku.

Pak na záložce Configure můžeme nastavit doménu, na níž aplikace poběží. V sekci Domain names klikněte na Manage domains a  přidejte je. Jak se to dělá, je popsáno v předchozím dílu.

Tím bychom měli být hotovi.

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Všechny díly tohoto seriálu

 

 

 

Nový příspěvek

 

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback