You are on page 1of 9

JJMora.

es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

"I think the major good idea in Unix was its clean and simple interface: open, close, read, and write." Ken Thompson

OCT 05

Capacity planning, Management

Dejar un comentario

En este post voy a hablar de cual es la metodologa que yo sigo para realizar un capacity planning, no estoy intentando sentar ctedra, ni mucho menos, sencillamente me limito a contestar a un buen amigo que en su da me pregunt cmo ejecutaba yo un capacity planning, qu metodologa estaba siguiendo? si para el anlisis de los datos utilizaba algn modelo matemtico o por el contrario realizaba el anlisis en base a mi experiencia profesional. Para responder a esas preguntas y por si puede ser til a alguien mas, decid escribir este post contando mi forma de ejecutar un capacity planning. La rueda ya est inventada, no me cuentes cmo es, cuntame para qu la utilizas

Una de las funciones de un rea de IT es realizar el capacity planning de la plataforma utilizada para desarrollar el negocio de la compaa. Lo mas sorprendente y quizs una de las causa de que no se implante fases de capacity planning en los proyectos de IT es que no existe una metodologa nica, no existe un modelo unificado, una norma que todo el mundo pueda seguir. De toda la bibliografa y documentos tcnicos que he podido leer en los ltimos aos, la nica conclusin que he sacado es que cada fabricante, empresa de servicios, profesor universitario, consultor y blogger tiene su propia metodologa para ejecutar un capacity planning. Quizs, como he comentado anteriormente, esta falta de estandarizacin sea la causa de que capacity planning sea un trmino no demasiado conocido entre los responsable IT.

El primer paso es entender en qu consiste un capacity planning, creo que la definicin que puedes encontrar en wikipedia es perfecta. Capacity planning is the process of determining the production capacity needed by an organization to meet changing demands for its products.[1] In the context of capacity planning, capacity is the maximum amount of work that an organization is capable of completing in a given period of time. Wikipedia.org Es el proceso para determinar la capacidad que tienen una compaa para afrontar el crecimiento en la demanda de sus productos. Para un rea IT, podemos decir que dicha rea dispone de una serie de productos, los cuales son consumidos por el resto de la compaa. Estos productos son las distintas infraestructuras IT sobre las que se despliega el negocio de la compaa. Siempre que hablo de infraestructura IT, me refiero tanto al HW como al SW, incluyendo todos los procedimientos necesarios para la explotacin de la plataforma y por su puesto, una de las partes ms importantes de toda la infraestructura, el equipo humano. Normalmente se tiende a olvidar la relacin que mantiene el equipo humano con el resto de los elementos de la infraestructura. Para la ejecucin de un capacity planning es importante contar no solo con los componentes HW y SW, sino tambin con recursos humanos del rea. Por lo tanto, capacity planning consiste en el estudio de la capacidad del rea de IT para absorber el crecimiento de las necesidades del negocio de la compaa. No debemos perder nunca la perspectiva de que el rea IT ofrece un producto que es consumido por el resto de la compaa para desarrollar su negocio. Lo importante no es el capacity planning en si, sino que demos respuestas a la necesidade de negocio de la compaa.

Existen varias razones para realizar un capacity planning, pero creo que hay una que est por encima del resto. La principal razn es que

1 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

el capacity planning nos permitir distinguir entre la gestin del riesgo y la percepcin del riesgo, como defiende Neil Gunter en su libro Guerrilla Capacity Planning .

La gestin del riesgo, consiste en conocer en profundidad cuales son los riesgos reales a los que se puede enfrentar nuestra plataforma y realizar una serie de acciones, para en la medida de lo posible, eliminar o minimizar el impacto de dichos riesgos en el negocio de la compaa. La percepcin del riesgo, es tener constancia de la existencia de ciertos riesgos, pero no analizar el impacto de dichos riesgos sobre el negocio. Sin un anlisis de los riesgos, podemos llegar a tener una percepcin equivocada del riesgo, provocando que lo que nosotros suponemos son pequeos riesgos, en realidad tenga un impacto enorme en el negocio de la compaa. Realizar un capacity planning, nos permitir conocer cuales son los riesgos reales de la plataforma IT de la que somos responsables y cmo dichos riesgos impactan en el negocio de nuestra compaa. Un error muy comn es creer que un capacity planning sirve nicamente para medir el rendimiento de nuestra plataforma desde el punto de vista IT. Este error es mas frecuente de lo que mucha gente puede pensar. Podis preguntar a cualquier persona del rea IT, sobre cuanto dinero pierde la compaa cada vez que hay un problema de rendimiento en la BD, muy poca gente podr contestar con exactitud a esa pregunta. La mayora de la gente que trabaja en IT tendemos a no prestar demasiada atencin al impacto de los problemas de la plataforma IT en el negocio de nuestra compaa. Es primordial que la gente que trabajamos en IT comprendamos que debemos comenzar a mirar fuera de nuestras propias reas, para comprender cmo nuestro trabajo impacta en el desarrollo del negocio de nuestra compaa. Si conseguimos obtener esta nueva perspectiva, podemos entender que la pregunta que intentamos responder mediante un capacity planning no es cmo de lentos son mis discos? o necesitar comprar otra mquina de BBDD? sino cmo est impactando al negocio que los discos tengan un problema de rendimiento o est mi infraestructura de BBDD preparada para absorber el nuevo despliegue de la compaa ?

Este es el nico punto donde todo el mundo est de acuerdo. Durante el ciclo de vida de una plataforma IT, existe tres momentos en los que se debera realizar un capacity planning.

Durante el periodo de desarrollo del proyecto, para identificar posible carencias en la definicin de las especificaciones del proyecto, as como el impacto que tendr el proyecto en la plataforma de negocio. Una vez la plataforma est en produccin, peridicamente se debera realizar un capacity planning, para identificar posibles cuellos de botella y gestionar los riesgos para el negocio que se puedan encontrar, informando a la direccin peridicamente. Cada vez que la compaa vaya a tomar una decisin sobre el negocio, debera realizarse un capacity planning para chequear que dicha decisin no impactar de forma negativa en la actual plataforma. Tengo que aclarar que la duracin, as como la dimensin del capacity planning depende del objetivo al que se desea llegar, no requiere el mismo tiempo, ni recursos, la ejecucin de un capacity planning durante el periodo de desarrollo del proyecto, que el tiempo y recursos necesarios para un capacity planning peridico. Las razones son obvias, durante la primera fase, se han establecido los distintos procedimientos para recoger y analizar los datos de la plataforma, por lo tanto una vez que tenemos los procedimientos establecidos, realizar un capacity planning peridico es un asunto trivial. A veces la direccin de la empresa puede disponer de una informacin equivocada sobre la capacidad de la plataforma de negocio y no es raro el caso en el que se adoptan acciones de negocio sin disponer de la suficiente capacidad en la plataforma de IT. Es responsabilidad de las reas de IT facilitar a la direccin de la compaa las herramientas necesarias para una correcta toma de decisin. Estas herramientas, no son otra cosas que los informes sobre el capacity planning de la plataforma IT. Con la informacin correcta, tanto la direccin como las unidades de negocio, podrn tomar decisiones que no provoquen un riesgo para el negocio de la compaa. Ejemplo 1: Una compaa vende libros mediante una plataforma WEB, la clientela se limita nicamente a un pas determinado, el negocio va viento en popa y la direccin decide expandir el mercado a los pases vecinos. La direccin decide que como la plataforma est funcionando correctamente, por lo tanto el proceso de expansin ser dar a conocer la plataforma en el nuevo pas y crear los canales de distribucin para la entrega de los libros. Una plataforma IT que funcionaba perfectamente en un pas, comienza a degradarse debido al aumento de operaciones nuevas, provocando una cada en las ventas derivada de la lentitud y los fallos en la

2 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

navegacin de la plataforma WEB. En el ejemplo anterior podemos ver cmo una decisin tomada, bien por falta de informacin, bien por una percepcin del riesgo equivocada, provoca unas perdidas en una compaa que estaba funcionando perfectamente y desde las reas de IT, debemos reflexionar sobre quin ha tenido la culpa?, es fcil caer en el argumento de es que los de arriba no tienen ni idea. No somos las reas de IT responsables de informar a la direccin sobre las posibilidades de la compaa a nivel IT? yo creo que s. Las reas IT son responsables tanto o mas que la direccin, por esa razn siempre aconsejo que se realicen informes peridicos sobre el estado de la plataforma IT y que dichos informes incluya informacin sobre capacity planning.

En principio debera ser una tarea de todas las reas que intervengan directamente en el desarrollo del negocio de la compaa, pero dependiendo del momento, dentro del ciclo de vida de la plataforma IT, en el que se proponga la idea de ejecutar un capacity planning, deberemos incluir a ms o menos reas. Aunque lo normal es que el capacity planning de IT afecte nicamente a la plataforma IT que est dando servicio. Por lo tanto centrndonos en las reas IT, el principal responsable de un capacity planning debe ser el rea de Sistemas, ya que es esta rea la responsable de mantener los sistema de produccin y deberan conocer perfectamente, debido a la experiencia del da a da, cual es el estado y las posibilidades de crecimiento.

Como he comentado al principio del post, no existe un procedimiento unificado que defina los pasos de un capacity planning y este no es el nico problema de estandarizacin, tampoco en algunas de las fases existe un estndar que defina cmo deben realizarse dichas fases. En este apartado vamos a ver las 3 fases bsicas necesarias para ejecutar un capacity planning.

Definicin de los niveles de servicio. Anlisis de la capacidad. Planificacin de acciones. Dependiendo de la documentacin que sigis, tendris ms o menos fases, las tres fases anteriores son la que yo sigo. Quiero volver a comentar, que en este post estoy describiendo CMO realizo yo un capacity planning, lo cual no quiere decir que sean las fases y procedimientos perfectos, sencillamente, son las fases y procedimientos que a mi me sirven.

Definicin de los niveles de servicio


La primera fase y puede que una de las ms crticas, es la definicin de los niveles de servicio que se van a exigir a la nueva plataforma. Es muy importante que exista un acuerdo entre las distintas reas que intervienen en el desarrollo del negocio sobre los distintos niveles de servicio que debe cumplir la nueva plataforma. El nivel de servicio define el nivel mnimo por encima del cual la calidad del servicio es aceptable. Dependiendo del tipo de nivel que se defina, decimos que el servicio est degradado si la calidad que est ofreciendo la plataforma est por debajo de los niveles de servicio mnimos o sencillamente el servicio est indisponible. Es muy importante que la definicin de los niveles de servicio debe ser realistas con las necesidades del negocio de la compaa. Nunca se deben aceptar unos niveles de servicio que no representen la realidad del negocio, tanto por debajo como por encima. Establecer unos niveles de servicio demasiado exigentes puede provocar un error de clculo en el capacity planning que se reflejar, por ejemplo, en un aumento de la inversin. Por otro lado unos niveles de servicio relajados, supondrn un problema de rendimiento de la plataforma frente a pequeos crecimientos no esperados de las necesidades de la plataforma. Ejemplo 2: En nuestra empresa de venta de libros por Internet, durante la fase de definicin de los niveles de servicio se exige que uno de los niveles definidos, el tiempo de respuesta de las paginas, sea de 1 a 2 seg. Este tipo de niveles de servicio provocaran que el capacity planning que estamos realizando aconseje por ejemplo, duplicar o triplicar la capacidad de procesamiento en BBD, para reducir los tiempos de respuesta de los servidores de aplicacin. Esta inversin disparara el coste del proyecto, cuando una tienda de venta de libros no necesita unos tiempos de respuesta como los de un buscador o un peridico digital. Para establecer los niveles de servicio se deben tener claro cuales sern las unidades de trabajo, en base las cuales se definirn los niveles de servicio. Como unidad de trabajo entendemos la operacin bsica necesaria para el desarrollo de una parte del negocio. Un negocio, desde el punto de vista del capacity planning, estar formado por varias unidades de trabajo. Es muy importante que la

3 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

unidades de trabajo definidas reflejen la realidad del negocio de nuestra compaa. Una unidad de trabajo puede estar formada por un conjunto de operaciones, las cuales habr que definir de forma clara. En el siguiente ejemplo podemos ver algunas unidades de trabajo. Ejemplo 3: En nuestra web de venta de libros, podemos definir las siguientes unidades de trabajo:

Transaccin, todas las operaciones necesarias para comprar un libro. Registro, todas las operaciones necesarias para que un usuario se registre. Consulta pedido, las operaciones que permiten a un usuario consultar un pedido. Cada una de estas unidades de trabajo agrupar una serie de operaciones sobre la plataforma IT. Entendemos como operacin sobre la plataforma, todas aquellas interactuaciones entre los distintos elementos HW, SW o humanos que se necesitan realizar en la plataforma como parte de una unidad de trabajo, por ejemplo accesos a BBDD, tiempos de respuesta de la red, entrada/salida del almacenamiento, uso de CPU, etc. Es importante que la unidad de trabajo se definan como entidades genricas, de esta forma conseguimos crear grupos de operaciones, que a su vez agrupan los distintos elementos de la plataforma, pudiendo encontrar posibles problemas de rendimiento o cuellos de botella de una forma muy sencilla. Si por el contrario, elegimos como unidad de trabajo, por ejemplo, el tiempo de respuesta de disco, tendremos problemas a la hora de realizar un anlisis. Muchas de las operaciones de nuestra plataforma necesitan accesos a disco, pero no todas tienen las mismas necesidades de tiempos de respuesta, lo que nos permitira por ejemplo agrupar distintas operaciones en discos de distintas velocidades, pero si elegimos como unidad de trabajo el tiempo de respuesta del disco, todos los discos de la plataforma deberan tener como mnimo el mismo tiempo de respuesta que el mas lento de los discos. Esto provocara errores en los resultados derivados del capacity planning, sobre todo porque no es una situacin real. En resumen, yo suelo elegir como unidades de trabajo, aquellas operaciones crticas para el desarrollo del negocio, esto me permite identificar problemas en la plataforma IT, asociar dichos problemas a una parte del desarrollo del negocio y poder de esta forma gestionar el riesgo que dicho problema puede llegar a plantear. Al centrar el foco en una parte concreta de la plataforma podremos obtener unos resultados mas correctos, ya que emplearemos gran parte del tiempo en el anlisis de los puntos crticos.

Anlisis de la capacidad
El concepto Anlisis de la capacidad abarca una extensin demasiado basta en una infraestructura IT, debemos ser muy conscientes de qu debemos analizar, en el caso contrario podramos perder el objetivo, no del anlisis, sino del capacity planning, ya que el anlisis de la capacidad de la plataforma IT debe cubrir aspectos HW, SW y por supuesto analizar los factores humanos. Por estas razones, en la fase anterior hice mucho hincapi en que se definieran unidades de trabajo desde la perspectiva del negocio para delimitar los elementos crticos de una infraestructura IT, siempre desde el punto de vista del negocio. El anlisis de la capacidad pretende responder a la pregunta: Est la plataforma IT preparada para los nuevos requerimientos que demanda el negocio de mi compaa? El objetivo principal del anlisis es responder a la pregunta anterior, pero dicho anlisis generaran otra serie de beneficios colaterales, que nos ayudaran a las reas IT en la toma de decisiones en el futuro, por ejemplo en cuanto a la escalabilidad, la disponibilidad y los costes. Cuando vamos a realizar un anlisis el primera paso consiste en recuperar un conjunto de datos. Dependiendo de la calidad de los datos recogidos y de la experiencia de equipo que los analizar, el anlisis ser mas o menos preciso. Por lo tanto existen dos mximas a la hora de realizar un anlisis de la capacidad de la plataforma:

Tener un buen procedimiento para recoger datos, lo que nos garantizar la calidad de los mismos. Disponer de un equipo humano con la suficiente experiencia como para interpretar los datos recogidos de forma correcta. Sobre el segundo punto, la experiencia de las personas que analizarn los datos, creo que no cabe aclaracin posible. En cuanto al primer punto, si existe discrepancia entre los distintos autores y/o profesionales relacionados con los capacity planning. Como coment al principio, no hay un modelo estandarizado de obtencin y anlisis de los datos para medir la capacidad de una plataforma IT, de echo existen miles de modelos, ya que cada profesional que realiza uno capacity planning lo puede ejecutar de una

4 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

forma determinada. Aun sin existir un modelo estndar, en la documentacin existente sobre capacity planning existen, llammoslas tendencias:

Modelos Matemticos, son todos aquellos modelos que hacen uso de mtodos matemticos, para modelizar el comportamiento de una plataforma. Casi todos los elementos de una plataforma se modelizan matemticamente obteniendo unas funciones que nos permitirn tanto medir la carga de la plataforma como predecir el rendimiento de la misma. Modelos basados en la experiencia, son aquellos modelos que reniegan del modelo matemtico, se basan en la experiencia y la subjetividad del conocimiento de la persona que est realizando el anlisis. Desde hace tiempo, utilizo mi propio modelo para el anlisis de los datos en un capacity planning, que un mezcla de los dos modelos anteriores. Dicho modelo se basa en los siguientes puntos.

Recursos de la plataforma
Hay que realizar un anlisis de cada una de las unidades de trabajo que hemos definido en la fase de definicin de los niveles de servicio. En este anlisis agruparemos todas las operaciones que se realizan en una unidad de trabajo y realizaremos un estudio de cmo dichas operaciones interactan con los recursos disponibles en la plataforma, uso de CPU, accesos a discos, fallos de cache, envo de paquetes, creacin de procesos, lecturas/escrituras en BBDD, etc. No debemos olvidar que estamos realizando un anlisis de la capacidad de la plataforma y existen dos variables, las cuales debemos modelar, volumen y tiempo de respuesta. Todas la plataformas trabajan con volumen de datos y se encargan de manipular y/o presentar dichos datos en un tiempo de respuesta determinado.

Volumen, el capacity planning nos puede ayudar en determinar si el nuevo volumen de datos que debe gestionar la plataforma es asumido por sta y en caso contrario, cuales son las acciones que debemos tomar. Tiempo de respuesta, es el tiempo necesario para considerar que una operacin ha finalizado.

La experiencia de las personas


La experiencia de las personas que realizan el anlisis es fundamental. La experiencia la justifico porque realizar un modelo matemtico del comportamiento de una plataforma IT es demasiado complicado, se pueden producir errores que enmascaren problemas y nicamente si la gente que est haciendo el anlisis tiene experiencia, no solo en la ejecucin del capacity planning sino experiencia en IT, podrn ser lo suficientemente crticos para identificar posibles problemas. Muchas veces durante el proceso de implantacin de un proyecto, a raz de los resultados obtenidos en el capacity planning, se deben tomar decisiones, como por ejemplo, aumentar la capacidad de clculo y surge la pregunta cmo crecemos vertical u horizontalmente? es necesario que las personas que estn realizando el capacity planning tenga la experiencia suficiente en IT para resolver este tipo de dudas y poder justificar las decisiones. No me fo demasiado de las empresas que presumen de realizar capacity planning, pero que no disponen de profesionales formados y con experiencia en tecnologa, los cuales nos ayudaran a justificar los resultados.

Teora de colas
Suelo utilizar teora de colas, lo que me permite construir un modelo de las relaciones existentes entre los elementos de la plataforma que intervienen en una unidad de trabajo. Realizar un modelo utilizando teora de colas para TODA la plataforma puede ser un trabajo faranico, que nos haga perder tiempo en la fase de anlisis, yo suelo centrarme en aquellas unidades de trabajo que presentan cierta criticidad para el negocio de la compaa. En el libro Performance by Design: Computer Capacity Planning By Example podris encontrar algunos ejemplos de como implementar redes de colas. Si emplear un modelo basado en teora de colas te parece complicado, puedes sustituirlo por un grafo de estados o sencillamente un esquema donde representes las relaciones existentes entre los distintos elementos de la plataforma. Para mi, es infinitamente til disponer de esquemas, con lo que poder discutir sobre posibles dudas con las distintas reas que intervienen en la ejecucin de un proyecto, es ms rpido, siempre es mas rpido preguntarle a alguien que est centrado en otra tareas utilizando un esquema que realizando una descripcin sobre la relacin existente entre el click del usuario en una pgina en concreto y el acceso a disco que dicho click provoca. Tambin es muy objetivo, la realidad (por lo menos

5 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

una aproximacin) es lo que representa el esquema, si no est en vuestro esquema, no lo podrs medir.

Herramientas
Normalmente no suelo utilizar herramientas comerciales para la recoleccin de los datos, en el mercado existen muchas herramientas que te permite no solo recoger los datos sino modelarlos( BMC Perform/Predict o HyPerformix), yo personalmente, prefiero recoger los datos y modelarlos, lo que me permite un margen de maniobra casi infinito y otro punto importante es reducir el coste total de ejecucin del capacity planning. Los comandos disponibles en el sistema y lenguajes de scripting como PERL o AWK, son suficientes para obtener datos de la plataforma. Durante la fase de anlisis deberamos ir planteando una solucin para disponer de una sencilla plataforma para la generacin de informes. Esta plataforma de informes, se alimentar con los datos que hemos obtenido y permitir disponer de informes de una forma sencilla y rpida. Debemos tener en cuenta que las distintas unidades de negocio de nuestra compaa nos solicitarn informes con informacin que a nosotros nos puede parecer trivial. Yo tengo la siguiente regla de oro: Todo el tiempo que empleas generando informes, lo pierdes analizando los datos. Por lo tanto intenta reducir al mximo el tiempo empleado para generar informacin.

Modelos fsicos y tericos


No siempre, durante el desarrollo de un capacity planning se puede disponer de una plataforma fsica sobre la que obtener los datos, a veces dicha plataforma no existe y debemos crear un modelo terico con el que trabajar, por su puesto que un modelo terico presenta muchas limitaciones y debemos ser muy conservadores con los resultados que obtengamos, pero los modelos tericos nos pueden ayudar a tomar ciertas decisiones sin tener que invertir dinero en algo que an no sabemos como va a funcionar. Siempre que puedas, monta un modelo fsico, porque te permitir comprobar las interacciones entre los distintos elementos de la plataforma, as como medir los tiempos de respuesta de los distintos elementos, aunque debas realizar extrapolaciones posteriormente. Otras veces nos encontraremos con plataformas fsicas sobre las que se quieren hacer modificaciones, por ejemplo aadir nuevos servidores web, en este caso, debemos crear un modelo utilizando la plataforma ya existen y los nuevos elementos que an no se han incorporado, creando un modelo mixto que nos ayudar en la toma de decisin sobre la forma en la que debe crecer la plataforma.

Bsicamente estos son los puntos principales del modelo que yo aplico para el anlisis de la capacidad de una plataforma, dependiendo de la naturaleza del negocio de dicha plataforma, habr que profundizar mas en unos puntos que en otros.

Procedimiento de anlisis de la capacidad.


1. Anlisis de los recursos de la plataforma . Utilizando las unidades de trabajo definidas en la fase de definicin de los niveles de servicio, iremos identificando todas las operaciones que una unidad de trabajo realiza sobre los distintos componentes de la plataforma, como son la CPU, memoria, discos, red, etc. Se crea un documento con cada unidad de trabajo. En dicho documento se definen los niveles de servicio que tiene la unidad de trabajo. Se realiza una lista con todas las operaciones que ejecutar la unidad de trabajo y por cada operacin se identifican todos los elementos de la infraestructura que intervienen en dicha operacin. Una vez finalizado este punto, dispondremos de una serie de documentos, los cuales definen perfectamente la plataforma 2. Creacin de un esquema de las unidades de trabajo crticas para el negocio. Con la informacin recopilada en el paso anterior, crearemos un esquema relacional entre los distintos componentes afectados en las operaciones de una unidad de trabajo. Yo suelo utilizar una red de colas para representar las dependencias existentes entre los distintos componente de la plataforma. Lo interesante de las redes de colas es que de forma visual podemos detectar muy rpidamente cuales son los posibles cuellos de botella y analizando cada uno de estos posibles cuellos de botella podemos tener una idea real de como la carga actual est afectando al desarrollo del negocio, tambin nos permite conocer rpidamente cuales sern los elementos de la plataforma que mas impacto tendrn en el rendimiento de la misma en caso de aadir mas carga. El utilizar teora de colas no es obligatorio, tal como he

6 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

comentado antes, se puede utilizar cualquier forma de representacin, el propsito es disponer de una serie de esquemas que nos permitan realizar un anlisis visual rpido sobre las relaciones dentro de la plataforma. 3. Creacin de un modelo fsico y/o terico sobre el que recoger los datos. Una vez hemos realizado el anlisis del relacin entre los distintos componentes de la plataforma, es interesante poder crear un prototipo sobre el que realizar las pruebas. Dependiendo del propsito del capacity planning y del estado de nuestra plataforma, podremos disponer de una maqueta exactamente igual, una maqueta reducida en la que los valores obtenidos tendrn que ser cuidadosamente extrapolados a la plataforma real o bien crear una serie de maquetas tericas sobre la que poder realizar los clculos de crecimiento. 4. Crear los scripts y procedimientos para la recogida de los datos. La creacin de los scripts de recogida de datos debe realizarse en base a los elementos y variables que vayamos a analizar. Es importante no excederse en la captura de informacin, hay quien piensa que la cantidad de datos no es un problema, pero cuando estamos realizando un anlisis sobre la capacidad de la plataforma, lo que no podemos hacer es cargar a la plataforma con trabajo para recoger su propia carga. Yo suelo realizar scripts sencillos que no se solapen en el tiempo y evitando crear gigantescos scripts de cientos de lneas que capturan datos, los parsean y te devuelven una hoja Excel. Cualquier SO est formado por miles de comandos sencillos, utilzalos y en cuanto a los datos, almacena en bruto y posteriormente realiza el trabajo de parseado. Es muy importante que la informacin almacenada est perfectamente organizada, ya que los datos recogidos, pueden ser necesarios, hora, das, semanas o meses mas tarde. Tambin debes tener cuidado en cmo guardas los datos, como he dicho, suelo guardarlos en bruto, porque posteriormente puedo tratarlos mejor, siempre que trates los datos y los parsees, perders informacin. 5. Analizar la informacin de cada unidad de trabajo por separado. Con todos lo datos obtenidos se debe realizar un anlisis detallado de cada una de las unidades de trabajo por separado, esto no dar un idea de como se est comportando dicha unidad de trabajo, si existen problemas de tiempo de respuesta en alguno de los elementos involucrados en las operaciones de la unidad de trabajo y cmo podemos hacer crecer los recursos de la plataforma para disminuir los tiempos de respuesta de los distintos elementos y por lo tanto el tiempo de respuesta de la unidad de trabajo. Yo suelo realiza el estudio por separado, actualizando los documentos creados en el paso 1, de esta forma podemos mantener toda la informacin crtica en dicho documentos, as como crear una bitcora en caso de que empleen mas de un ciclo en el desarrollo del proyecto. 6. Analizar la informacin de todas las unidades de trabajo en su conjunto. Una vez se hemos analizado cada uno de las unidades de trabajo, se le debe dar un peso, dependiendo de lo que estemos midiendo, por ejemplo si nos hemos centrado en los tiempos de respuesta, pues podramos utiliza el tiempo de respuesta de cada unidad de trabajo, con la unidad de trabajo y su peso, creamos un grafo que represente al negocio de la compaa, relacionaremos las distintas unidades de negocio entre si, con la idea de identificar posibles relaciones que confluyan en una misma unidad de trabajo y por lo tanto la conviertan en un posible cuello de botella, pero ya no a nivel de plataforma sino desde el punto de vista del negocio. 7. Generar informes sobre los anlisis. El ltimo paso consiste en crear toda la documentacin necesaria, por ahora tenemos un documento donde se describen cada una de las unidades de trabajo, sus operaciones y los elementos de la plataforma que han intervenido en la unidad de trabajo, tambin disponemos de un esquema, en mi caso una red de colas, por cada una de las unidades de trabajo, otro esquema, yo utilizo grafos de estado para relacionar las distintas unidades de trabajo y por ltimo una cantidad ingente de datos en bruto. Si se ha realizado un buen anlisis sencillamente habra que presentar el grafo con los pesos de las unidades de trabajo y los documentos de las unidades crticas.

Planificacin de acciones
La ltima fase de un capacity planning es la planificacin de las acciones en base a los resultados obtenidos. Dependiendo de la fase del proyecto en la que nos encontremos, la planificacin de acciones pueden provocar que se tenga que replantar la arquitectura de la nueva plataforma, se tenga que realizar un inversin en la plataforma de produccin, etc. De esta fase solo hay que destacar una cosa y es que se debe generar una documentacin personalizada para las distintas reas que intervienen en el desarrollo del proyecto, si no hacemos esto, no conseguiremos transmitir de forma firme y eficiente las carencias, problemas, modificaciones, de la plataforma. En resumen este es el momento donde se debe realizar una gestin del riesgo, si no conseguimos transmitir los posibles riesgos, habremos fracasado en nuestra tarea de capacity planning y por lo tanto, estaremos poniendo en peligro el negocio de nuestra empresa. Hemos trabajado durante las fases anteriores para construir una herramienta a la que llamaremos Planificacin de acciones, la cual deber ser utilizada por todas las reas que intervienen en el proyecto, con el fin de ayudarlos en la toma de decisin de algunos de los problemas a los que se enfrenten. As como hemos conseguido transmitir a las unidades de negocio cuales son las limitaciones de la

7 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

plataforma para el desarrollo de nuevas oportunidades de negocio.

Esta es una lista de consejos que suelo dar sobre como tener existo en un capacity planning:

1. Determina claramente los niveles de servicio que se exigirn a la plataforma. 2. Un capacity planning no sirve para medir el rendimiento de, por ejemplo, unos discos, sino para ver el impacto que el rendimiento de unos discos tienen sobre el negocio. 3. La informacin que generes debe ser de calidad y personalizada, evita realizar documentaciones bblicas que nadie leer. 4. Automatiza la generacin de informes. 5. Determina las dependencias existentes entre los distintos elementos de una plataforma, te ayudar en la identificacin de los cuellos de botella. 6. Gestiona los riesgos, no los percibas. 7. Piensa siempre en la disponibilidad, la escalabilidad y los costes de la plataforma. 8. Realizar el capacity planning en la fase de desarrollo de un proyecto es ms barato y ms fcil implementar sus acciones. 9. Es mejor un mal capacity planning que no tener ninguno. 10. Lo importante es el NEGOCIO, la tecnologa es solo una herramienta.

Algunos de los libros que considero indispensables leer, para conocer algo del estado del arte actual son:

Guerrilla Capacity Planning de Neil Gunter. Performance by Design: Computer Capacity Planning By Example de Daniel Menasce, Virgilio A.F. Almeida, Lawrence W. Dowdy. The Art of Capacity Planning: Scaling Web Resources de John Allspaw.

En el prximo post realizaremos un ejemplo prctico de cmo ejecutar un capacity planning y profundizaremos en alguno de los puntos crticos, como son la definicin de los niveles de servicio o el anlisis de la capacidad, as como la creacin de la documentacin, grafos, redes de colas, etc.

1.

Rosita Fraguel Dijo:


18 November 2009 a las 6:20 pm

Magnfico post. Espero impaciente el siguiente con los ejemplos mientras leo el Performance by Design. Gracias por el post y la bibliografa. 2.

Abelardo Estaol Dijo:


6 December 2009 a las 3:27 pm

Me parece un excelente documento, siento que solo falta concluirlo con algunas graficas para ver como se implementa, claro esto para personas como yo que apenas nos iniciamos en algo tan interesante y que debemos manejar quienes estamos a cargo de equipos de computo, de todas formas agradezco que tengas disponible este documento y nos de luz a quienes estamos iniciando. 3.

Nestor Pinzon Dijo:


14 January 2010 a las 12:42 am

Felicitaciones un trabajo bien resumido y muy juicioso. Gracias por el aporte

Servidores HP Proliant G7
Servers, pcs, licencias, despacho Su mejor precio al 56 02 7970900
www.mundoservers.cl

My name is null, /dev/null

8 de 9

18-04-2012 12:18

JJMora.es Blog Archive Capacity planning : Introduccin (I)

http://jjmora.es/capacity_planning_introduccion_i/

Algunos derechos reservados. Licencia Creative Commons

9 de 9

18-04-2012 12:18

You might also like