Introduzione alla distribuzione Web

di Duro Mittal

Che cos'è Distribuzione Web?

Distribuzione Web è uno strumento client-server estendibile per la sincronizzazione del contenuto e della configurazione in IIS. La distribuzione Web viene usata principalmente in due scenari:

  1. Gli sviluppatori lo usano per sincronizzare (ovvero "pubblica") applicazioni Web compilate (ASP .Net, PHP e così via) da strumenti di sviluppo (Visual Studio, WebMatrix e così via) a IIS
  2. I professionisti IT lo usano per eseguire la migrazione di siti Web & applicazioni da un sistema operativo che esegue una versione precedente di IIS, ad esempio IIS6 a un sistema operativo che esegue una versione più recente di IIS, ad esempio IIS 7.5.

Diagramma che mostra il percorso da Origine a Destinazione. Tra questi punti sono Siti Web, Database e Configurazione.

In che modo Web Deploy viene confrontato con FTP?

Distribuzione Web viene spesso confrontata con tecnologie come FTP, XCOPY o RoboCopy. Sebbene queste tecnologie siano utili, Distribuzione Web offre diversi vantaggi.

Di seguito è riportato un confronto tra Distribuzione Web in FTP:

  1. Distribuzione Web è più veloce di FTP. Distribuzione Web non esegue un comando diverso per ogni operazione. Esegue invece un confronto all'inizio della sincronizzazione e trasferisce solo le modifiche.
  2. Distribuzione Web è sicura. Distribuzione Web supporta il trasferimento tramite HTTPS. Si noti che anche le varianti di FTP, ad esempio SFTP e FTPS, sono sicure.
  3. Distribuzione Web può impostare descrittori di sicurezza (ACL) nei file e nelle directory di destinazione. Ad esempio, è possibile usare Distribuzione Web per concedere a un utente di Windows l'accesso specifico alla cartella "Download" dell'applicazione durante la distribuzione.
  4. Distribuzione Web può pubblicare database. Distribuzione Web include il supporto predefinito per lo scripting di SQL Server, MySQL Server, Sqlite e SQL Server Compact database e l'applicazione dello script risultante durante la sincronizzazione. Questo può essere molto utile se l'app necessita di un database per funzionare.
  5. Distribuzione Web può applicare trasformazioni durante la distribuzione. È possibile usare Distribuzione Web per modificare un stringa di connessione o un'impostazione dell'applicazione durante una sincronizzazione. Distribuzione Web supporta un'ampia gamma di trasformazioni, inclusa la trasformazione delle impostazioni iis.
  6. Distribuzione Web si integra con Visual Studio 2010 e WebMatrix.
  7. Distribuzione Web è estendibile. Distribuzione Web include un modello di estendibilità ricco e accessibile pubblicamente che consente di creare nuovi scenari.

Come funziona?

Diagramma che mostra il percorso da Origine a Destinazione per Amministrazione e un altro percorso per Amministrazione e Non Amministrazione.

La maggior parte delle operazioni di distribuzione Web viene modellata in base all'operazione di sincronizzazione tra un'origine e una destinazione. L'operazione di sincronizzazione viene orchestrata dal framework distribuzione Web usando uno o più provider di distribuzione Web, come descritto di seguito.

Framework

Distribuzione Web è costituito da un framework che gestisce lo stato di connessione e orchestra la sincronizzazione tra l'origine & destinazione. Ad esempio, il framework è responsabile della sincronizzazione di determinati tipi di contenuto, dell'esecuzione di regole e della trasformazione dei file.

Il framework è accessibile tramite un'API pubblica e tramite un eseguibile della riga di comando ,msdeploy.exe.

Provider

Distribuzione Web può sincronizzare qualsiasi tipo di dati tra due posizioni tramite l'uso dei relativi provider predefiniti che si collegano al framework. I provider sanno come sincronizzare un particolare tipo di dati tra due origini o recuperare informazioni utili sull'origine dati.

Ad esempio, Distribuzione Web dispone di un provider che funziona con i database SQL (dbFullSql) in grado di sincronizzare un intero database SQL Server in un altro server. Altri provider predefiniti sincronizzano i database MySQL (dbMySql), la configurazione di IIS 7 (appHostConfig), gli assembly GAC (gacAssembly) o gli oggetti COM (comObject32/comObject64). Un elenco più completo è disponibile in TechNet.

Il modello di provider è estendibile e consente agli sviluppatori di scrivere i propri provider per Distribuzione Web se devono sincronizzare i dati personalizzati.

Sotto il cofano

Quando un'origine avvia un'azione tramite Distribuzione Web, Web Deploy Framework stabilisce una connessione con la destinazione. Distribuzione Web supporta due endpoint di connessione e quello usato dipende da diversi fattori:

Diagramma che mostra un albero delle decisioni per una destinazione I S 7.

  • Se la destinazione è Windows Server 2003 che esegue IIS6, è possibile connettersi al relativo servizio Web Deployment Agent (noto anche come endpoint del servizio agente remoto). Il servizio Agente remoto garantisce la sicurezza per questa connessione ed è accessibile solo agli utenti amministratori.
  • Se la destinazione è Windows Server 2008 che esegue IIS7 o Windows Server 2008 R2 che esegue IIS7.5 E ci si connette con credenziali non di amministratore, è necessario connettersi all'endpoint del servizio di gestione Web. Distribuzione Web installa un gestore nel servizio di gestione Web, che consente agli utenti non amministratori di eseguire la distribuzione dopo l'autenticazione e l'autorizzazione con il servizio di gestione Web.
  • Se la destinazione è Windows Server 2008 che esegue IIS7 o Windows Server 2008 R2 che esegue IIS7.5 E ci si connette con le credenziali di amministratore, è possibile connettersi a entrambi gli endpoint.

Per altre informazioni

Visitare le esercitazioni dettagliate su iis.net e la documentazione technet.