Udostępnij za pośrednictwem


Wdrażanie w sieci Web w przedsiębiorstwie: omówienie scenariusza

Autor: Jason Lee

W tym zestawie samouczków korzystają z przykładowego rozwiązania z poziomem złożoności, który odzwierciedla rzeczywistość, w połączeniu z fikcyjnym scenariuszem wdrażania w przedsiębiorstwie, aby zaprezentować implementację referencyjną oraz zapewnić wspólny kontekst dla zadań i przewodników. 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.

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 od wewnętrznej infrastruktury serwerów za pomocą zapór lub serwerów bramowych.

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 dla deweloperów obejmuje serwer internetowy usług Internet Information Services (IIS) 7.5 i serwer bazy danych programu SQL Server 2008 R2.
  • Środowisko produkcyjne obejmuje wiele serwerów IIS 7.5, które są synchronizowane przez serwer kontrolera 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 sieciowej i izolacji sieci nie zezwalają na bezpośrednie, automatyczne wdrażanie z intranetu do sieci perymetrycznej.

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 w 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 także dostęp do instancji Visual Studio 2010 TFS, gdzie 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 serwera TFS i kompilacji zespołowej. Rob ma również dostęp administracyjny do testowych i przejściowych serwerów internetowych oraz 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 w celu wykonywania następujących zadań:

    • Kompiluj i uruchamiaj testy jednostkowe w aplikacji za każdym razem, gdy użytkownik zaewidencjonuje plik w programie TFS. Nazywa się to CI (ciągła integracja).
    • Automatycznie wdroż aplikację Contact Manager w środowisku testowym, gdy przejdzie testy jednostkowe. Obejmuje to publikowanie bazy danych na serwerach testowych podczas początkowego wdrożenia 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 bazy 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 tylko do odczytu do zasobu udziału, w którym program TFS Team Build przechowuje pakiet wdrożeniowy sieciowy po skompilowaniu 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:

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.

  • ContactManager.Mvc. Jest to projekt aplikacji internetowej ASP.NET MVC3 reprezentujący punkt wejścia dla rozwiązania. Oferuje ona niektóre podstawowe funkcje aplikacji internetowej, takie jak zapewnienie 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 w celu zarządzania uwierzytelnianiem i autoryzacją.
  • ContactManager.Database. Jest to projekt bazy danych programu Visual Studio 2010. Projekt definiuje schemat bazy danych, która przechowuje 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 opiera się na bazie danych Contact Manager i zestawie ContactManager.Common.dll.
  • ContactManager.Common. Jest to projekt biblioteki klas. Usługa WCF opiera się na typach zdefiniowanych w tym zestawie.

Kompletny 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 różnych zadań związanych z wdrażaniem aplikacji w różnych środowiskach w dużej organizacji. Są to kluczowe zadania, które obejmują samouczki:

Istnieje kilka różnych zadań związanych z wdrażaniem aplikacji w różnych środowiskach w dużej organizacji.

Oto lista każdego kroku procesu wdrażania z perspektywy użytkowników opisanych wcześniej w tym dokumencie:

  1. Wszyscy członkowie zespołu przeanalizują rozwiązanie Contact Manager w programie Visual Studio 2010, aby określić kluczowe wymagania i problemy dotyczące wdrażania.
  2. 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.
  3. Matt Hink dodaje aplikację do kontroli źródła w programie TFS.
  4. Rob Walters tworzy różne definicje kompilacji dla rozwiązania Contact Manager w Team Build. 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.
  5. Za każdym razem, gdy użytkownik zaewidencjonuje nowy kod, Team Build automatycznie kompiluje składniki rozwiązania, uruchamia testy jednostkowe i wdraża rozwiązanie w środowisku testowym dewelopera, jeśli kompilacja i testy jednostkowe zakończyły się pomyślnie.
  6. Gdy użytkownik wyzwoli wdrożenie w środowisku przejściowym, rozwiązanie jest pakowane i wdrażane w procesie jednoetapowym. Ten proces generuje również pakiet na potrzeby ręcznego wdrażania w środowisku produkcyjnym.
  7. 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. 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 musi zostać wdrożone z różnymi ustawieniami konfiguracji dla każdego środowiska.
  • Musisz wdrożyć wiele projektów zależnych jednocześnie w ramach pojedynczego lub zautomatyzowanego procesu kompilowania i wdrażania.
  • Musisz mieć możliwość napędzania wdrożenia z poziomu zautomatyzowanego procesu. Na przykład chcesz użyć procesu ciągłej integracji, aby wdrażać aplikacje internetowe w środowisku przejściowym, gdy wprowadzany jest nowy kod.
  • Musisz mieć możliwość kontrolowania procesu wdrażania i ustawiania zmiennych wdrażania spoza programu Visual Studio, ponieważ deweloperzy prawdopodobnie nie będą mieć poprawnych ustawień konfiguracji lub niezbędnych poświadczeń dla każdego środowiska docelowego.
  • Należy wdrożyć projekty baz 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.
  • Należy wykluczyć niektóre pliki lub foldery podczas wdrażania zawartości w różnych środowiskach docelowych.

Ponadto zarządzanie wdrożeniem w przypadku częstych aktualizacji i przyrostowych zgłasza pewne dodatkowe wyzwania. Przykład:

  • Testy jednostkowe są uruchamiane za każdym razem, gdy deweloper sprawdza 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.