Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
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:
- 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:
Oto lista każdego kroku procesu wdrażania z perspektywy użytkowników opisanych wcześniej w tym dokumencie:
- 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.
- 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 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.
- 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.
- 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.
- 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.