Intoduction à IIS7Intoduction à IIS7
Philippe FREDDIEntreprise Architecte -- [email protected]
Division Plateforme & Ecosystème
Division Plateforme & Ecosystème
AgendaAgenda
Nouvelle architecture d’IIS7Etendre les fonctionnalités de base du serveur IIS7L’intégration avec .NETL’administration
Division Plateforme & Ecosystème
Version IIS 6 : Une plateforme fiableVersion IIS 6 : Une plateforme fiable
Une extensibilité prouvéeMySpace - 23 milliards* Visites/MoisMicrosoft.com – 10K Req/sec & 300K ConnexionsMatch.com 30 millions de pages consultées quotidiennement
Une sécurité prouvéeAucun hotfix critique IIS 6 depuis la sortie RTM*
Une confiance prouvée54% des entreprises classés dans les 1000 premières fortunes utilisent IIS (port80software.com)
Une fondation solide sur laquelle on peut s’appuyer
*(en date du 28 novembre 2006)
Division Plateforme & Ecosystème
Internet Information Services (IIS) 7.0Internet Information Services (IIS) 7.0Plus qu’un serveur WEB, les Internet Information Services 7.0 fournissent un accès aisé à une plateforme extensible
de développement et accueillent de manière fiable des applications et des services Web.
Architecture modulaire
Gestion personnalisable
Tracabilité des requêtes intégrée
Serveur personnalisable
Intégré avec .NET
Améliorations de IIS 7.0
Création de serveur spécialiséSurface
d’attaque réduite
Etendre/Modifier les
fonctionnalités d’IIS
Déploiementrapide
d’application
Diagnostique « temps
réel »
Division Plateforme & Ecosystème
Conception modulaireConception modulairePipeline modulaire
Les fonctionnalités sont fournies par des modules séparés
Ajout/Suppression des modules à votre convenance
En terme de sécurité, réduit la surface d’exposition En terme de mémoire, limite la demande au besoin du moduleAméliore les performances
Ajout de modules personnalisés en mode natif ou managé
Améliore la puissance pour le contenu .NETS’intègre avec des infrastructures spécialiséesFacilite l’intégration de nouvelles technologies
Interface graphique modulaireAjout de pages personnalisées (WinfForm)Intègre la configuration d'application avec IIS
Division Plateforme & Ecosystème
Traitement de la demande dans IIS6Traitement de la demande dans IIS6
Retourne la réponse
Log Compresse
NTLM Basic
CGI
Fichier statiqu
e
Authentification
Anon
Exécution monolithique Installe TOUT OU RIEN!
Les fonctionnalités du serveur sont étendues uniquement via ISAPI!
ASP.NET
…
…
Choix du Handler
PHPISAPI
Division Plateforme & Ecosystème
Traitement de la demande dans IIS7Traitement de la demande dans IIS7
Les fonctionnalités du serveurs ont été séparées en ~ 40 modules...
Les modules s’intègrent sur un pipeline générique d’événements
Les modules étendent les fonctionnalités du serveur grâce à une API publique.Log Compress
e
NTLM Basic
CGI
Fichier statiqu
e
Anon
…
…
Choix du Handler
ISAPI
AuthentificationAutentification
Autorisation
Est-ce en cache?
Exécute le Handler
Mise à jour du cache
…
…
…
Retourne la réponse
Retourne la réponse
Division Plateforme & Ecosystème
Nouveaux outils d’administrationNouveaux outils d’administration
Division Plateforme & Ecosystème
ExtensibleExtensible
IIS 6 L’extensibilité est limitée aux filtres et extensions ISAPILa modification de l’interface graphique dans la MMC relève du parcours du combattantIl est difficile d’étendre le schémaL’activation des Web Services n’est possible qu’en mode HTTP
IIS 7Intégration de modules en code natif ou managéIl est très facile d’ajouter des applications de tiersIl est très facile d’étendre le schémaLes applications de tiers s’intègrent avec le traçage IIS7Les Web Services peuvent utiliser des protocoles TCP personnalisés
Division Plateforme & Ecosystème
Création et ajout d’un moduleCréation et ajout d’un module
Division Plateforme & Ecosystème
Intégration avec .NETIntégration avec .NET
Simplification de la sécurité et de l’administrationUtilise la puissance de .NET pour tous les contenus
Formulaires d’authentificationAutorisation d’URLCache .NETFournisseurs de rôles et d’appartenance .NET
Les nouvelles APIs gèrent IIS 7 et .NETPermet d’écrire des scénarios de déploiement en utilisant Xcopy
Division Plateforme & Ecosystème
Intégration d’IIS6 et ASP.NETIntégration d’IIS6 et ASP.NET
Limitations dues au runtimeVoit seulement les requêtes ASP.NETDuplication des fonctionnalités
Retourne la réponse
Log Compresse
NTLM Basic
CGI
Fichier statiqu
e
Anon
…
…
Choix du Handler
ISAPI
AutentificationForm
sWindow
s
Map Handl
er
ASPX
Trace
……
…
aspnet_isapi.dll
Authentification
Division Plateforme & Ecosystème
CGI
ISAPI
Anon
IIS7 ASP.NET IntegrationIIS7 ASP.NET Integration
Mode classique (natif)
Identique à IIS6
Mode Intégré (managé)
Modules et handlers .NET s’attachent sur le pipelineExécute toutes les requêtes
Authentication
Forms Windows
Map Handl
er
ASPX
Trace
……
…
aspnet_isapi.dll
Log
Compresse
NTLM
Basic
Fichier statiqu
e
…
…
Authentification
Autorisation
Est-ce en cache?
Exécute le Handler
Mise à jour du cache
…
Retourne la réponse
…
Division Plateforme & Ecosystème
Outils d’administrationOutils d’administration
Administre IIS et ASP.NETVisualisation étendue runtime data
worker processes, appdomains, executing requestsAdministration déléguéeDifférents types d’outils pour différents administrateurs
GUILigne de commandeScriptCode managéScript
IIS ManagerappcmdWMI (root\WebAdministration)Microsoft.Web.Administration
PowerShell
Division Plateforme & Ecosystème
Code: Microsoft.Web.AdministrationCode: Microsoft.Web.Administration
ServerManager iisManager = new ServerManager();
foreach(WorkerProcess w3wp in iisManager.WorkerProcesses) { Console.WriteLine("W3WP ({0})", w3wp.ProcessId); foreach(Request request in w3wp.GetRequests(0)) { Console.WriteLine("{0} - {1},{2},{3}", request.Url, request.ClientIPAddr, request.TimeElapsed, request.TimeInState); }}
De nouvelles APIs permettent aux développeurs d’écrire des applications pour déployer, administrer et dépanner
ASP.NET et IIS
Division Plateforme & Ecosystème
Dépannage rapide avec le traçage des requêtes ayant échouéesDépannage rapide avec le traçage des requêtes ayant échouées
Diminue le besoin d’analyse de type “crash dump analysis”Des définitions d’erreurs personnalisées sont configurables par URL
Temps de réponse “Ecrire un événement de traçage pour les demandes de type 200 (ok) ayant répondues en plus de 15 secondes
Statut/Sousstatut codes HTTP “Ecrire un événement de traçage pour la page “Invoice.aspx” ayant un type 500
Niveau d’erreur
Utilisable avec UI, WMI, API, Appcmd
Division Plateforme & Ecosystème
ScenarioScenario
Division Plateforme & Ecosystème
Résumé
• Devient une solide fondation pour des applications WEB
• La granularité de l’administration permet de n’exposer que ce qui est nécessaire
• Le concept modulaire permet d’étendre les fonctionnalités de base sans compromettre ces dernières
Division Plateforme & Ecosystème
Résumé
• On ne raisonne plus en terme de serveur WEB
mais de serveur applicatif pour client légerPhilippe FREDDI
Division Plateforme & Ecosystème
Call to action
• Web cast en anglais• Vidéos de DinnerNow
• Virtual Training en français• En juin sur le canal
MSDN
• Diner Now en anglais• Etudier le scénario et les
exemples de DinnerNow
Division Plateforme & Ecosystème
Liens utilesLiens utiles
Site globalwww.microsoft.com/iis
Site consacré à IIS mis à jour par l’équipe d’IISwww.iis.net
Différents informations utileswww.codeplex.com
DinnerNowwww.dinnernow.com
Division Plateforme & Ecosystème