Wdrażanie w Internecie w przedsiębiorstwie: omówienie scenariusza
Autor : Jason Lee
Ten zestaw samouczków używa przykładowego rozwiązania z realistycznym poziomem złożoności, wraz z fikcyjnym scenariuszem wdrażania w przedsiębiorstwie, aby zapewnić implementację referencyjną oraz dać zadania i przewodniki wspólnego kontekstu. W tym temacie opisano scenariusz samouczka i przedstawiono przykładowe rozwiązanie.
Opis scenariusza
Firma Fabrikam, Inc., fikcyjna firma, tworzy rozwiązanie, które umożliwia zdalnym zespołom sprzedaży przechowywanie i pobieranie informacji kontaktowych z interfejsu internetowego.
Procesy zarządzania cyklem życia aplikacji (ALM) w firmie Fabrikam, Inc. wymagają wdrożenia rozwiązania w trzech środowiskach serwerowych na różnych etapach procesu tworzenia oprogramowania:
- Środowisko testowe dla deweloperów lub "piaskownica".
- Środowisko przejściowe oparte na intranecie.
- Środowisko produkcyjne dostępne z Internetu.
Każde z tych środowisk ma inne wymagania dotyczące konfiguracji i zabezpieczeń, a każde z nich stanowi unikatowe wyzwania związane z wdrażaniem.
Infrastruktura serwerowa firmy Fabrikam, Inc.
Jest to infrastruktura programowania i wdrażania wysokiego poziomu w firmie Fabrikam, Inc.
Stacje robocze deweloperów, infrastruktura kontroli źródła, środowisko testowe dewelopera i środowisko przejściowe znajdują się w sieci intranetowej w domenie Fabrikam.net. Środowisko produkcyjne znajduje się w sieci obwodowej (nazywanej również strefą DMZ, strefą zdemilitaryzowaną i podsiecią ekranowaną), która jest odizolowana od sieci intranetowej przez zaporę. Jest to typowy scenariusz wdrażania: zazwyczaj izolujesz serwery internetowe dostępne z Internetu z wewnętrznej infrastruktury serwera za pomocą zapór lub serwerów bramy.
W tym przykładzie:
- Serwer Team Foundation Server (TFS) 2010 z oddzielnym serwerem kompilacji zapewnia funkcje kontroli źródła i ciągłej integracji.
- Środowisko testowe dewelopera obejmuje serwer internetowy usług Internet Information Services (IIS) 7.5 i serwer bazy danych SQL Server 2008 R2.
- Środowisko produkcyjne obejmuje wiele serwerów sieci Web usług IIS 7.5 synchronizowanych przez serwer kontrolera programu Web Farm Framework (WFF) wraz z serwerem bazy danych SQL Server 2008 R2. W praktyce serwer bazy danych może używać klastrowania lub dublowania w celu zwiększenia skalowalności i dostępności.
- Środowisko przejściowe zostało zaprojektowane tak, aby replikować konfigurację środowiska produkcyjnego tak ściśle, jak to możliwe.
- Zasady zapory i izolacji sieci nie zezwalają na bezpośrednie, automatyczne wdrażanie z intranetu do sieci obwodowej.
Konfigurację każdego z tych środowisk opisano bardziej szczegółowo w drugim samouczku Konfigurowanie środowisk serwera na potrzeby wdrażania w Sieci Web.
Role zespołu dla alm
Ci użytkownicy biorą udział w tworzeniu, zarządzaniu, tworzeniu i publikowaniu rozwiązania Contact Manager:
Matt Hink jest deweloperem aplikacji internetowych w firmie Fabrikam, Inc. Jest częścią zespołu, który opracował rozwiązanie Contact Manager przy użyciu programu Visual Studio 2010. Matt ma pełne uprawnienia administratora na serwerach w środowisku testowym dewelopera, co pozwala mu skonfigurować środowisko pod kątem swoich potrzeb. Ma również dostęp użytkownika do wystąpienia programu Visual Studio 2010 TFS, w którym przechowuje kod źródłowy rozwiązania Contact Manager.
Rob Walters jest administratorem serwera dla zespołu deweloperów Fabrikam, Inc. Rob ma dostęp administracyjny na serwerze TFS, aby mógł skonfigurować wszystkie aspekty programu TFS i kompilacji zespołowej. Rob ma również dostęp administracyjny do testowych i przejściowych serwerów internetowych i działa jako administrator bazy danych (DBA) dla serwerów baz danych w środowiskach testowych i przejściowych. Rob skonfigurował kompilację zespołu na serwerze TFS, aby wykonywać następujące zadania:
- Kompiluj i uruchamiaj testy jednostkowe w aplikacji za każdym razem, gdy użytkownik zaewidencjonuje plik na serwerze TFS. Jest to nazywane ciągłą integracji.
- Wdróż aplikację Contact Manager w środowisku testowym automatycznie, gdy aplikacja przejdzie testy jednostkowe. Obejmuje to publikowanie bazy danych na serwerach testowych podczas początkowego wdrażania i wszelkich aktualizacji bazy danych po początkowym wdrożeniu.
- Wdróż aplikację Contact Manager w środowisku przejściowym w ramach procesu jednoetapowego.
- Utwórz pakiet sieci Web, którego administrator serwera sieci Web i administrator baz danych może użyć do opublikowania aplikacji w środowisku produkcyjnym.
Lisa Andrews jest administratorem serwera odpowiedzialnym za wdrażanie aplikacji na serwerach produkcyjnych firmy Fabrikam, Inc. Ma dostęp do odczytu do udziału, w którym program TFS Team Build przechowuje pakiet wdrożeniowy sieci Web po skompilowania aplikacji Contact Manager. Ma również dostęp administracyjny do produkcyjnych serwerów internetowych, dzięki czemu może wdrożyć aplikację w środowisku produkcyjnym. Ponadto pełni rolę administratora bazy danych, który wdraża bazy danych i aktualizacje bazy danych na serwerze bazy danych w środowisku produkcyjnym.
Rozwiązanie Contact Manager
Rozwiązanie Contact Manager zostało zaprojektowane tak, aby umożliwić zarejestrowanym, zalogowanym użytkownikom dodawanie i edytowanie informacji kontaktowych za pośrednictwem interfejsu internetowego. Rozwiązanie Contact Manager składa się z czterech pojedynczych projektów:
- ContactManager.Mvc. Jest to projekt aplikacji internetowej MVC3 ASP.NET, który reprezentuje punkt wejścia dla rozwiązania. Oferuje ona pewne podstawowe funkcje aplikacji internetowej, takie jak udostępnianie użytkownikom możliwości tworzenia i wyświetlania danych kontaktowych. Aplikacja korzysta z usługi Windows Communication Foundation (WCF) do zarządzania kontaktami i bazą danych usług aplikacji ASP.NET do zarządzania uwierzytelnianiem i autoryzacją.
- ContactManager.Database. Jest to projekt bazy danych programu Visual Studio 2010. Projekt definiuje schemat bazy danych, w której są przechowywane dane kontaktowe.
- ContactManager.Service. Jest to projekt usługi internetowej WCF. Program WCF uwidacznia punkt końcowy, który umożliwia obiektom wywołującym wykonywanie operacji tworzenia, pobierania, aktualizowania i usuwania (CRUD) w bazie danych programu Contact Manager. Usługa korzysta z bazy danych Contact Manager i zestawu ContactManager.Common.dll.
- ContactManager.Common. Jest to projekt biblioteki klas. Usługa WCF opiera się na typach zdefiniowanych w tym zestawie.
Pełny przegląd rozwiązania i jego wymagań dotyczących wdrażania znajduje się w pierwszym samouczku z tej serii: Web Deployment in the Enterprise (Wdrażanie w internecie w przedsiębiorstwie).
Zadania wdrażania
Istnieje kilka odrębnych zadań związanych z wdrażaniem aplikacji w różnych środowiskach w dużej organizacji. Są to kluczowe zadania, które obejmują samouczki:
Oto lista poszczególnych kroków procesu wdrażania z perspektywy użytkowników opisanych wcześniej w tym dokumencie:
- Wszyscy członkowie zespołu zapoznają się z rozwiązaniem Contact Manager w programie Visual Studio 2010, aby określić kluczowe wymagania i problemy dotyczące wdrażania.
- Matt Hink może wdrożyć rozwiązanie Contact Manager bezpośrednio ze stacji roboczej dewelopera do środowiska testowego dewelopera w celu przeprowadzenia początkowego testu logiki wdrażania.
- Matt Hink dodaje aplikację do kontroli źródła w programie TFS.
- Rob Walters tworzy różne definicje kompilacji dla rozwiązania Contact Manager w kompilacji zespołu. Jedna definicja kompilacji używa ciągłej integracji do wdrażania rozwiązania w środowisku testowym dewelopera za każdym razem, gdy użytkownik zaewidencjonuje nowy kod. Inna definicja kompilacji umożliwia użytkownikom wyzwalanie wdrożeń w środowisku przejściowym zgodnie z potrzebami.
- Za każdym razem, gdy użytkownik zaewidencjonuje nowy kod, kompilacja zespołowa automatycznie kompiluje składniki rozwiązania, uruchamia testy jednostkowe i wdraża rozwiązanie w środowisku testowym dewelopera, jeśli kompilacja zakończyła się pomyślnie, a testy jednostkowe kończą się powodzeniem.
- Gdy użytkownik wyzwoli wdrożenie w środowisku przejściowym, rozwiązanie zostanie spakowane i wdrożone w jednym kroku. Ten proces generuje również pakiet na potrzeby ręcznego wdrażania w środowisku produkcyjnym.
- Lisa Andrews wdraża aplikację w środowisku produkcyjnym, ręcznie importując pakiet internetowy utworzony w kroku 6.
Kluczowe problemy z wdrażaniem
Rozwiązanie Contact Manager i scenariusz Fabrikam, Inc. podkreślają różne typowe problemy i wyzwania, które mogą wystąpić podczas wdrażania złożonych rozwiązań w skali przedsiębiorstwa. Na przykład:
- Musisz mieć możliwość wdrażania projektów w wielu środowiskach, takich jak środowiska deweloperskie lub testowe, platformy przejściowe i serwery produkcyjne. Rozwiązanie należy wdrożyć z różnymi ustawieniami konfiguracji dla każdego środowiska.
- Musisz jednocześnie wdrożyć wiele zależnych projektów w ramach jednego lub zautomatyzowanego procesu kompilowania i wdrażania.
- Musisz mieć możliwość wdrażania z poziomu zautomatyzowanego procesu. Na przykład chcesz użyć procesu ciągłej integracji, aby wdrożyć aplikacje internetowe w środowisku przejściowym po zaewidencjonowania nowego kodu.
- Musisz mieć możliwość kontrolowania procesu wdrażania i ustawiania zmiennych wdrożenia spoza programu Visual Studio, ponieważ deweloperzy prawdopodobnie nie będą mieli poprawnych ustawień konfiguracji lub niezbędnych poświadczeń dla każdego środowiska docelowego.
- Należy wdrożyć projekty bazy danych oparte na schemacie i zachować istniejące dane w kolejnych wdrożeniach.
- Bazy danych członkostwa należy wdrażać w trybie ad hoc bez wdrażania danych konta użytkownika. Może być również konieczne zaktualizowanie schematu wdrożonych baz danych członkostwa bez utraty istniejących danych konta użytkownika.
- Podczas wdrażania zawartości w różnych środowiskach docelowych należy wykluczyć określone pliki lub foldery.
Ponadto zarządzanie wdrożeniem w przypadku częstych aktualizacji i przyrostowych zwiększa liczbę dodatkowych wyzwań. Na przykład:
- Testy jednostkowe są uruchamiane za każdym razem, gdy deweloper zaewidencjonuje nowy kod. Chcesz wdrożyć rozwiązanie tylko wtedy, gdy kod przejdzie testy jednostkowe.
- Podczas wdrażania aplikacji internetowej w środowisku przejściowym lub produkcyjnym chcesz przekierować użytkowników do pliku app_offline.htm na czas trwania procesu wdrażania.
- Chcesz rejestrować działania wdrażania. Proces wdrażania powinien wysyłać powiadomienia e-mail o pomyślnych lub nieudanych wdrożeniach do wyznaczonych adresatów.
- Jeśli wdrożenie automatyczne zakończy się niepowodzeniem, proces wdrażania powinien ponowić próbę bieżącego wdrożenia lub wdrożyć poprzedni pakiet internetowy.