Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porXènia Tome Modificado hace 10 años
1
Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~€ es esto?
Jose Murillo Alejandro Mezcua Microsoft Ibérica ISV Developer Evangelist ByteaByte Microsoft MVP 1
2
Agenda Pruebas de Stress Páginas Web Asíncronas
Instrumentación de Aplicaciones Entornos de Alto Rendimiento Localización de problemas de memoria con CLRProfiler Microsoft Pattern & Practices Referencias
3
Pruebas de Stress 3
4
Pruebas de Stress QoS
5
Pruebas de Stress QoS Una de las mayores razones por las que fracasan los proyectos Solución Pruebas de carga integradas en los ciclos de compilación Visual Studio Test Edition para automatizarlas
6
Visual Studio Team Test Edition
6
7
Resumiendo… Aseguraos de definir vuestros requisitos de calidad de servicio Incorporar las pruebas de carga a vuestro ciclo de pruebas diarios con Team Tester
8
Páginas Web Asíncronas
8
9
¿Cuál es el problema? IIS 6 Worker Processes
10
¿Cuál es el problema? ASP.NET Worker Process (w3wp.exe)
11
¿Cuál es el problema? Cualquier operación que bloquee un working thread reduce la escalabilidad del servidor Si el bloqueo se debe a operaciones de CPU no podemos hacer mucho, pero si son bloqueos en espera de eventos externos (IO, eventos, etc.) podemos usar otro hilo asíncrono Llamadas a otros servicios web Accesos a BDs Acceso a ficheros locales Páginas ASPX pesadas …
12
Páginas Web Asíncronas
12
13
Resumiendo… Pasad a páginas asíncronas aquellas que consuman mucho tiempo en espera de IO Ya no es necesario implementar IHttpAsyncHandler “a manubrio” como en ASP.NET 1.x. Todo lo hace el atributo async=true Cuidado, peticiones desde un mismo browser con mismo SessionID son serializadas por ASP.NET Insisto, haced pruebas de stress
14
Instrumentación de Aplicaciones
14
15
¿Qué es la instrumentación?
Imprescindible en aplicaciones empresariales La instrumentación permite que la aplicación exponga información de monitorización, depuración, rendimiento, etc. Permite hacerlo en un formato estándar para analizarla desde herramientas de monitorización empresariales tipo MOM La única forma de analizarla si la tenemos hospedada en un hoster externo
16
Logging Application Block
Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 Módulo 2 LAB System.Diagnostics LAB System.Diagnostics
17
Logging Application Block
Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 Módulo 2 LAB System.Diagnostics LAB System.Diagnostics Event Log Ficheros DB MSMQ
18
Logging Application Block
Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 Módulo 2 LAB System.Diagnostics LAB System.Diagnostics Event Log Ficheros DB MSMQ WMI
19
Logging Application Block
Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 Módulo 2 LAB System.Diagnostics LAB System.Diagnostics Event Log Ficheros DB MSMQ Performance Monitor WMI
20
Logging Application Block
Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 Módulo 2 LAB System.Diagnostics LAB System.Diagnostics Event Log Ficheros DB MSMQ Performance Monitor WMI Microsoft Operations Manager
21
Logging Application Block
Los detalles de la instrumentación quedan en los ficheros de configuración para los administradores Destino de cada evento o traza (eventlog, fichero, DB, etc.) Nivel de logging (info, verbose, full, etc.) Arquitecturas Distribuidas Distributor Service
22
Resumiendo… Descargar y utilizar el Logging Application Block y System.Diagnostics en vuestras aplicaciones!! Incluid información para administradores en el log de eventos (errores, avisos, etc.) Incluid información de depuración y log para desarrolladores en ficheros de trazas Incluid contadores de rendimiento para el tuneado de aplicaciones a través del performance monitor
23
Entornos de alto rendimiento
23
24
Necesidades planteadas (I)
Alta disponibilidad del servicio Objetivo: ‘5 nueves’ ;-) Disponibilidad Tiempo sin sistema al año permitido 99% 3.65 Días 99.9% 8.67 Horas 99.99% 51.98 Minutos 99.999% 5 Minutos
25
Necesidades planteadas (II)
Alto rendimiento continuado El sistema completo ‘escala’ para el número de usuarios planteado El tiempo de respuesta es predecible independientemente del número de usuarios concurrentes (dentro del margen establecido)
26
Posibles soluciones Escalabilidad vertical Más RAM, mejores discos…
Utilizar hardware más potente Más RAM, mejores discos… Escalabilidad horizontal Repartir la carga entre diversos equipos Cluster Server para bases de datos … Network Load Balancing para aplicaciones (Web, FTP, …)
27
Esquema alta disponibilidad
28
Implicaciones en aplicaciones (I)
Servicios repartidos por varias máquinas físicas Mayor latencia por cada solicitud Más procesadores Ojo con los threads Cluster No fijar nada por código al nombre concreto de una máquina, se usará el nombre virtual del cluster
29
Implicaciones en aplicaciones (II)
Network Load Balancing No fijar por código nada al nombre de una máquina ¿Se usan variables de sesión/aplicación? ¿Es posible codificar los datos en la URL o en un campo de formulario oculto? Si no, en ASP.NET es fácil mover la sesión a un servidor externo Las variables de aplicación están asociadas a la máquina
30
Tácticas comunes Caching
Habilitar/deshabilitar ‘session state’ y ‘view state’ Optimizar el acceso a datos No consultar 1000 registros para mostrar 10 ;-) Impersonar al usuario para acceder a SQL Server deshabilita ‘connection pooling’
31
Localización de problemas de memoria con CLRProfiler
31
32
¿CLR Profiler? Aplicación no soportada que permite trazar la memoria en uso de una aplicación .NET Desktop, servicios de sistema o Web Muestra Estado de la memoria en un momento dado mediante gráficos Estadísticas del GC Información sobre los métodos llamados y cargados Mucho más…
33
CLR Profiler 33
34
Microsoft Pattern & Practices
34
35
Microsoft Pattern & Practices
Web Services Software Factory Enterprise Library for .NET Framework 2.0 Caching Application Block Configuration Application Block Cryptography Application Block Data Access Application Block Exception Handling Application Block Logging & Instrumentation Application Block Security Application Block
36
Microsoft Pattern & Practices
Data Patterns Web Service Security Guidance Improving .NET Application Performance and Scalability Improving Web Application Security Application Architecture for .NET: Designing Applications and Services Enterprise Solution Patterns Using Microsoft .NET
37
Referencias Software Tester Team Center
Asynchronous Pages in ASP.NET 2.0 – Wicked Code Enterprise Library for .NET Framework 2.0
38
38
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.