Udostępnij za pośrednictwem


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.

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:

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 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:

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

Oto lista poszczególnych kroków procesu wdrażania z perspektywy użytkowników opisanych wcześniej w tym dokumencie:

  1. 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.
  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 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.
  5. 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.
  6. 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.
  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. 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.