Nasazení podnikového webu: Přehledný scénář
Tato sada kurzů používá ukázkové řešení s realistickou úrovní složitosti společně s fiktivním scénářem podnikového nasazení, které poskytuje referenční implementaci a dává úkolům a návodům společný kontext. Toto téma popisuje scénář kurzu a představuje ukázkové řešení.
Popis scénáře
Fiktivní společnost Fabrikam, Inc., vytváří řešení, které umožňuje vzdáleným prodejním týmům ukládat a načítat kontaktní informace z webového rozhraní.
Procesy správy životního cyklu aplikací (ALM) ve společnosti Fabrikam, Inc. vyžadují nasazení řešení do tří serverových prostředí v různých fázích procesu vývoje softwaru:
- Testovací prostředí pro vývojáře nebo prostředí sandboxu.
- Intranetové přípravné prostředí.
- Internetové produkční prostředí.
Každé z těchto prostředí má jiné požadavky na konfiguraci a zabezpečení a každé z nich představuje jedinečné problémy při nasazení.
Serverová infrastruktura společnosti Fabrikam, Inc.
Toto je infrastruktura pro vývoj a nasazení vysoké úrovně ve společnosti Fabrikam, Inc.
Vývojářské pracovní stanice, infrastruktura správy zdrojového kódu, vývojářské testovací prostředí a přípravné prostředí se nacházejí v intranetové síti v rámci domény Fabrikam.net. Produkční prostředí se nachází v hraniční síti (označované také jako DMZ, demilitarizovaná zóna a monitorovaná podsíť), která je od intranetové sítě izolovaná bránou firewall. Jedná se o běžný scénář nasazení: internetové webové servery obvykle izolujete od interní serverové infrastruktury pomocí bran firewall nebo serverů bran.
V tomto příkladu:
- Server Team Foundation Server (TFS) 2010 se samostatným buildovacím serverem poskytuje funkce správy zdrojového kódu a kontinuální integrace (CI).
- Vývojářské testovací prostředí zahrnuje webový server Internetové informační služby (IIS) 7.5 a databázový server SQL Server 2008 R2.
- Produkční prostředí zahrnuje několik webových serverů iis 7.5 synchronizovaných serverem kontroleru WFF (Web Farm Framework) spolu s databázovým serverem SQL Server 2008 R2. V praxi může databázový server používat clustering nebo zrcadlení ke zlepšení škálovatelnosti a dostupnosti.
- Přípravné prostředí je navržené tak, aby co nejblíže replikuje konfiguraci produkčního prostředí.
- Zásady brány firewall a izolace sítě neumožňují přímé automatizované nasazení z intranetu do hraniční sítě.
Konfigurace každého z těchto prostředí je podrobněji popsána v druhém kurzu Konfigurace serverových prostředí pro nasazení webu.
Týmové role pro ALM
Tito uživatelé se podílejí na vytváření, správě, sestavování a publikování řešení Contact Manager:
Matt Hink je vývojář webových aplikací ve společnosti Fabrikam, Inc. Je součástí týmu, který vyvinul řešení Contact Manager pomocí sady Visual Studio 2010. Matt má na serverech v testovacím prostředí pro vývojáře úplná práva správce, což mu umožňuje nakonfigurovat prostředí tak, aby vyhovovalo jeho potřebám. Má také uživatelský přístup k instanci sady Visual Studio 2010 TFS, kde ukládá zdrojový kód pro řešení Contact Manager.
Rob Walters je správcem serveru ve vývojovém týmu společnosti Fabrikam, Inc. Rob má přístup správce k serveru TFS, aby mohl nakonfigurovat všechny aspekty TFS a týmového sestavení. Rob má také přístup pro správu k testovacím a pracovním webovým serverům a funguje jako správce databáze (DBA) pro databázové servery v testovacím a přípravném prostředí. Rob nakonfiguroval týmové sestavení na serveru TFS, aby prováděl tyto úkoly:
- Sestavte a spusťte testy jednotek v aplikaci pokaždé, když uživatel vrátí soubor do TFS. To se nazývá CI.
- Nasaďte aplikaci Contact Manager do testovacího prostředí automaticky, jakmile aplikace projde testy jednotek. To zahrnuje publikování databáze na testovací servery při počátečním nasazení a všechny aktualizace databáze po počátečním nasazení.
- Nasaďte aplikaci Contact Manager do přípravného prostředí v jednom kroku.
- Vytvořte webový balíček, který může správce webového serveru a správce databáze použít k publikování aplikace do produkčního prostředí.
Lisa Andrews je správce serveru zodpovědný za nasazování aplikací na produkční servery společnosti Fabrikam, Inc. Má přístup pro čtení ke sdílené složce, do které týmové sestavení TFS po sestavení aplikace Contact Manager uloží balíček pro nasazení webu. Má také přístup pro správu k produkčním webovým serverům, aby mohla aplikaci nasadit do produkčního prostředí. Kromě toho funguje jako správce databáze, který nasazuje databáze a aktualizace databází na databázový server v produkčním prostředí.
Řešení správce kontaktů
Řešení Správce kontaktů je navržené tak, aby umožnilo registrovaným a přihlášeným uživatelům přidávat a upravovat kontaktní informace prostřednictvím webového rozhraní. Řešení Contact Manager se skládá ze čtyř samostatných projektů:
- ContactManager.Mvc. Toto je projekt webové aplikace ASP.NET MVC3, který představuje vstupní bod pro řešení. Nabízí některé základní funkce webové aplikace, jako je poskytování uživatelům možnost vytvářet a zobrazovat kontaktní údaje. Aplikace spoléhá na službu WCF (Windows Communication Foundation) ke správě kontaktů a databázi ASP.NET aplikačních služeb pro správu ověřování a autorizace.
- ContactManager.Database. Toto je databázový projekt sady Visual Studio 2010. Projekt definuje schéma pro databázi, která ukládá kontaktní údaje.
- ContactManager.Service. Toto je projekt webové služby WCF. WCF zpřístupňuje koncový bod, který umožňuje volajícím provádět operace vytvoření, načtení, aktualizace a odstranění (CRUD) v databázi aplikace Contact Manager. Služba spoléhá na databázi aplikace Contact Manager a sestavení ContactManager.Common.dll.
- ContactManager.Common. Toto je projekt knihovny tříd. Služba WCF spoléhá na typy definované v tomto sestavení.
Kompletní přehled řešení a jeho požadavků na nasazení najdete v prvním kurzu této série Nasazení webu v podniku.
Úlohy nasazení
Při nasazování aplikací do různých prostředí ve velké organizaci se používá několik různých úloh. Kurzy se týkají těchto klíčových úloh:
Tady je seznam jednotlivých kroků v procesu nasazení z pohledu uživatelů popsaných výše v tomto dokumentu:
- Všichni členové týmu si prohlédnou řešení Contact Manager v sadě Visual Studio 2010 a zjistí klíčové požadavky na nasazení a problémy.
- Matt Hink může nasadit řešení Contact Manager přímo z pracovní stanice vývojáře do vývojového testovacího prostředí, aby provedl počáteční test logiky nasazení.
- Matt Hink přidá aplikaci do správy zdrojového kódu v TFS.
- Rob Walters vytváří různé definice sestavení pro řešení Contact Manager v týmovém sestavení. Jedna definice sestavení používá CI k nasazení řešení do vývojového testovacího prostředí pokaždé, když uživatel zkontroluje nový kód. Další definice sestavení umožňuje uživatelům aktivovat nasazení do přípravného prostředí podle potřeby.
- Pokaždé, když uživatel vrátí nový kód, team build automaticky sestaví komponenty řešení, spustí testy jednotek a nasadí řešení do testovacího prostředí vývojáře, pokud bylo sestavení úspěšné a testy jednotek byly úspěšné.
- Když uživatel aktivuje nasazení do přípravného prostředí, řešení se zabalí a nasadí v rámci procesu v jednom kroku. Tento proces také vygeneruje balíček pro ruční nasazení do produkčního prostředí.
- Lisa Andrews nasadí aplikaci do produkčního prostředí ručním importem webového balíčku vytvořeného v kroku 6.
Klíčové problémy s nasazením
Řešení Contact Manager a scénář společnosti Fabrikam, Inc. zdůrazňují různé běžné problémy a výzvy, se kterými se můžete setkat při nasazování komplexních řešení na podnikové úrovni. Příklad:
- Potřebujete mít možnost nasazovat projekty do více prostředí, jako jsou vývojářská nebo testovací prostředí, přípravné platformy a produkční servery. Řešení je potřeba nasadit s různými nastaveními konfigurace pro každé prostředí.
- Potřebujete nasadit více závislých projektů současně jako součást procesu sestavení a nasazení v jednom kroku nebo automatizovaném procesu.
- Musíte být schopni řídit nasazení z automatizovaného procesu. Chcete například použít proces CI k nasazení webových aplikací do přípravného prostředí, když je nový kód vrácen se změnami.
- Musíte být schopni řídit proces nasazení a nastavit proměnné nasazení z prostředí mimo sadu Visual Studio, protože vývojáři pravděpodobně nebudou mít pro každé cílové prostředí správné nastavení konfigurace nebo nezbytné přihlašovací údaje.
- Potřebujete nasadit databázové projekty založené na schématu a zachovat stávající data v následných nasazeních.
- Databáze členství je potřeba nasazovat ad hoc bez nasazení dat uživatelských účtů. Může být také potřeba aktualizovat schéma nasazených databází členství, aniž byste přišli o data existujících uživatelských účtů.
- Při nasazování obsahu do různých cílových prostředí je potřeba vyloučit určité soubory nebo složky.
Kromě toho správa nasazení v případě, že jsou aktualizace časté a přírůstkové, přináší další problémy. Příklad:
- Testy jednotek spustíte pokaždé, když vývojář zkontroluje nový kód. Řešení chcete nasadit pouze v případě, že kód projde testy jednotek.
- Když nasazujete webovou aplikaci do přípravného nebo produkčního prostředí, chcete uživatele přesměrovat na app_offline.htm soubor po dobu trvání procesu nasazení.
- Chcete protokolovat aktivity nasazení. Proces nasazení by měl určeným příjemcům odesílat e-mailová oznámení o úspěšných nebo neúspěšných nasazeních.
- Pokud automatizované nasazení selže, měl by proces nasazení opakovat aktuální nasazení nebo místo toho nasadit předchozí webový balíček.