Udostępnij za pośrednictwem


Wybieranie właściwego podejścia do wdrażania w Internecie

Autor: Jason Lee

Podczas pracy z internetowym narzędziem wdrażania sieci Web (IIS) (Web Deploy) 2.0 lub nowszym dostępne są trzy główne podejścia, których można użyć do pobrania spakowanych aplikacji internetowych na serwerze internetowym. Można:

  • Wdróż aplikację z lokalizacji zdalnej, kierując usługę internetową Deployment Agent (znaną również jako "agent zdalny") na serwerze docelowym.
  • Wdróż aplikację z lokalizacji zdalnej przy użyciu narzędzia Web Deploy On Demand (nazywanego również "agentem tymczasowym").
  • Wdróż aplikację z lokalizacji zdalnej, kierując program obsługi wdrażania sieci Web usług IIS na serwerze docelowym.
  • Wdróż aplikację, ręcznie kopiując pakiet internetowy na serwer docelowy i importując go za pomocą Menedżera usług IIS.

Sposób konfigurowania docelowych serwerów sieci Web zależy od podejścia do wdrożenia, którego chcesz użyć. Ten temat pomoże Ci zdecydować, które podejście do wdrażania jest odpowiednie dla Ciebie.

W tej tabeli przedstawiono główne zalety i wady poszczególnych metod wdrażania wraz ze scenariuszami, które zazwyczaj odpowiadają poszczególnym podejściom.

Podejście Zalety Wady Typowe scenariusze
Agent zdalny Łatwo jest skonfigurować. Nadaje się do regularnych aktualizacji aplikacji internetowych i zawartości. Użytkownik musi być administratorem na serwerze docelowym. użytkownik nie może podać alternatywnych poświadczeń. Środowiska programistyczne. Środowiska testowe.
Agent tymczasowy Nie ma potrzeby instalowania narzędzia Web Deploy na komputerze docelowym. Najnowsza wersja narzędzia Web Deploy jest automatycznie używana. Użytkownik musi być administratorem na serwerze docelowym. Użytkownik nie może podać alternatywnych poświadczeń. Środowiska programistyczne. Środowiska testowe.
Program obsługi web deploy Użytkownicy niebędący administratorami mogą wdrażać zawartość. Nadaje się do regularnych aktualizacji aplikacji internetowych i zawartości. Skonfigurowanie jest o wiele bardziej skomplikowane. Środowiska przejściowe. Środowiska produkcyjne intranetu. Hostowane środowiska.
Wdrażanie w trybie offline Konfiguracja jest bardzo łatwa. Nadaje się do środowisk izolowanych. Administrator serwera musi ręcznie skopiować i zaimportować pakiet internetowy za każdym razem. Środowiska produkcyjne dostępne z Internetu. Izolowane środowiska sieciowe.

Korzystanie z agenta zdalnego

Podczas instalowania narzędzia Web Deploy przy użyciu ustawień domyślnych na serwerze docelowym usługa sieci Web Deployment Agent ("agent zdalny") jest automatycznie instalowana i uruchamiana. Domyślnie agent zdalny uwidacznia punkt końcowy HTTP pod tym adresem:

http://[server]/MSDEPLOYAGENTSERVICE

Uwaga

Możesz zastąpić ciąg [server] nazwą komputera serwera internetowego, adresem IP serwera internetowego lub nazwą hosta rozpoznawaną na serwerze sieci Web.

Administratorzy serwera mogą wdrażać pakiety internetowe z lokalizacji zdalnej, takiej jak maszyna dewelopera lub serwer kompilacji, określając ten adres punktu końcowego. Załóżmy na przykład, że Matt Hink w firmie Fabrikam, Inc. utworzył projekt aplikacji internetowej ContactManager.Mvc na swojej maszynie dewelopera. Proces kompilacji generuje pakiet internetowy wraz z plikiem .deploy.cmd zawierającym polecenia Web Deploy wymagane do zainstalowania pakietu. Jeśli Matt jest administratorem serwera na serwerze TESTWEB1, może wdrożyć aplikację internetową na testowym serwerze internetowym, uruchamiając to polecenie na swojej maszynie dewelopera:

ContactManager.Mvc.deploy.cmd /y /m:http://TESTWEB1/MSDEPLOYAGENTSERVICE a/:NTLM

W rzeczywistości plik wykonywalny Web Deploy może wywnioskować adres punktu końcowego agenta zdalnego, jeśli podasz nazwę maszyny, więc matt musi wpisać tylko następujące polecenie:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /a:NTLM

Uwaga

Aby uzyskać więcej informacji na temat składni wiersza polecenia programu Web Deploy i plików deploy.cmd , zobacz How to: Install a Deployment Package Using the deploy.cmd File (Instrukcje: instalowanie pakietu wdrożenia przy użyciu pliku deploy.cmd).

Agent zdalny oferuje prosty sposób wdrażania zawartości z lokalizacji zdalnej, a takie podejście może dobrze współpracować z jednym kliknięciem lub automatycznym wdrożeniem. Jednak użytkownik, który uruchamia polecenie wdrażania, musi być również administratorem domeny lub członkiem lokalnej grupy administratorów na serwerze docelowym. Ponadto agent zdalny nie obsługuje uwierzytelniania podstawowego, więc nie można przekazać alternatywnych poświadczeń w wierszu polecenia.

Agent zdalny zapewnia przydatne podejście do wdrażania w scenariuszach programistycznych lub testowych, w których deweloperzy nie mają pełnej kontroli administratora nad środowiskiem serwera testowego, a aplikacje są zwykle przebudowane i wdrażane bardzo często. Jednak takie podejście jest zwykle mniej akceptowalne w przypadku środowisk przejściowych lub produkcyjnych.

Aby zapoznać się z kompleksowego przykładu scenariusza korzystającego z podejścia do agenta zdalnego, zobacz Scenariusz: konfigurowanie środowiska testowego na potrzeby wdrażania w sieci Web.

Korzystanie z agenta tymczasowego

Podejście agenta tymczasowego do wdrożenia jest podobne do podejścia do agenta zdalnego. Jednak w przeciwieństwie do podejścia agenta zdalnego nie trzeba instalować narzędzia Web Deploy na docelowym serwerze sieci Web. Zamiast tego podczas wdrażania narzędzie Web Deploy zainstaluje tymczasową wersję usługi agenta wdrażania sieci Web na serwerze docelowym i użyje jej do wdrożenia zawartości w usługach IIS. Po zakończeniu wdrażania zostaną usunięte wszystkie pliki tymczasowe.

Jeśli chcesz użyć ustawienia dostawcy agenta tymczasowego, dodaj flagę /g do polecenia wdrożenia:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /g:true

Uwaga

Nie można użyć agenta tymczasowego, jeśli usługa agenta wdrażania sieci Web jest zainstalowana na komputerze docelowym, nawet jeśli usługa nie jest uruchomiona.

Zaletą tego podejścia jest to, że nie trzeba utrzymywać instalacji narzędzia Web Deploy na serwerach docelowych. Ponadto nie trzeba upewnić się, że na komputerach źródłowych i docelowych jest uruchomiona ta sama wersja narzędzia Web Deploy. Jednak takie podejście ma takie same ograniczenia główne jak podejście do agenta zdalnego, a mianowicie, że musisz być administratorem lokalnym na serwerze docelowym, aby wdrożyć zawartość, a tylko uwierzytelnianie NTLM jest obsługiwane. Podejście agenta tymczasowego wymaga również o wiele większej początkowej konfiguracji środowiska docelowego.

Aby uzyskać więcej informacji na temat korzystania z agenta tymczasowego, zobacz How to: Install a Deployment Package Using the deploy.cmd File and Web Deploy On Demand (Instrukcje: instalowanie pakietu wdrażania przy użyciu pliku deploy.cmd i wdrażania w sieci Web na żądanie).

Korzystanie z programu obsługi web deploy

W przypadku usług IIS 7 program Web Deploy oferuje alternatywne podejście wdrażania za pośrednictwem programu obsługi wdrażania sieci Web usług IIS. Procedura obsługi wdrażania sieci Web jest ściśle zintegrowana z usługą zarządzania siecią Web usług IIS (WMSvc), która została zaprojektowana tak, aby umożliwić użytkownikom zarządzanie witrynami internetowymi usług IIS z lokalizacji zdalnych.

Domyślnie agent zdalny uwidacznia punkt końcowy HTTP pod tym adresem:

https://[server]:8172/MSDeploy.axd

Uwaga

Możesz zastąpić ciąg [server] nazwą komputera serwera internetowego, adresem IP serwera internetowego lub nazwą hosta rozpoznawaną na serwerze sieci Web.

Wielką zaletą programu obsługi web deploy za pośrednictwem agenta zdalnego i agenta tymczasowego jest to, że można skonfigurować usługi IIS, aby umożliwić użytkownikom niebędącym administratorem wdrażanie aplikacji i zawartości w określonych witrynach internetowych usług IIS. Program obsługi web deploy obsługuje również uwierzytelnianie podstawowe, dzięki czemu można podać alternatywne poświadczenia jako parametry w poleceniach Web Deploy. Główną wadą jest to, że procedura obsługi web deploy jest początkowo o wiele bardziej skomplikowana do skonfigurowania i skonfigurowania.

W przypadku użytkowników niebędących administratorami usługa zarządzania siecią Web (WMSvc) zezwala tylko użytkownikowi na nawiązywanie połączenia z usługami IIS przy użyciu połączenia na poziomie lokacji, a nie połączenia na poziomie serwera. Aby uzyskać dostęp do określonej lokacji, możesz dołączyć ciąg zapytania specyficzny dla lokacji w adresie punktu końcowego:

https://[server]:8172/MSDeploy.axd?site=DemoSite

Sugestia Załóżmy na przykład, że proces kompilacji jest skonfigurowany do automatycznego wdrażania aplikacji internetowej w środowisku przejściowym po każdej pomyślnej kompilacji. Jeśli użyto podejścia agenta zdalnego, musisz utworzyć tożsamość procesu kompilacji jako administrator na serwerach docelowych. Z kolei przy użyciu podejścia procedury obsługi wdrażania sieci Web można nadać użytkownikowi innej niż administrator — FABRIKAM\stagingdeployer w tym przypadku — uprawnienia tylko do określonej witryny sieci Web usług IIS, a proces kompilacji może podać te poświadczenia w celu wdrożenia pakietu internetowego. Zwróć uwagę, że w poniższym przykładzie jest używana wartość %ContactManagerPublishPassword%, która ściąga wartość hasła ze zmiennej środowiskowej. Aby pomyślnie wykonać skrypt, %ContactManagerPublishPassword% zmienna musi być zdefiniowana z poprawną wartością.

msdeploy.exe 
  -source:package='…\ContactManager.Mvc.zip' 
  -dest:auto,
        computerName='https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite',
        userName='FABRIKAM\stagingdeployer',
        password=%ContactManagerPublishPassword%,
        authtype='Basic', 
  -verb:sync 
  -setParamFile:"…\ContactManager.Mvc.SetParameters.xml"   
  -allowUntrusted

Uwaga

Aby uzyskać więcej informacji na temat operacji i składni wiersza polecenia programu Web Deploy, zobacz Web Deploy Command Line Reference (Dokumentacja wiersza polecenia web deploy). Aby uzyskać więcej informacji na temat korzystania z pliku .deploy.cmd , zobacz How to: Install a Deployment Package Using the deploy.cmd File (Instrukcje: instalowanie pakietu wdrożenia przy użyciu pliku deploy.cmd).

Procedura obsługi wdrażania sieci Web zapewnia przydatne podejście do wdrażania w środowiskach przejściowych, środowiskach hostowanych i środowiskach produkcyjnych opartych na intranecie, w których dostęp zdalny do serwera jest dostępny, ale poświadczenia administratora nie są.

Aby zapoznać się z kompleksowego przykładu scenariusza korzystającego z podejścia procedury obsługi wdrażania sieci Web, zobacz Scenariusz: konfigurowanie środowiska przejściowego na potrzeby wdrażania w sieci Web.

Korzystanie z wdrożenia w trybie offline

W niektórych przypadkach nie jest możliwe ani praktyczne wdrażanie aplikacji i zawartości w witrynie internetowej usług IIS z lokalizacji zdalnej. Na przykład komputery źródłowe i docelowe mogą znajdować się w izolowanych sieciach lub segmentach sieci, a zasady zapory mogą nie zezwalać na dostęp zdalny.

W takich scenariuszach nadal można używać możliwości tworzenia pakietów i publikowania w narzędziu Web Deploy; po prostu nie można ich używać z lokalizacji zdalnej. Zamiast tego administrator na serwerze docelowym musi skopiować pakiet internetowy na serwer i zaimportować go za pośrednictwem Menedżera usług IIS.

Zamiast tego administrator na serwerze docelowym musi skopiować pakiet internetowy na serwer i zaimportować go za pośrednictwem Menedżera usług IIS.

Metoda wdrażania w trybie offline jest zwykle przydatna w środowiskach produkcyjnych, w których serwery w sieci obwodowej mogą mieć ograniczoną łączność z komputerami w sieci wewnętrznej.

Aby zapoznać się z kompleksowego przykładu scenariusza korzystającego z podejścia wdrażania w trybie offline, zobacz Scenariusz: konfigurowanie środowiska produkcyjnego na potrzeby wdrażania w sieci Web.

Dalsze informacje

Aby uzyskać więcej informacji na temat operacji i składni wiersza polecenia programu Web Deploy, zobacz Web Deploy Command Line Reference (Dokumentacja wiersza polecenia web deploy). Aby uzyskać więcej informacji na temat korzystania z pliku .deploy.cmd , zobacz How to: Install a Deployment Package Using the deploy.cmd File (Instrukcje: instalowanie pakietu wdrożenia przy użyciu pliku deploy.cmd).

Aby uzyskać bardziej ogólne wskazówki dotyczące różnych sposobów wdrażania pakietów internetowych z komputera zdalnego, zobacz Używanie zdalnego wdrażania w sieci Web. Aby uzyskać więcej informacji na temat korzystania z narzędzia Web Deploy on Demand, zobacz Web Deploy On Demand (Wdrażanie na żądanie w sieci Web).