¿ Porqué considerar Windows Azure para mi aplicación ?

CloudEl proceso de análisis necesario para determinar si una aplicación dada puede ser llevada a La Nube es complejo, por lo tanto, acá solamente intentaré comentar brevemente los puntos principales que formarían parte de tal tipo de análisis.

Para poder focalizar mejor, plantearé el análisis en forma de un breve cuestionario o checklist de evaluación para Cloud.

¿ El negocio al que mi aplicación atiende tiene una demanda predecible pero cambiante de requerimientos de procesamiento y/o almacenamiento a lo largo del mes/trimestre/año ?

Un ejemplo permitirá ver más claramente lo destacado de esta pregunta. Supongamos que mi aplicación calcula sueldos, o costos. Durante unos pocos días en el mes, la aplicación tendrá un pico de demanda importante de procesamiento y almacenamiento, para luego hacer muy poco el resto del mes.

En forma similar, aparecen picos adicionales en los meses de pago de aguinaldos y de vacaciones (para el caso de sueldos), que se suman al pico propio del mes.

En el caso de una aplicación de costos, se presenta un pico adicional al comienzo del año fiscal, en que aparece la demanda adicional del cálculo de los costos presupuestados, que se ha de sumar al pico propio del mes.

Es evidente que la demanda es predecible, pero es muy cambiante: un pico importante de demanda en un intervalo corto del mes, para luego entrar en una meseta de demanda también bastante predecible.

Si mi aplicación (y el negocio que atiende) tiene este tipo de característica de demanda predecible pero cambiante, Cloud podría ser una alternativa a evaluar.

¿ El negocio al que mi aplicación atiende tiene una demanda no predecible de requerimientos de procesamiento y/o almacenamiento a lo largo del mes/trimestre/año ?

Supongamos que tenemos una aplicación que presupuesta costos y precios de servicios de organización de eventos, como casamientos, cumpleaños, reuniones de negocios, etc.

La empresa cuenta que una variedad de proveedores de servicios de catering, música y entretenimientos, decoración, filmación, etc., que le permite vender servicios muy diversos, de volumen y ocurrencia muy diversa y poco predecible, desde un cumpleaños para 50 personas, un casamiento para 300 personas, o una reunión de ventas para 2000 personas. En general, en verano hay alguna caída esperable del negocio, por lo tanto, el departamento de venta posee un plan que compensa durante el resto del año.

El mismo plan de ventas también contempla que algunos eventos se contratan y luego se cancelan por diversas razones, por lo que el departamiento asume un porcentaje de sobreventa para compensar por este efecto. En una semana dada se superpone una cantidad variable de eventos, con características y tamaños también poco predecibles.

Si mi aplicación (y el negocio que atiende) tiene este tipo de característica de demanda poco predecible, Cloud podría ser una alternativa a evaluar.

¿ El negocio al que mi aplicación atiende tiene necesidades de un nivel de disponibilidad de tres 9s (un mínimo de 99,9% de disponibilidad), a un precio razonable ?

Mi negocio opera 24 horas al día, los 365 días del año, y para poder operar, necesita una aplicación que esté igualmente disponible para poder atenderlo.

En este contexto, una disponibilidad de 99,9% implica que en un año entero de operación, solamente son “tolerables” un total de 8 horas y 42 minutos sin servicio, por todo concepto, ya sea paradas programadas (mantenimiento, updates, hot fixes, service packs, etc.) como no programadas (incidentes).

El beneficio se multiplica si esta disponibilidad se puede obtener a un precio razonable.

Si mi aplicación (y el negocio que atiende) tiene este tipo de requerimiento de nivel de disponibilidad a precio razonable, Cloud podría ser una alternativa a evaluar.

¿ El negocio al que mi aplicación atiende requiere un business continuity plan tal que la arquitectura de la aplicación debe ser distribuida, flexible y fault-tolerant ?

El proceso de Business Continuity Management brinda un marco de referencia para asegurar la resiliencia de nuestro negocio ante cualquier eventualidad, es decir, cualquier evento adverso.

Este proceso implica una serie de pasos, el primero de los cuales es “Entender las vulnerabilidades de mi negocio”.

Esto implica que la capacidad de poder ejecutar las operaciones del negocio no pueden verse afectadas por ningún factor, como por ejemplo, que la aplicación que soporta a mi negocio posea puntos únicos de falla en su arquitectura.

Aún si se considerase hostear dicha aplicación en La Nube, no sería prudente que toda la capacidad de ejecución de la aplicación esté concentrada en La Nube, porque, de ser así, si el evento adverso implica un impedimento en el acceso de Internet, no tenemos disponibilidad de la aplicación por falta de acceso, aunque el servicio hosteado en La Nube esté operando en forma normal.

Esto implica que la arquitectura de Cloud a elegir debería permitirnos, de ser necesario, diseñar una sola aplicación que parte de la misma puede ejecutarse On-Premises, y otra parte en La Nube, y que cosas como la seguridad federada de las diversas partes de la aplicación sea a la vez sencilla de administrar, configurar y mantener, y por su parte, altamente segura y confiable.

Si mi aplicación (y el negocio que atiende) tiene este tipo de requerimiento de arquitectura, derivado de un conjunto de requerimientos de mi Business Continuity Plan, Cloud podría ser una alternativa a evaluar. Es importante destacar que no todos los proveedores de servicios de PaaS (Platform as a Service) ofrecen el mismo nivel de beneficios en este aspecto, destacándose Windows Azure por sus ventajas respecto de otros proveedores.

¿ El negocio al que mi aplicación atiende requiere de escalabilidad elástica de procesamiento y/o escalabilidad elástica de almacenamiento, ya sea almacenamiento elástico en un modelo de datos relacional, como almacenamiento elástico de file system ?

Este tipo de requerimiento es bastante más complejo de lo que parece, dado que involucra muchos elementos, como por ejemplo, que la arquitectura de la plataforma Cloud a elegir sea capaz de escalar en forma fluida y continua, en vez de hacerlo en saltos, y a su vez, que el proceso de procurement y allocation de escalabilidad elástica debe ser sencillo, flexible y dinámico, como así también razonable desde el punto de vista económico-financiero.

Si mi aplicación (y el negocio que atiende) tiene este tipo de requerimiento de escalabilidad elástica, Cloud podría ser una alternativa a evaluar.

Para redondear este breve análisis, vale la pena destacar que un análisis completo para determinar si una solución dada es candidata para Windows Azure, suele involucrar una cierta cantidad amplia de aspectos, como económico-financieros, de arquitectura, de negocios, legales, y otros, por lo tanto, sería recomendable encarar un proyecto para realizar dicha evaluación.

Antes de lanzarse a llevar a cabo dicho proyecto, es conveniente indicar que tendría sentido tal proyecto para el caso que en una evaluación preliminar, en la aplicación en cuestión se han identificado como probables varios de los puntos destacados en este post, y no solamente uno o dos.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s