La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~€ es esto?

Presentaciones similares


Presentación del tema: "Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~€ es esto?"— Transcripción de la presentación:

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


Descargar ppt "Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~€ es esto?"

Presentaciones similares


Anuncios Google