Internet Information Services ossia IIS è il web server alle spalle di tutte le soluzioni Microsoft cloud e on-premise.
Ma qual’è il suo futuro? Microsoft sta proponendo una soluzione ormai superata?
Ambienti e concorrenti
La stabilità e la maturità di un prodotto si capisce dalla sua continuità, intesa come non necessità di cambiare ma semplicemente di evolvere.
IIS è un prodotto che viene da lontano e che persegue una storia di alti e bassi.
Come tutti i prodotti tecnologici che sono attivi in un mercato in continua evoluzione, molte volte IIS ha subito critiche per la sua impostazione “classica”.
IIS non è si è posto in contrapposizione con le alternative open come Apache o NGINX. È rimasto fedele alla sua impostazione di soluzione professionale garantita e continua nel tempo.
Personalmente ho utilizzato sia Apache che NGINX e ritengo che siano ottimi prodotti, tuttavia IIS stupisce per molti aspetti.
Il mercato del cloud, sopratutto quello dei grandi vendor, è fortemente collegato ai web server e ai proxy server.
Queste applicazioni garantiscono la fruizioni di tutti i servizi accessibili attraverso protocolli HTTP e WEBSOCKET. In pratica l’intero cloud.
IIS e l’open source
Pensare al mercato del cloud e slegarlo dal mondo open source è tecnicamente, tecnologicamente e ipoteticamente impossibile.
Praticamente tutti i vendor mondiali, sia di tecnologia che di contenuti multimediali, si basano su tecnologie open source per consentire lo sfruttamento dei propri servizi.
Microsoft ha mantenuto una posizione closed source per molti anni, finché la nuova era marchiata Nadella l’ha portata nella direzione opposta.
Oggi Microsoft è il più grande contributore del mondo open source e ogni sua soluzione cloud è basata su tecnologia open source.
Ma allora perché Microsoft ha continuato a proporre e mantenere un prodotto closed source come IIS in un mercato dominato dall’open source?
Le alternative impossibili
Il mondo dello sviluppo web in casa Microsoft ha subito uno stravolgimento complessivo dall’avvento di .net Core.
.Net Core si pone come alternativa allo sviluppo in ambiente web, desktop e mobile rispetto al precedente .net Framework.
.Net Framework è attivo dal 2002 e gode di un numero incredibile di applicazioni sviluppate ed in sviluppo attualmente.
Insieme a Java SDK è il framework applicativo più ampio al mondo.
Al tempo in cui esisteva esclusivamente .net Framework il web server di riferimento era solamente IIS, perché era l’unico che consentiva l’esecuzione delle applicazioni web sviluppate con gli strumenti proposti da Microsoft (ASP.NET, e ASP Classic).
Oggi, grazie a .net Core, un’applicazione sviluppata con questo framework può girare indistintamente su IIS, Apache o NGINX.
Cloud e distribuzione
Ma oggi qual’è il motivo che spinge Microsoft a mantenere vivo e manutenuto un applicativo come IIS?
Semplice: la capacità di distribuzione.
Nel mondo del cloud computing la fase di maggiore complessità non è quella di sviluppo, è quella di distribuzione e aggiornamento degli ambienti di produzione.
Microsoft ha integrato così efficacemente IIS nei sistemi di distribuzione attraverso le pipelines di Azure che la complessità di gestione è stata quasi completamente mascherata.
Quella che potete vedere qui sotto è una pipeline che ho creato per un cliente in Azure.
In pratica attraverso una definizione scritta in un file YAML sono in grado di:
- installare un server Windows
- configurare il web server Internet Information Services (IIS)
- installare il framework .net Core
- scaricare i sorgenti aggiornati da un repository Git (come Azure o Github)
- compilare i sorgenti generando un insieme di artifact, ossia di risorse installabili
- copiare tutto nelle cartelle del web server
- creare un nuovo sito web e i relativi Application Pool
- mandarlo in esecuzione e renderlo disponibile attraverso un indirizzo web

Tutto questo senza accedere a nessun sistema Windows remoto e senza un’operazione manuale.
Ecco la fase di rilascio (deploy) dopo la precedente fase di creazione e preparazione:

Solidità e configurabilità
La solidità e la configurabilità della soluzione vista sopra è senza precedenti rispetto allo sviluppo web di alcuni anni addietro.
Oggi la vera potenza del cloud è rappresentata proprio da questa capacità di rilasciare spesso e rapidamente, abbattendo i costi di manutenzione e offrendo applicazioni che evolvono molto rapidamente.
Microsoft ha reso l’utilizzo di un server Windows o di un server Linux totalmente trasparente allo sviluppatore che sfrutta gli strumenti integrati di distribuzione.
Oggi IIS, Internet Information Services, è la base, forse inconsapevole, di qualsiasi distribuzione applicativa web in ambiente Microsoft.
Perché cercare un’alternativa quando hai già la migliore possibile in casa?