![]() Por: Pablo Toapanta N. MVP de Windows Server Customer Experience, MCSA, MCT, MCP Actualmente trabaja como gerente de soluciones de tecnología para la corporación IBEC. Además es líder de TechNet Ecuador (http://groups.msn.com/technetecuador), comunidad creada hace más de tres años. Allí se encuentra desarrollando algunos eventos de grupos de estudio para certificación y conferencias. Es miembro del Culminis Speakers Bureau y participó como orador en algunos eventos Microsoft TechNet Summit y DevDays. Lleva trabajando con tecnología Microsoft desde hace más de cinco años especializándose en el tema de seguridad. Posee las siguientes certificaciones: MCSA - Security, MCT, MCP SBS 2003, MCP ASP.Net. Introducción Al implementar soluciones de tecnología, más allá de resolver una necesidad de servicios, tanto usuarios, directivos y técnicos esperan que trabaje sin problemas ni complicaciones. Un proceso de instalación exitosa no garantiza que una solución de Tecnologías de la Información (TI) funcione adecuadamente, desde el punto de vista del desempeño esperado o performance, aún si el servicio instalado satisface las necesidades o requerimientos solicitados. Dentro del proceso tradicional de implementación de soluciones de TI, incluiré algunos principios y procesos clave que debemos asegurar para garantizar que estas soluciones trabajen sin problemas y con el performance esperado. Proceso tradicional de implementación de soluciones de TI Un proceso tradicional de implementación de soluciones de TI nos asegura que al final del camino llegaremos a una instalación exitosa. Sin embargo, del punto de la instalación exitosa, nada nos asegura que a mediano y largo plazos la solución siga operando de manera correcta, y es ahí donde se incrementa el riesgo de que el éxito inicial se convierta en un fracaso inevitable. Procesos para implementación de soluciones de TI Aunque no es el tema principal de este artículo describiré rápidamente cada proceso mostrado en la figura 1: Necesidad o requerimiento: toda nueva implementación de una solución de tecnología parte de una necesidad, requerimiento o problema presentado, el cual debe ser enteramente comprendido por el técnico a cargo. Análisis y alcance: definido y entendido completamente el requerimiento. Esta etapa permite determinar qué solución de tecnología y a qué nivel se solventará el requerimiento. En muchos de los casos un solo producto no dará abasto, sino que se necesitará recurrir a determinar un conjunto de productos (solución de tecnología) que lo hagan. De ser así, se debe analizar también el nivel de integración, interacción y acoplamiento de esos productos. Planificación: implica definir los recursos humanos y materiales necesarios para el proyecto, además de determinar las etapas y tiempo de ejecución de cada una de ellas. En esta etapa también se define todo lo concerniente a la arquitectura funcional de la solución de tecnología. Implementación: es la ejecución de la planificación. Pruebas: se selecciona un número determinado de usuarios que probarán la solución. Producción: culminado el proceso de pruebas iniciales, se involucra a todo el recurso humano que utilizará la solución. Principios clave de performance Un poco de experiencia, y recopilando información de múltiples fuentes, he definido seis principios claves que permitirán a una solución de tecnología operar con un desempeño (performance) óptimo. Procesos para alcanzar un performance óptimo Mucha de la literatura para la planificación e implementación de productos Microsoft ya traen literatura que hace referencia a alguno de los seis tópicos descritos anteriormente. Inclusive existen productos propios que automatizan algunos procesos (Capacity Planing, Tuning, performance monitoring). Un ejemplo claro es el producto System Center Capacity Planning que permite hacer una planificación de capacidad de recursos hardware necesarios para hacer una implementación de productos Microsoft basado en indicadores clave cuya información es proporcionada por el cliente. El incremento de usuarios de un determinado producto o servicio provoca un impacto importante de performance en cualquier solución de tecnología; particularmente porque cada nuevo usuario requiere utilizar una cierta cantidad de recursos físicos (CPU, memoria, disco) lo cual hace que el rendimiento del servidor decaiga. Hacer un análisis de crecimiento, en cuanto a usuarios o equipos, permite determinar adecuadamente el hardware necesario que debe adquirirse para la cantidad de usuarios actuales y un porcentaje o cantidad de crecimiento esperado en un período de tiempo determinado. Esto evita sobremanera que se produzca un impacto negativo en el trabajo cotidiano del grupo de usuarios iniciales, e incurrir en gastos o inversiones de dinero fuera de presupuesto. Es un análisis previo a la implementación de una solución de tecnología cuyo objetivo principal es el de poder dimensionar adecuadamente los requerimientos en hardware, software, topología y arquitectura de red necesaria para el correcto funcionamiento y trabajo de un equipo de usuarios. Los resultados del análisis de Capacity Planning mitigan completamente problemas de sobre y sub dimensionamiento de servidores. Capacity Planning incluye también esquemas de topología de red y tolerancia a fallos (clustering, NLB) en ambientes de red de gran tamaño. Concluido el proceso de implementación y pruebas iniciales con usuarios, el proceso de afinamiento o “tuning” busca dejar a punto el funcionamiento de la solución. En muchos de los casos, el proceso de “tuning” se basa en un análisis de línea base (baseline analysis) de funcionamiento de la solución realizado de manera manual; sin embargo, como es el caso de SQL Server 2005, algunos productos integran herramientas propias de “tuning” o aplicación de mejores prácticas (best practices analyzer tools). La razón de ser de un análisis de línea base (baseline analysis) radica en tener un punto de referencia sobre el cual poder determinar si existen alteraciones en el comportamiento y performance normal de una solución. Estos cambios pueden venir acompañados por comportamientos de personas no deseadas o extraños, como por ejemplo la infección de un virus o algún tipo de malware. Este análisis permite identificar rápidamente el foco de posibles problemas presentados y, dar una solución rápida y adecuada. Un ejemplo importante de herramientas que se encuentran disponibles es el Microsoft Baseline Security Analyzer, orientado principalmente a identificar errores críticos de seguridad de acuerdo a una configuración óptima que debería tener un equipo determinado. Este análisis de línea base puede ser realizado por la herramienta de “Performance” del sistema operativo, la idea es tener justamente una línea base de la cual partir como punto de referencia para poder identificar problemas de funcionamiento. No basta con haber llegado a configurar una solución de tecnología con la performance esperada u óptima. Para garantizar que este desempeño perdure en el tiempo, es necesario mantener un monitoreo continuo de los objetos contadores de rendimiento estrictamente necesarios. Vale la pena recordarles que las aplicaciones que permiten el monitoreo de rendimiento, irónicamente, consumen recursos adicionales del servidor, por tanto se debe tomar en cuenta un período de recolección de información adecuado al igual que los días en los cuales estas herramientas impacten lo menos posible al normal funcionamiento. Existen dos herramientas básicas propias de Microsoft que nos permiten hacer este monitoreo: Performance y Server Performance Advisor. Performance es la consola de monitoreo basada en objetos y contadores de rendimiento, tanto online como offline, que permite controlar el desempeño de una solución de tecnología y fácilmente identificar problemas. Quizá una de las limitantes de esta herramienta es que para sacarle el mayor provecho se necesitan conocer los objetos y contadores clave, lo cual hablaré en un próximo artículo. Por tal motivo se desarrolló una herramienta mucho más sencilla de utilizar y con mayores bondades, Server Performance Advisor. Esta es una aplicación, basada en la consola de Performance, que trae preconfigurado un conjunto de contadores y objetos de rendimiento clave, además de presentar reportes donde se incluyen recomendaciones en caso de encontrar algún tipo de problema. Además de es posible agregar nuevos contadores y objetos de acuerdo a los requerimientos del administrador a cargo. Una gran cantidad de productos Microsoft, dentro de su documentación disponible, disponen de las guías “Hardening” que están orientadas a definir procedimientos y mejores prácticas de aseguramiento para las soluciones de tecnología implementadas. Ahora, a primera vista esto no tendría nada que ver con el desempeño de una solución, sin embargo, hay un principio que debemos recordar: a mayor cantidad de estrategias o procedimientos de seguridad que implementemos, la performance de software y hardware será menor. Por eso en gran medida debemos balancear los niveles de seguridad requeridos versus el desempeño requerido. Los principios claves definidos en esta sección los he podido recopilar al cabo de una gran cantidad de implementaciones y experiencia adquirida. Microsoft, y otras casas fabricantes de software, evolucionan continuamente y de seguro estará liberando nuevas y mejores herramientas que permitan con un menor esfuerzo llegar al rendimiento deseado. Conclusión Al igual que para garantizar una implementación exitosa de una solución de tecnología es necesario hacer una correcta planificación y diseño, el desempeño necesita exactamente el mismo proceso. No olvidar como buena práctica mantener un monitoreo contínuo de funcionamiento y operación de la plataforma, y esto en gran medida representa una herramienta para la toma de decisiones. |