La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Buenas prácticas para migrar a IIS 6.0 desde versiones anteriores Bill Staples Group Program Manager IIS Microsoft Corporation.

Presentaciones similares


Presentación del tema: "Buenas prácticas para migrar a IIS 6.0 desde versiones anteriores Bill Staples Group Program Manager IIS Microsoft Corporation."— Transcripción de la presentación:

1 Buenas prácticas para migrar a IIS 6.0 desde versiones anteriores Bill Staples Group Program Manager IIS Microsoft Corporation

2 Agenda IIS 6.0 – Introducción IIS 6.0 – Introducción Fiabilidad – un nuevo modelo de procesos Fiabilidad – un nuevo modelo de procesos Seguridad Seguridad Rendimiento y escalabilidad Rendimiento y escalabilidad Mejor administración Mejor administración Consideraciones Consideraciones Recursos Recursos Preguntas y respuestas Preguntas y respuestas

3 Fiabilidad Una nueva arquitectura para W3SVC en IIS 6.0 Objetivo: permitir el aislamiento total de una aplicación del resto de las aplicaciones del Web y del sistema operativo del servidor. Objetivo: permitir el aislamiento total de una aplicación del resto de las aplicaciones del Web y del sistema operativo del servidor. Funcionalidad de Web Service en INETINFO repartida entre: Funcionalidad de Web Service en INETINFO repartida entre: HTTP.sys: listener en modo kernel y enrutador de peticiones HTTP.sys: listener en modo kernel y enrutador de peticiones W3SVC: pasa a ser el gestor de configuración y procesado W3SVC: pasa a ser el gestor de configuración y procesado W3Core: donde se procesan las aplicaciones Web W3Core: donde se procesan las aplicaciones Web Carga de múltiples DLL W3Core dentro de archivos W3WP.exe Carga de múltiples DLL W3Core dentro de archivos W3WP.exe Dos modos del modelo de procesos: Dos modos del modelo de procesos: [Default] modo de aislamiento de proceso de usuario (worker process) [Default] modo de aislamiento de proceso de usuario (worker process) Modo de aislamiento de IIS 5.0 Modo de aislamiento de IIS 5.0 HTTP.SYS kernel W3SVC W3Core Webapp

4 Fiabilidad Repaso – Modelo de Proceso de IIS 5.0 INETINFO.exe metabase ftp, smtp, nntp W3SVC Winsock ISAPI Filters In-procApps ASP.NET.Net App Domain ASPNET_WP.exe Pooled OOP Apps DLLHOST.exe Isolated OOP App DLLHOST.exe DLLHOST.exe DLLHOST.exe User mode Kernel mode

5 Fiabilidad Modo de aislamiento del proceso de trabajo en IIS6.0 INETINFO.exe metabase ftp, smtp, nntp User mode Kernel mode HTTP.SYS W3SVC SVCHOST.exe W3 Config Mgr W3 Process Mgr W3Core ISAPI Filters W3WP.exe All Apps (no OOP) Application Pool W3Core ISAPI Filters W3WP.exe All Apps (no OOP) Application Pool W3Core W3WP.exe ASP.net Apps.Net App Domain

6 Fiabilidad Agrupamientos de aplicaciones (pools) Se pueden crear uno o más agrupamientos de aplicaciones Se pueden crear uno o más agrupamientos de aplicaciones Cada uno, servido por uno o más archivos W3WP.exe Cada uno, servido por uno o más archivos W3WP.exe Cada W3WP.exe trabaja con un solo pool Cada W3WP.exe trabaja con un solo pool Peticiones encaminadas directamente al pool desde HTTP.sys Peticiones encaminadas directamente al pool desde HTTP.sys Aislamiento de aplicaciones en base a: Aislamiento de aplicaciones en base a: Site/Cliente Site/Cliente Funcionalidad Funcionalidad Fiabilidad Fiabilidad

7 Fiabilidad Reciclaje periódico del proceso ¿Qué es? ¿Qué es? Reinicio periódico de las aplicaciones en base a: Reinicio periódico de las aplicaciones en base a: Tiempo [Default] Tiempo [Default] Número de peticiones Número de peticiones Reinicios planificados Reinicios planificados Consumo de memoria Consumo de memoria Bajo demanda Bajo demanda ¿Por qué hacerlo? ¿Por qué hacerlo? Refrescar aplicaciones para garantizar su disponibilidad Refrescar aplicaciones para garantizar su disponibilidad Previene que aplicaciones mal desarrolladas puedan colapsar el sistema Previene que aplicaciones mal desarrolladas puedan colapsar el sistema Efecto en las aplicaciones Efecto en las aplicaciones Cambio de estado o pérdida de cache en el reciclado Cambio de estado o pérdida de cache en el reciclado Posibles incidencias debidas a múltiples instancias. Posibles incidencias debidas a múltiples instancias.

8 Fiabilidad Arquitectura auto contenida Chequeo de salud (pinging) ¿Que es? Chequeo de salud (pinging) ¿Que es? Diseñado para detectar bloqueos en threads de W3WP.exe Diseñado para detectar bloqueos en threads de W3WP.exe Puede engancharse si no hay threads en W3WP.exe disponibles para responder en la ventana de tiempo asignada. Puede engancharse si no hay threads en W3WP.exe disponibles para responder en la ventana de tiempo asignada. ¿Cómo funciona? ¿Cómo funciona? W3SVC hará ping a cada W3WP.exe W3SVC hará ping a cada W3WP.exe El proceso tiene un tiempo preconfigurado de respuesta El proceso tiene un tiempo preconfigurado de respuesta Si no responde en ese periodo: Si no responde en ese periodo: Por defecto: mata el proceso, publica el evento y arranca un nuevo proceso. Por defecto: mata el proceso, publica el evento y arranca un nuevo proceso. O puede configurarse para ejecutar otra acción o proceso => Orphaning O puede configurarse para ejecutar otra acción o proceso => Orphaning ASP y ASP.NET utilizan el ping para solicitar un reciclaje si aparecen síntomas de error. ASP y ASP.NET utilizan el ping para solicitar un reciclaje si aparecen síntomas de error.

9 Fiabilidad Detección de caídas y recuperación Detección de caídas Detección de caídas W3SVC detecta la caída de W3WP.exe W3SVC detecta la caída de W3WP.exe W3SVC arrancará un nuevo W3WP.exe si hay demanda W3SVC arrancará un nuevo W3WP.exe si hay demanda Peticiones encoladas en HTTP.sys mientras arranca el nuevo W3WP Peticiones encoladas en HTTP.sys mientras arranca el nuevo W3WP Efecto neto: servicio no interrumpido Efecto neto: servicio no interrumpido Protección rápida frente a fallos Protección rápida frente a fallos Únicamente permite x caídas en y minutos Únicamente permite x caídas en y minutos Automáticamente para el pool si se excede ese valor – Devuelve error 503 a las peticiones a ese pool. Automáticamente para el pool si se excede ese valor – Devuelve error 503 a las peticiones a ese pool.

10 Fiabilidad Consideraciones para las aplicaciones Diseñar las aplicaciones pensando en su reciclaje Diseñar las aplicaciones pensando en su reciclaje Independizar los estados y cache del proceso del servidor Independizar los estados y cache del proceso del servidor Para ASP.NET, usar el servicio de estado de sesión externo o Microsoft® SQL Server para almacenar los estados. Para ASP.NET, usar el servicio de estado de sesión externo o Microsoft® SQL Server para almacenar los estados. Cuidado con los problemas derivados de la multiinstancia Cuidado con los problemas derivados de la multiinstancia Pueden aparecer durante: Pueden aparecer durante: Reciclajes: se superponen por defecto, pero puede deshabilitarse el reciclaje con superposición o reciclarlos todos juntos. Reciclajes: se superponen por defecto, pero puede deshabilitarse el reciclaje con superposición o reciclarlos todos juntos. Dos pools de aplicaciones cargando el mismo código de aplicación. Dos pools de aplicaciones cargando el mismo código de aplicación. Si no se puede cambiar el código, asignar todos los URL al mismo agrupamiento. Si no se puede cambiar el código, asignar todos los URL al mismo agrupamiento. IIS 5-ismos – dependencias de comportamientos de IIS5.0 IIS 5-ismos – dependencias de comportamientos de IIS5.0 Ejecución con privilegios LocalSystem Ejecución con privilegios LocalSystem En el modelo de aislamiento de Proceso de Trabajo no se utiliza OOP de COM+ En el modelo de aislamiento de Proceso de Trabajo no se utiliza OOP de COM+ Filtros de datos globales. Filtros de datos globales. Si lo anterior no puede modificarse, ejecutar IIS6.0 en el modo de aislamiento de IIS5.0 Si lo anterior no puede modificarse, ejecutar IIS6.0 en el modo de aislamiento de IIS5.0 Carga W3Core dentro de INETINFO, como hace OOP en IIS5.0 Carga W3Core dentro de INETINFO, como hace OOP en IIS5.0

11 Seguridad en IIS 6.0 Seguridad en la instalación Instalación limpia Instalación limpia IIS no se instala en una instalación limpia por defecto. IIS no se instala en una instalación limpia por defecto. Utilizar el asistente Configure su Servidor para instalar el rol de servidor de aplicaciones. Instala: Utilizar el asistente Configure su Servidor para instalar el rol de servidor de aplicaciones. Instala: IIS 6.0 IIS 6.0 FPSE (deshabilitado) FPSE (deshabilitado) ASP.NET (deshabilitado) ASP.NET (deshabilitado) Actualizaciones Actualizaciones W3SVC deshabilitado salvo que se instale URLScan antes de la actualización. W3SVC deshabilitado salvo que se instale URLScan antes de la actualización.

12 Seguridad en IIS 6.0 Reducción de la superficie de ataque Lista de Restricciones Lista de Restricciones Sólo ejecuta peticiones para extensiones y CGIs permitidos. Sólo ejecuta peticiones para extensiones y CGIs permitidos. Por defecto no se permiten extensiones ni CGI Por defecto no se permiten extensiones ni CGI Si se solicita una extensión o CGI no permitidos, se devuelve un error Si se solicita una extensión o CGI no permitidos, se devuelve un error Usar el nodo Web Service Extensions en MMC para permitir o prohibir extensiones y CGIs Usar el nodo Web Service Extensions en MMC para permitir o prohibir extensiones y CGIs Extensiones de archivo conocidas Extensiones de archivo conocidas Únicamente suministra peticiones definidas en MIMEMAP Únicamente suministra peticiones definidas en MIMEMAP Error para peticiones no incluidas en MIMEMAP Error para peticiones no incluidas en MIMEMAP Consideraciones Consideraciones Si se usa Visual Studio.NET, definir los archivos.tmp en MIMEMAP Si se usa Visual Studio.NET, definir los archivos.tmp en MIMEMAP Visual Studio.NET resuelve esto en SP1. Visual Studio.NET resuelve esto en SP1.

13 Seguridad en IIS 6.0 Identidad del Proceso de Trabajo configurable El Proceso de trabajo puede iniciarse como: El Proceso de trabajo puede iniciarse como: Servicio Network (default) Servicio Network (default) Local system Local system Local service Local service ID preconfigurado ID preconfigurado IIS_WPG IIS_WPG Nuevo grupo de usuarios Nuevo grupo de usuarios Recursos IIS puestos dentro de una ACL en este grupo Recursos IIS puestos dentro de una ACL en este grupo Devuelve errores 503 si la cuenta configurada no forma parte de IIS_WPG Devuelve errores 503 si la cuenta configurada no forma parte de IIS_WPG Consideraciones Consideraciones El mapeo de Passport para Directorio Activo exige uso de LocalSystem El mapeo de Passport para Directorio Activo exige uso de LocalSystem Kerberos puede necesitar configuración adicional para este ID Kerberos puede necesitar configuración adicional para este ID

14 Seguridad en IIS 6.0 Cambios de seguridad desde IIS 5.0 Sub-autenticación no se instala por defecto en instalaciones limpias Sub-autenticación no se instala por defecto en instalaciones limpias Efecto: las passwords pueden caducar para las cuentas IWAM y IUSR Efecto: las passwords pueden caducar para las cuentas IWAM y IUSR Solución: instalar SubAuth o resolverlo con un esquema de sincronización propio Solución: instalar SubAuth o resolverlo con un esquema de sincronización propio URLs restringidas a un máximo de 16Kb de longitud con un parsing más restrictivo URLs restringidas a un máximo de 16Kb de longitud con un parsing más restrictivo No se admiten caracteres extraños, etc. No se admiten caracteres extraños, etc. El contenido en Inetpub se protege contra escritura El contenido en Inetpub se protege contra escritura Las herramientas de línea de comandos solo las pueden utilizar los administradores. Las herramientas de línea de comandos solo las pueden utilizar los administradores.

15 Seguridad en IIS 6.0 Recomendaciones Hacer una instalación limpia en lugar de actualización – más seguro por defecto Hacer una instalación limpia en lugar de actualización – más seguro por defecto No hay aún una herramienta de bloqueo para que IIS6.0 pueda gestionar las actualizaciones No hay aún una herramienta de bloqueo para que IIS6.0 pueda gestionar las actualizaciones Ejecutar los archivos W3WP.exe de los pools de aplicaciones como Network Service (valor por defecto) Ejecutar los archivos W3WP.exe de los pools de aplicaciones como Network Service (valor por defecto) Permitir solamente las extensiones que necesitan las aplicaciones. Permitir solamente las extensiones que necesitan las aplicaciones. Prohibir todo lo demás para reducir la superficie de ataque Prohibir todo lo demás para reducir la superficie de ataque Revisar los logs de visitas a IIS y el log HTTPERR Revisar los logs de visitas a IIS y el log HTTPERR Log de visitas de IIS: códigos de substatus guardados en formatos válidos para W3C y binarios. Log de visitas de IIS: códigos de substatus guardados en formatos válidos para W3C y binarios. HTTPERR: detalles de los motivos para errores 503 y finalización de conexiones HTTPERR: detalles de los motivos para errores 503 y finalización de conexiones

16 Rendimiento en IIS 6.0 Mejor rendimiento en el mundo real Benchmarks de e-commerce de Doculabs. Medidas del rendimiento global de algunos escenarios comunes en entornos de comercio electrónico. Benchmarks de e-commerce de Doculabs. Medidas del rendimiento global de algunos escenarios comunes en entornos de comercio electrónico. Logon, visualización de elementos, búsquedas, operaciones de carrito de la compra y pagos Logon, visualización de elementos, búsquedas, operaciones de carrito de la compra y pagos Cache de archivos estáticos, operaciones de BBDD, gestión del estado de sesión. Cache de archivos estáticos, operaciones de BBDD, gestión del estado de sesión. Reqs/sec 1P: 49% 4P: 120% 8P: 170% 1P - 4P: 3.3x 1P - 8P: 5.0x

17 Rendimiento en IIS 6.0 Respuestas cacheadas en HTTP.SYS Contenido dinámico cacheado, suministrado directamente desde HTTP.SYS Contenido dinámico cacheado, suministrado directamente desde HTTP.SYS Podría operar al doble de velocidad cuando se suministra desde el modo de transición del kernel – no usuario Podría operar al doble de velocidad cuando se suministra desde el modo de transición del kernel – no usuario Sus aplicaciones no reciben las peticiones si se sirven desde la cache Sus aplicaciones no reciben las peticiones si se sirven desde la cache Archivos estáticos cacheados por defecto Archivos estáticos cacheados por defecto Cache inteligente: sólo se cachea contenido estático muy solicitado Cache inteligente: sólo se cachea contenido estático muy solicitado Rellamada al API de invalidación Rellamada al API de invalidación Se potencia también la cabecera Expires para establecer un timeout automático para las respuestas cacheadas. Se potencia también la cabecera Expires para establecer un timeout automático para las respuestas cacheadas. Consideraciones Consideraciones Utilizar en respuestas dinámicas si pueden mantenerse por un cierto periodo de tiempo Utilizar en respuestas dinámicas si pueden mantenerse por un cierto periodo de tiempo Se reduce la carga en el servidor si la respuesta puede entregarse desde la cache Se reduce la carga en el servidor si la respuesta puede entregarse desde la cache ASP.NET -> usar la directiva OutputCache Location=Server para marcar una respuesta como cacheable. ASP.NET -> usar la directiva OutputCache Location=Server para marcar una respuesta como cacheable.

18 Rendimiento en IIS 6.0 traza del Capacity Planning Se conecta en posiciones clave durante el tiempo de vida de la petición, desde el inicio de la misma hasta el envío definitivo de la respuesta: Se conecta en posiciones clave durante el tiempo de vida de la petición, desde el inicio de la misma hasta el envío definitivo de la respuesta: HTTP Start, Route, Cache Hit, End HTTP Start, Route, Cache Hit, End ISAPI Filter Start/Stop (nombre del filtro, notificación) ISAPI Filter Start/Stop (nombre del filtro, notificación) ISAPI Extension Start/Stop ISAPI Extension Start/Stop ASP Start/Stop ASP Start/Stop ASP.net Start/Stop ASP.net Start/Stop Útil en depuración también - ¿dónde se bloquea la petición? Útil en depuración también - ¿dónde se bloquea la petición? Ejemplo de un cliente: MS.COM Ejemplo de un cliente: MS.COM Utiliza esto para localizar páginas de alto consumo de CPU Utiliza esto para localizar páginas de alto consumo de CPU También se emplea para diagnosticar dónde se producen retrasos También se emplea para diagnosticar dónde se producen retrasos

19 W3Core ISAPI Filters W3WP.exe All Apps (no OOP) W3Core ISAPI Filters W3WP.exe All Apps (no OOP) Rendimiento en IIS 6.0 Jardines Web y afinidad de procesador Jardines web: Jardines web: Pools de aplicaciones con más de un proceso de trabajo Pools de aplicaciones con más de un proceso de trabajo Enrutamiento basado en conexión dentro del Jardín Enrutamiento basado en conexión dentro del Jardín Afinidad de procesador Afinidad de procesador Asignación de procesos de un pool de aplicaciones a una o más CPUs Asignación de procesos de un pool de aplicaciones a una o más CPUs Configuración basada en máscaras Configuración basada en máscaras Consideraciones Consideraciones Jardines Web Jardines Web Posibles incidencias en multi- instancia Posibles incidencias en multi- instancia Reciclaje: posible todo a la vez Reciclaje: posible todo a la vez Afinidad Afinidad Crear silos virtuales de trabajo en grandes sistemas MP Crear silos virtuales de trabajo en grandes sistemas MP Asignar de acuerdo con la arquitectura MP (asignar a CPUs en el mismo bloque físico) Asignar de acuerdo con la arquitectura MP (asignar a CPUs en el mismo bloque físico) W3SVC SVCHOST.exe W3 Config Mgr W3 Process Mgr W3Core ISAPI Filters W3WP.exe All Apps (no OOP) Web Garden Application Pool HTTP.SYS kernel

20 Rendimiento en IIS 6.0 Tiempo de inactividad y arranque por demanda Tiempo de inactividad Tiempo de inactividad Se detiene un proceso si está inactivo por encima de un periodo de tiempo prefijado Se detiene un proceso si está inactivo por encima de un periodo de tiempo prefijado Libera recursos para aplicaciones activas. Libera recursos para aplicaciones activas. Las aplicaciones siguen estando disponibles aun cuando el proceso de trabajo está inactivo y se ha detenido Las aplicaciones siguen estando disponibles aun cuando el proceso de trabajo está inactivo y se ha detenido Arranque por demanda Arranque por demanda Sólo se inicia el proceso de trabajo si existe demanda para el pool de aplicaciones Sólo se inicia el proceso de trabajo si existe demanda para el pool de aplicaciones Consideraciones Consideraciones Usar el timeout por inactividad para liberar recursos para otras aplicaciones de uso más intensivo Usar el timeout por inactividad para liberar recursos para otras aplicaciones de uso más intensivo Valorar el desactivar la función de timeout si el arranque de la aplicación lleva mucho tiempo Valorar el desactivar la función de timeout si el arranque de la aplicación lleva mucho tiempo Nota: la finalización de un proceso inactivo causa: Nota: la finalización de un proceso inactivo causa: Pérdida de la cache en memoria Pérdida de la cache en memoria

21 Administración de IIS 6.0 Mejoras en la Metabase Metabase en XML Metabase en XML Metabase guardada en XML Metabase guardada en XML Autoversión: como un backup automático Autoversión: como un backup automático Editar mientras trabaja Editar mientras trabaja Se pueden hacer cambios directamente al archivo metabase.xml mientras IIS está ejecutándose. Se pueden hacer cambios directamente al archivo metabase.xml mientras IIS está ejecutándose. Se puede usar cualquier editor: Notepad,.NET, PERL, etc. Se puede usar cualquier editor: Notepad,.NET, PERL, etc. Consideraciones Consideraciones Es más seguro usar ADSI o la UI para hacer cambios en la metabase Es más seguro usar ADSI o la UI para hacer cambios en la metabase Nota: Metabase.bin sigue existiendo, pero solo como un archivo de compromiso para las aplicaciones antiguas. Nota: Metabase.bin sigue existiendo, pero solo como un archivo de compromiso para las aplicaciones antiguas. Admin Base Objects ADSI UI Metabase.xml MBSchema.xml

22 Administración de IIS 6.0 Mejoras en la metabase: Import/Export Importación/exportación de la configuración de la metabase a/desde XML Importación/exportación de la configuración de la metabase a/desde XML Opciones: Opciones: Exportar/importar propiedades heredadas Exportar/importar propiedades heredadas Exportar/importar un nodo solamente (o todo el subárbol) Exportar/importar un nodo solamente (o todo el subárbol) Fichero exportado cifrado con password. Fichero exportado cifrado con password. Uso con ASP.NET XCOPY para instalar aplicaciones Uso con ASP.NET XCOPY para instalar aplicaciones 1. Se exporta la configuración de la metabase de IIS6.0 para una aplicación.NET 2. Se guarda en el directorio de aplicaciones.NET 3. Se importa el archivo de configuración de la metabase después de XCOPY Admin Base Objects ADSI UI Metabase.xml MBSchema.xml

23 Administración en IIS 6.0 Proveedor WMI y nuevas herramientas de línea de comandos IIS WMI Provider IIS WMI Provider Soporte para consultas Soporte para consultas Asociaciones Asociaciones Transformable en script Transformable en script Nuevas herramientas de línea de comandos Nuevas herramientas de línea de comandos Orientación a tareas Orientación a tareas Herramientas soportadas – actualmente en %windir%\system32 Herramientas soportadas – actualmente en %windir%\system32 Basadas en WMI Provider Basadas en WMI Provider Ejemplo: usar IISCNFG.vbs como parte de una estrategia de migración de aplicación.NET entre dos sistemas con IIS6.0 Ejemplo: usar IISCNFG.vbs como parte de una estrategia de migración de aplicación.NET entre dos sistemas con IIS6.0 Admin Base Objects ADSI UI WMI Metabase.xml MBSchema.xml Command Line Tools

24 Resumen IIS 6.0 se ha mejorado al hacer que las aplicaciones Web sean mas: IIS 6.0 se ha mejorado al hacer que las aplicaciones Web sean mas: Seguras Seguras Fiables Fiables Escalables Escalables Manejables Manejables

25 Recursos Introducción a IIS 6.0 en TechNet: Introducción a IIS 6.0 en TechNet: iis.mspx iis.mspx Introducción técnica a IIS 6.0: Introducción técnica a IIS 6.0:


Descargar ppt "Buenas prácticas para migrar a IIS 6.0 desde versiones anteriores Bill Staples Group Program Manager IIS Microsoft Corporation."

Presentaciones similares


Anuncios Google