Udostępnij za pomocą


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

Autor: Jason Lee

Podczas pracy z narzędziem Internet Information Services (IIS) Web Deployment Tool (Web Deploy) 2.0 lub nowszym istnieją trzy główne podejścia, których można użyć do pobrania spakowanych aplikacji internetowych na serwer internetowy. Masz dwie możliwości:

  • Wdróż aplikację z lokalizacji zdalnej, celując w usługę agenta wdrażania sieci Web (znaną również jako "agent zdalny") na serwerze docelowym.
  • Wdróż aplikację ze zdalnej lokalizacji przy użyciu narzędzia Web Deploy On Demand (nazywanego również "agentem tymczasowym").
  • Wdróż aplikację ze zdalnej lokalizacji, celując w IIS Web Deploy Handler na serwerze docelowym.
  • Wdróż aplikację, ręcznie kopiując pakiet internetowy na serwer docelowy i importując go za pośrednictwem 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 wdrożenia jest odpowiednie dla Ciebie.

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

Metoda Zalety Niekorzyści Typowe scenariusze
Agent zdalny Konfiguracja jest łatwa. 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 Na komputerze docelowym nie ma potrzeby instalowania narzędzia Web Deploy. Najnowsza wersja narzędzia Web Deploy jest używana automatycznie. Użytkownik musi być administratorem na serwerze docelowym. Użytkownik nie może podać alternatywnych poświadczeń. Środowiska programistyczne. Środowiska testowe.
Moduł 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 testowe. Środowiska produkcyjne intranetu. Środowiska hostowane.
Wdrażanie w trybie offline Konfiguracja jest bardzo łatwa. Nadaje się do izolowanych środowisk. 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 agenta wdrażania sieci Web ("agent zdalny") jest automatycznie instalowana i uruchamiana. Domyślnie agent zdalny uwidacznia punkt końcowy HTTP pod tym adresem:

http://[server]/MSDEPLOYAGENTSERVICE

Uwaga / Notatka

Możesz zastąpić ciąg [server] nazwą komputera serwera internetowego, adresem IP serwera internetowego lub nazwą hosta rozpoznawaną jako serwer internetowy.

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 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 / Notatka

Aby uzyskać więcej informacji na temat składni wiersza polecenia narzędzia Web Deploy i plików .deploy.cmd , zobacz How to: Install a Deployment Package Using the deploy.cmd File (Instrukcje: instalowanie pakietu wdrożeniowego 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 zautomatyzowanym 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 programowania lub testowania, w których deweloperzy nie mogą mieć pełnej kontroli administratora nad środowiskiem serwera testowego, a aplikacje są zwykle odbudowywane 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 zdalnego agenta, zobacz Scenariusz: Konfigurowanie środowiska testowego na potrzeby wdrażania w Sieci Web.

Korzystanie z agenta tymczasowego

Podejście do wdrożenia za pomocą agenta tymczasowego jest podobne do podejścia za pomocą agenta zdalnego. Jednak w przeciwieństwie do podejścia zdalnego agenta 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 wszystkie pliki tymczasowe zostaną usunięte.

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 / Notatka

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 programu Web Deploy na serwerach docelowych. Ponadto nie musisz 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 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ż znacznie większej konfiguracji początkowej ś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 wdrożeniowego przy użyciu pliku deploy.cmd i narzędzia Web Deploy na żądanie).

Korzystanie z web deploy handlera

Dla usług IIS 7 i nowszych, Web Deploy oferuje alternatywne podejście wdrażania za pośrednictwem modułu obsługi wdrażania Web IIS. Program obsługi wdrażania sieci Web jest ściśle zintegrowany 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 sieci Web usług IIS z lokalizacji zdalnych.

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

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

Uwaga / Notatka

Możesz zastąpić ciąg [server] nazwą komputera serwera internetowego, adresem IP serwera internetowego lub nazwą hosta rozpoznawaną jako serwer internetowy.

Wielką zaletą programu Web Deploy Handler w porównaniu do agenta zdalnego i agenta tymczasowego jest to, że można skonfigurować usługi IIS tak, aby użytkownicy niebędący administratorami mogli wdrażać aplikacje i zawartość w określonych witrynach 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 obsługa Web Deploy jest początkowo o wiele bardziej skomplikowana do zainstalowania i skonfigurowania.

W przypadku użytkowników niebędących administratorami usługa zarządzania siecią Web (WMSvc) zezwala tylko użytkownikowi na łączenie się 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 witryny, możesz uwzględnić ciąg zapytania specyficzny dla lokacji w adresie punktu końcowego:

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

Sugestia Na przykład załóżmy, ż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 metody agenta zdalnego, musisz ustawić tożsamość procesu kompilacji jako administratora na serwerach docelowych. W przeciwieństwie do tego, używając podejścia Obsługującego Web Deploy, można nadać użytkownikowi innemu niż administrator — FABRIKAM\stagingdeployer w tym przypadku — uprawnienia tylko do konkretnej witryny usług IIS, a proces kompilacji może wykorzystać te poświadczenia do wdrożenia pakietu sieciowego. 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=,
        authtype='Basic', 
  -verb:sync 
  -setParamFile:"…\ContactManager.Mvc.SetParameters.xml"   
  -allowUntrusted

Uwaga / Notatka

Aby uzyskać więcej informacji na temat operacji i składni wiersza polecenia narzędzia Web Deploy, zobacz Web Deploy Command Line Reference (Dokumentacja wiersza polecenia narzędzia 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żeniowego przy użyciu pliku deploy.cmd).

Obsługa wdrażania sieciowego zapewnia przydatne podejście do wdrażania w środowiskach przejściowych, hostowanych i produkcyjnych w sieci wewnętrznej, gdzie jest dostępny zdalny dostęp do serwera, ale bez poświadczeń administratora.

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

Korzystanie z wdrażania w trybie offline

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

W takich scenariuszach nadal można używać funkcji 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.

Podejście do wdrażania w trybie offline jest zwykle przydatne 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 do wdrażania w trybie offline, zobacz Scenariusz: Konfigurowanie środowiska produkcyjnego na potrzeby wdrażania w Sieci Web.

Dalsza lektura

Aby uzyskać więcej informacji na temat operacji i składni wiersza polecenia narzędzia Web Deploy, zobacz Web Deploy Command Line Reference (Dokumentacja wiersza polecenia narzędzia 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żeniowego 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 Using Web Deploy Remotely (Zdalne wdrażanie w sieci Web). Aby uzyskać więcej informacji na temat korzystania z narzędzia Web Deploy on Demand, zobacz Web Deploy On Demand.