Geeks With Blogs

News
Séptimo Cielo Alfredo Delsors Blog

A veces es necesario tener una instancia realizando el rol de servidor mientras que las otras instancias realizan el rol de cliente. Un ejemplo puede ser una carpeta compartida como se explica en este gran post: http://blogs.msdn.com/b/mariok/archive/2011/02/11/sharing-folders-in-azure.aspx. Una instancia comparte una carpeta mientras que las demás la utilizan para escribir los ficheros que la que hace de servidor procesa.

El problema aquí es qe no hay un mecanismo en Azure que nos permita descubrir cuál es la instancia que comparte la carpeta. Una primera aproximación es la ofrecida en el post anterior, tener instancias con el rol de servidor y otras con el rol de cliente. Pero esto significa más instancias y más dinero cuando probablemente lo que hay que hacer puede hacerse por cualquiera de las instancias "cliente" sin necesidad de una instancia distinta adicional que solo haga eso.

Una solución para ahorrarnos el rol de servidor es utilizar la Instancia 0, siempre disponible, para que actúe de servidor. Una instancia puede saber que debe actuar como servidor viendo si es la 0 o no con RoleEnvironment.CurrentRoleInstance.Id.EndsWith(".0"). Las otras instancias pueden iterar la colección de instancias hasta encontrar la instancia cuyo nombre acaba en ".0", cogiendo sus endpoints y actuando como su cliente.

En Cloud hay que tener siempre cuidado de no desperdiciar capacidad de computación con diseños muy bonitos pero que dan lugar a instancias infra-utilizadas. No hay que olvidar que uno de sus propósitos principales es el ahorro de costes.

Posted on Friday, February 18, 2011 8:11 PM Azure | Back to top


Comments on this post: Como ahorrarse una instancia implementando un patrón cliente/servidor en Azure?

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © Alfredo Delsors | Powered by: GeeksWithBlogs.net