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? Alejandro Mezcua ByteaByte Microsoft MVP Jose Murillo Microsoft.

Presentaciones similares


Presentación del tema: "Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Jose Murillo Microsoft."— Transcripción de la presentación:

1 Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Jose Murillo Microsoft Ibérica ISV Developer Evangelist

2 Pruebas de StressPruebas de Stress Páginas Web AsíncronasPáginas Web Asíncronas Instrumentación de AplicacionesInstrumentación de Aplicaciones Entornos de Alto RendimientoEntornos de Alto Rendimiento Localización de problemas de memoria con CLRProfilerLocalización de problemas de memoria con CLRProfiler Microsoft Pattern & PracticesMicrosoft Pattern & Practices ReferenciasReferencias

3 Pruebas de Stress

4 QoSQoS

5 Una de las mayores razones por las que fracasan los proyectosUna de las mayores razones por las que fracasan los proyectos SoluciónSolución –Pruebas de carga integradas en los ciclos de compilación –Visual Studio Test Edition para automatizarlas

6 Visual Studio Team Test Edition

7 Aseguraos de definir vuestros requisitos de calidad de servicioAseguraos de definir vuestros requisitos de calidad de servicio Incorporar las pruebas de carga a vuestro ciclo de pruebas diarios con Team TesterIncorporar las pruebas de carga a vuestro ciclo de pruebas diarios con Team Tester

8 Páginas Web Asíncronas

9 IIS 6 Worker ProcessesIIS 6 Worker Processes

10 ASP.NET Worker Process (w3wp.exe)ASP.NET Worker Process (w3wp.exe)

11 Cualquier operación que bloquee un working thread reduce la escalabilidad del servidorCualquier 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íncronoSi 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

13 Pasad a páginas asíncronas aquellas que consuman mucho tiempo en espera de IOPasad 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=trueYa 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.NETCuidado, peticiones desde un mismo browser con mismo SessionID son serializadas por ASP.NET Insisto, haced pruebas de stressInsisto, haced pruebas de stress

14 Instrumentación de Aplicaciones

15 Imprescindible en aplicaciones empresarialesImprescindible en aplicaciones empresariales La instrumentación permite que la aplicación exponga información de monitorización, depuración, rendimiento, etc.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 externoLa única forma de analizarla si la tenemos hospedada en un hoster externo

16 Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientoEsenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 LAB System.Diagnostics Módulo 2 LAB System.Diagnostics

17 Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientoEsenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 LAB System.Diagnostics Módulo 2 LAB System.Diagnostics Event Log Ficheros DB MSMQ

18 Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientoEsenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 LAB System.Diagnostics Módulo 2 LAB System.Diagnostics Event Log Ficheros DB MSMQ WMI

19 Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientoEsenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 LAB System.Diagnostics Módulo 2 LAB System.Diagnostics Event Log Ficheros DB MSMQ WMI Performance Monitor

20 Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientoEsenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimiento Módulo 1 LAB System.Diagnostics Módulo 2 LAB System.Diagnostics Microsoft Operations Manager Event Log Ficheros DB MSMQ WMI Performance Monitor

21 Los detalles de la instrumentación quedan en los ficheros de configuración para los administradoresLos 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 DistribuidasArquitecturas Distribuidas –Distributor Service

22 Descargar y utilizar el Logging Application Block y System.Diagnostics en vuestras aplicaciones!!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

24 Alta disponibilidad del servicioAlta disponibilidad del servicio Objetivo: 5 nueves ;-) DisponibilidadTiempo sin sistema al año permitido 99%3.65 Días 99.9%8.67 Horas 99.99%51.98 Minutos %5 Minutos

25 Alto rendimiento continuadoAlto 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)El tiempo de respuesta es predecible independientemente del número de usuarios concurrentes (dentro del margen establecido)

26 Escalabilidad verticalEscalabilidad vertical –Utilizar hardware más potente Más RAM, mejores discos…Más RAM, mejores discos… Escalabilidad horizontalEscalabilidad horizontal –Repartir la carga entre diversos equipos Cluster Server para bases de datos …Cluster Server para bases de datos … Network Load Balancing para aplicaciones (Web, FTP, …)Network Load Balancing para aplicaciones (Web, FTP, …)

27

28 Servicios repartidos por varias máquinas físicasServicios repartidos por varias máquinas físicas –Mayor latencia por cada solicitud Más procesadoresMás procesadores –Ojo con los threads ClusterCluster –No fijar nada por código al nombre concreto de una máquina, se usará el nombre virtual del cluster

29 Network Load BalancingNetwork 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?¿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 externoSi 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áquinaLas variables de aplicación están asociadas a la máquina

30 CachingCaching Habilitar/deshabilitar session state y view stateHabilitar/deshabilitar session state y view state Optimizar el acceso a datosOptimizar 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

32 Aplicación no soportada que permite trazar la memoria en uso de una aplicación.NETAplicación no soportada que permite trazar la memoria en uso de una aplicación.NET –Desktop, servicios de sistema o Web MuestraMuestra –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

34 Microsoft Pattern & Practices

35 Web Services Software FactoryWeb Services Software Factory Enterprise Library for.NET Framework 2.0Enterprise 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 Data PatternsData Patterns Web Service Security GuidanceWeb Service Security Guidance Improving.NET Application Performance and ScalabilityImproving.NET Application Performance and Scalability Improving Web Application SecurityImproving Web Application Security Application Architecture for.NET: Designing Applications and ServicesApplication Architecture for.NET: Designing Applications and Services Enterprise Solution Patterns Using Microsoft.NETEnterprise Solution Patterns Using Microsoft.NET

37 Software Tester Team CenterSoftware Tester Team Center –http://msdn2.microsoft.com/en- us/teamsystem/aa aspx us/teamsystem/aa aspxhttp://msdn2.microsoft.com/en- us/teamsystem/aa aspx Asynchronous Pages in ASP.NET 2.0 – Wicked CodeAsynchronous Pages in ASP.NET 2.0 – Wicked Code –http://msdn.microsoft.com/msdnmag/issues/05/10/ WickedCod WickedCodhttp://msdn.microsoft.com/msdnmag/issues/05/10/ WickedCod Enterprise Library for.NET Framework 2.0Enterprise Library for.NET Framework 2.0 –http://msdn2.microsoft.com/en- us/library/aa aspx us/library/aa aspxhttp://msdn2.microsoft.com/en- us/library/aa aspx

38


Descargar ppt "Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Jose Murillo Microsoft."

Presentaciones similares


Anuncios Google