La semana pasada tuve el placer de compartir una sesión bastante amena sobre Windows Azure con la gente del grupo de usuarios del País Vasco, Artalde.NET.
Fue una sesión bastante participativa, dónde los asistentes sacaron a la palestras sus dudas y comentarios sobre la plataforma, siendo la experiencia bastante enriquecedora.
La verdad es que este tipo de eventos u otros estilo el BizSpark o el Roadshow de Azure dónde tuve la oportunidad de participar te dan la oportunidad de ver muchos puntos de vista y descubrir escenarios dónde Windows Azure puede ser de gran utilidad.
Es muy común que muchas de las dudas y comentarios que surgen sean siempre las mismas. Por este motivo, intentaré realizar algunos post para aclarar algunas de las dudas que veo habitualmente.
El primer tema es el siguiente: Windows Azure NO hace milagros.
Uno de los aspectos clave que nos da la plataforma es la escalabilidad sin límites. Desplegando nuestra aplicación en Windows Azure ésta podrá escalar hasta límites insospechados e inimaginables, y esto sin exagerar.
Claro está que la plataforma Windows Azure permite realizar aplicaciones que pueden ser altamente escalables, pero el límite está en la aplicación; si ésta no está preparada para escalar, Windows Azure no va a hacer milagros para que escale.
Por ejemplo, si tengo una aplicación web que no es capaz de desplegar en una batería de servidores web on-premise, difícilmente Windows Azure va a poder hacerlo…
Puede parecer una tontería, pero más que una vez olvidamos este punto y pensamos que por el hecho de emplear la plataforma o migrar una aplicación que tengamos a Windows Azure vamos a conseguir todos los beneficios que ésta puede llegar a ofrecernos.
Pero hay un tema más básico. Windows Azure es una nueva plataforma dónde podemos desplegar nuestras aplicaciones y que nos ofrece indudables beneficios sobre otras soluciones, pero esto no significa que nuestra conocimientos anteriores dejen de ser válidos.
¿Cómo sé cuántas instancias tengo que levantar?¿Cómo hago que sea escalable?¿Dónde guardo la sesión?¿Cómo me aseguro que sea escalable?¿Qué arquitectura debo poner?
Como plataforma nueva tiene sus peculiaridades y hay ciertos conocimientos que son diferentes, pero la esencia sobre cómo desarrollar una aplicación altamente escalable y qué conceptos arquitectónicos debo tener en cuenta son iguales a los que necesitaría para desarrollar una aplicación que vaya a desplegarse en un entorno on-premise.
Por ejemplo, a la pregunta ¿Cómo sé cuántas instancias tengo que poner? se puede responder con ¿Cómo lo sabes ahora?¿Cómo dimensionas tu solución on-premise?
Con esto lo que quiero comentar es que no debemos olvidarnos que muchos de los retos a los que nos enfrentamos en Windows Azure, no dejan de ser los mismos a los que nos enfrentábamos antes de existir esta plataforma y que por tanto no debemos hacer tabla rasa, ni pensar que por usar Windows Azure vamos a tener por arte de magia aplicaciones escalables sin ningún tipo de esfuerzo.
Si no hemos dedicamos el tiempo a hacer una buena arquitectura, si no hemos aplicados los patrones y técnicas de desarrollo adecuadas, si nos hemos pensando en ciertos aspectos clave sobre el desarrollo de aplicaciones…Windows Azure NO hará milagros, al menos en la versión actual 🙂
Siguiendo con la dinámica el último post , hoy intentaré aclarar otra de las preguntas con las que habitualmente