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

Slides:



Advertisements
Presentaciones similares
Rendimiento y dimensionamiento de Microsoft Operations Manager 2005.
Advertisements

Código: HOL-SQL29. Permite la encriptación de ficheros de registro y de datos mediante clave de encriptación de datos (Database Encryption Key) Encriptación.
Conexión a Bases de Datos
Internet y tecnologías web
Detalles técnicos de Sharepoint Search Rubén Alonso Cebrián
Scripting con Virtual Server.
Desarrollo de aplicaciones 100%.NET Octavio Hernández DANYSOFT Internacional Delphi 8 para Microsoft.NET Framework.
Windows 2003 como Servidor de Aplicaciones Jose Murillo ISV Development Advisor
Mejores Prácticas en ASP.NET y AJAX
Bienvenido al evento online de Microsoft Small Business Server 2003 R2 (Volumen II) Andrés de Pereda.
Componentes de ASP.NET Leonardo Diez Dolinski Servicios Profesionales Danysoft.
YUKON EN EL HORIZONTE Valeria Rodríguez Z. MVP SQL Server Business Manager Paradigma Software S.R.L.
¿Está utilizando todo el potencial de Microsoft SQL Server? Fernando Bocigas SQL Server Product Manager Microsoft Ibérica S.R.L. 16 de Marzo de 2005 Fernando.
Software Testing Héctor Santa María..
Microsoft Sql Server 2000 Reporting Services Ruben Alonso Cebrian Código: HOL-SQL03.
Guido Rubin Escalabilidad.
Introducción a Microsoft .NET
Supervisión del rendimiento de SQL Server
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Agenda Conceptos Claves.
Servidores Windows Http Ftp …
Estructura de un Sistema Operativo
Microsoft SQL Server 2008 – SQL Server Integration Services
Migración de MOSS2007 a SharePoint 2010 Jose Manuel González
Especialista en Business Intelligence Integration Services SSIS (Sesión 7) Microsoft SQL Server 2008 R2 (2013) Suscribase a o escríbanos.
SQL Server Integration Services SSIS
Programación Visual de Sistemas
Introducción al software
Framework Hexápodo PHP fácil, rápido y sin dolor
Seguridad en ASP.NET Daniel Laco
Acceso a datos y paso de datos entre capas
(D2) Practicas y componentes para el desarrollo con.NET : PAG y Application Blocks Diego González - CTO
Perfiles asociados a MSDN & Visual Studio Equipo de Desarrollo Microsoft Otros Equipos de Desarrollo y Administradores de Sistemas usando plataforma Microsoft.
César de la Torre – Programas Técnicos para Partners División de Desarrollo y Plataforma – Microsoft Spain.
Carlos Walzer Vemn Sistemas Como crear un sitio con ASP.NET.
Service Pack 1 Nuevas posibilidades de virtualización Paulo Dias IT Pro Evangelist Microsoft Fernando.
Visual Studio 2005 Gestión del Ciclo de Vida Jose Murillo Responsable programas técnicos para Fabricantes.
Desarrollando en serio…
Características Técnicas
iBOLT Integration Platform
Características Técnicas
Características Técnicas
Plataforma Microsoft.NET
Windows XP sp3.
REGISTROS Y ALERTAS DE RENDIMIENTO
Bienvenidos.
Almacenamiento virtual de sitios web: «Hosts» virtuales Gustavo Antequera Rodríguez.
Interacción Persona Ordenador
Medcom - Sigest Sistema de medida fiscal. Sistema Medcom-Sigest 1. Medcom - Aplicación de comunicaciones universal, que sirve para extraer y almacenar.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
InfoPath Ventajas y Uso.
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
DATA WAREHOUSE Equipo 9.
VS + Team Foundation Server Comunidad PR.Net (c) Néstor Santana-Carire Objetivos  Conocer las Funcionalidades de TFS  Crear.
Windows Azure Desde el punto de vista de un IT Pro.
Especialista en Business Intelligence Integration Services SSIS Tareas de Flujo de Control (Parte I) Microsoft SQL Server 2008 R2 Suscribase a
Control de clientes Define los clientes por procedencia Control de cartera de clientes en ventas al crédito, emitiendo estados de cuenta por cada cliente,
1 GESTIÓN DE UTILIZACIÓN DE REDES Noviembre 2013 Herramienta de Monitoreo Pandora FMS David González.
Gestión de servidores y clientes con Microsoft System Center Essentials 2007 Joshua Sáenz G.
Teleprocesos y Sistemas Distribuidos Windows Server INTEGRANTES: Cantera Salazar, Julissa Arcelly Yalico Tello, Diana Accho Flores, Wilber Dávila, Mireilli.
Manual violento de Navicat
BASE DE DATOS DISTRIBUIDAS
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
Servicios Camerales Comparativo de Bases de Datos.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Semana 2.
ADMINISTRACIÓN DE REDES SIZING de Servidores.
• SQL Server Integration Services SSIS
• SQL Server Integration Services SSIS
TEMA 8 Introducción a Windows 2008 Server Msc. Rina Arauz.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Sesión 2.
Transcripción de la presentación:

Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~€ es esto? Jose Murillo Alejandro Mezcua Microsoft Ibérica ISV Developer Evangelist Josemurl@microsoft.com ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net 1

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

Pruebas de Stress 3

Pruebas de Stress QoS

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

Visual Studio Team Test Edition 6

Resumiendo… Aseguraos de definir vuestros requisitos de calidad de servicio Incorporar las pruebas de carga a vuestro ciclo de pruebas diarios con Team Tester

Páginas Web Asíncronas 8

¿Cuál es el problema? IIS 6 Worker Processes

¿Cuál es el problema? ASP.NET Worker Process (w3wp.exe)

¿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 …

Páginas Web Asíncronas 12

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 

Instrumentación de Aplicaciones 14

¿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

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

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

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

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

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

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

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

Entornos de alto rendimiento 23

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

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)

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, …)

Esquema alta disponibilidad

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

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

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’

Localización de problemas de memoria con CLRProfiler 31

¿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…

CLR Profiler 33

Microsoft Pattern & Practices 34

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

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

Referencias Software Tester Team Center http://msdn2.microsoft.com/en-us/teamsystem/aa718941.aspx Asynchronous Pages in ASP.NET 2.0 – Wicked Code http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCod Enterprise Library for .NET Framework 2.0 http://msdn2.microsoft.com/en-us/library/aa480453.aspx http://www.byteabyte.net http://geeks.ms/blogs/amezcua

38