Microsoft Web Farm Framework

Ya sabemos la importancia de las aplicaciones distribuidas para la escalabilidad de nuestro entorno y cuando desplegamos apliaciones web una de las maneras mas sencillas de escalar y garantizar el rendimiento es a través de granjas de servidores y de balanceadores de carga.

Pues en este sentido Microsoft ha desarrollado un framework que nos permitirá trabajar de manera sencilla con granjas de servidores Web. Unos de los problemas con los que nos encontraremos en el manejo de granjas de servidores web es el despliegue de las aplicaciones en los distintos servidores y el despliegue de componentes y suplementos de manera de mantener todos los servidores bajo un mismo entorno de trabajo. Para esto el Microsoft Web Farm Framework no facilitara las siguientes labores:

-       Instalacion del IIS y ASP.NET en todos los servidores de la granja.

-       Instalacion y configuración de todos los modulos en el IIS

-       Configuracion de los Applications Pools y sitios en el IIS

-       La configuración de los certificados de servidor para las comunicaciones HTTPS

-       Copia y sincronización del contenido de los sitos web.

-       Coordinación entre los balanceadores de carga

Estas tareas en la mayoría de los casos tenían que desarrollarse de manera manual para mantener un contexto idéntico entre todos los servidores de la granja, con Microsoft Web Farm Framework se podrá realizar la configuración en un solo servidor y luego replicar todo al resto de los servidores.

Otra característica muy interesante es que debido a la integración de este framework con los balanceadores de carga se puede sacar a un servidor del balanceo mientras se actualiza y luego regresarlo a la granja.

Aun el framework esta en su versión beta y la pueden descargar de aquí.

Para información mas detallada hagan click aquí.

El Grupo Tribune se decide por el Cloud Computing y Microsoft Azure

En algunas fuentes en Internet me entere de la futura adopción del grupo Tribune a las etnologías de Microsft Azure y aunque todavía falta ver los resultados de este proyecto de Microsoft y Tribune creo que es una prueba bastante significativa de confianza hacia las tecnologías cloud computing y especialmente  a Microsft Azure. El grupo Tribune es propietario de una gran cantidad de medios de comunicación entre los que se incluyen Los  Angeles Times y Chicago Tribune , en total son 8 cadenas periodisticas, 23 canales de televisión, 50 sitios web, 32 datacenters y 4000 servidores que atienden un trafico de 6.1 mil millones de paginas visitadas.

El grupo Tribune a decidido mudarse al cloud computing y a Microsft Azure esperando tener una mayor escalabilidad basada en una relación costo beneficio mas favorable que les permita ahorrar parte de los 1.5 millones de dólares que gastan anualmente en soportar la infraestructura actual.

Si quieren obtener mayor información sobre este proyecto visiten el siguiente link donde verán detalles del caso de estudio y su implementación.

Fuentes:

Tribune Transforms Business for Heightened Relevance by Embracing Cloud Computing
El grupo Tribune salta a la nube… con Microsoft
Tribune Transforms Business for Heightened Relevance by Embracing Cloud Computing (Windows Azure)
Tribune Embraces Azure

Empezando con los WCF Ria Services

Ria Services provee componentes, herramientas y servicios que facilitan el acceso de nuestra capa de presentación a la lógica de negocio que tenemos en el servidor, de esta manera los clientes de aplicaciones RIA como Silverlight pueden hacer uso de nuestra capa de negocios y actualizar la interfaz de usuario de manera automática. Por ejemplo imaginemos una aplicación cliente basada en el Silverlight que deba mostrar información en un grid consumiendo los datos que están en el servidor remoto, es aquí cuando las capacidades de Ria Services nos permite acceder a estos datos a través de nuestra lógica de negocio sin necesidad de tener que desarrollar una complejo estructura basada en web services, de esta manera Ria Services implementa de forma automática servicios WCF para dar manejo a las peticiones realizadas por la interfaz de usuario simplificando las tarea  de desarrollo y asemejando el mismo al desarrollo de aplicaciones web tradicionales.

Para seguir profundizando en este tema les recomiendo seguir los siguientes enlaces al blog de Ibon Landa que realiza una introducción bastante clara sobre las capacidades que no da la utilización de los Ria Services.

¿Por qué debo empezar a usar JQuery?

Para los que no lo saben, JQuery es una librería javascript que permite de una manera bastante rápida y sencilla acceder y manipular el HTML DOM. Pero porque deberíamos de empezar a usar JQuery? pues aquí van algunas razones:

-Primero: podemos manipular nuestro DOM con menos código, es decir menos código que hace mas, obviamente además de facilitarnos la manipulación del DOM con consultas más sencillas conllevara a páginas más ligeras.

Por Ejemplo

$(‘#txtName’); En lugar de document.getElementById(‘txtName’);

-Segundo: soporta JSON por lo que nos permite realizar aplicaciones AJAX ligeras y sencillas a través del uso de funciones que nos permiten obtener datos del servidor codificados en JSON sin necesidad de refrescar la pagina usando una petición Get HTTPRequest.
Las siguientes son algunas de las funciones que  nos otorga JQuery para trabajar con AJAX.

Low-Level Interface Perform an asynchronous HTTP (Ajax) request.

Global Ajax Event Handlers Register a handler to be called when Ajax requests complete. This is an Ajax Event.

Global Ajax Event Handlers Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event.

Global Ajax Event Handlers Show a message before an Ajax request is sent.

Low-Level Interface Set default values for future Ajax requests.

Global Ajax Event Handlers Register a handler to be called when the first Ajax request begins. This is an Ajax Event.

Global Ajax Event Handlers Hide a loading message after all the Ajax requests have stopped.

Global Ajax Event Handlers Show a message when an Ajax request completes successfully.

Shorthand Methods Load data from the server using a HTTP GET request.

Shorthand Methods Load JSON-encoded data from the server using a GET HTTP request.

Shorthand Methods Load a JavaScript file from the server using a GET HTTP request, then execute it.

Shorthand Methods Load data from the server and place the returned HTML into the matched element.

Collection ManipulationFormsHelper Functions Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request.

Shorthand Methods Load data from the server using a HTTP POST request.

FormsHelper Functions Encode a set of form elements as a string for submission.

FormsHelper Functions Encode a set of form elements as an array of names and values.

-Tercero: nos permite separar nuestro código javascript de nuestro HTML

Por ejemplo podemos asignarle una función al evento click de un botón de la siguiente manera:

<script src=”_scripts/jquery-1.3.2.min.js” type=”text/javascript”></script>

<script language=”javascript”>

$(document).ready(function() {

$(‘#btnSubmit’).click(function() {

alert(‘Submit Clicked!’);

});

});

</script>

en Lugar de:

<input id=”btnSubmit” onclick=”javscript:Save()” type=”button” value=”button” />
-Cuarto: JQuery es ampliamente usado y soportado por lo que es multinavegador, existen muchos plugin disponibles, posee soporte Intellisense desde Visual Studio 2008 y se puede obtener desde los CDN de google  usando:

<script type=”text/javascript” src=”http://www.google.com/jsapi”></script>

<script type=”text/javascript”>

google.load(“jquery”, “1″);

google.setOnLoadCallback(function() {

alert(“Welcome to Google Hosted JQuery!!”);

});

</script>
Si te convenciste de usar JQuery este es el  link de su site oficial desde el que puedes tener acceso a la documentación, ejemplos, plugin, etc.

Fundamentos de clúster de servidor

En Windows Server 2008, se puede configurar tres tipos de grupos de servidores para el equilibrio de carga, escalabilidad y alta disponibilidad. En primer lugar, un grupo round-robin de distribución es un conjunto de equipos que utiliza DNS para proporcionar equilibrio de carga  con los requisitos de configuración mínimos. A continuación, una Network Load Balancing (NLB) (también llamado una granja NLB) es un grupo de servidores que se utilizan no sólo para proporcionar equilibrio de carga, sino también para aumentar la escalabilidad. Por último, un clúster de conmutación por error (failover cluster) puede utilizarse para aumentar la disponibilidad de una aplicación o servicio en el caso de una falla en el servidor.

Seguir leyendo

Tecnologías de almacenamiento

datacenter1

Direct-Attached Storage

DAS es una tecnología de un solo servidor como por ejemplo el disco duro interno de un servidor o un sistema RAID conectado a un servidor por medio de  SCSI o FC, la principal característica de esta tecnología es que provee a un servidor un rápido acceso a los datos almacenados directamente a través de un bus interno o externo. Esta tecnología es recomendada para soluciones en la que los servidores necesiten un alto rendimiento pero no grandes capacidades de almacenamiento, por lo tanto es muy utilizada en servidores que funcionan como DNS, WINS, DHCP o controladores de dominio. La principal limitación de esta tecnología es que los datos solo pueden ser accedidos desde un solo servidor.

Seguir leyendo

Exponiendo Web service con JSON

json

JSON es un formato de intercambio ligero que al igual que el XML puede ser  leído fácilmente  y es independiente de la plataforma, esta basado en sub conjunto de javascript por esta razón puede ser convertido a javascript rápidamente y por lo tanto es ideal para aplicaciones Web basadas en AJAX, pero la ventaja de JSON sobre AJAX es que es capas de representar la misma información en un formato mas ligero que el XML y por lo tanto es mas rápido de transportar y consume menos ancho de banda.

Seguir leyendo

Cuando dividir mi proyecto en mas soluciones.

hacha

Cuando trabajamos con el visual Studio podemos trabajar con proyectos de distintas envergaduras que pueden constar de uno múltiples assemblies a ser generados y  generalmente cada uno de estos assemblies esta ligado a un proyecto (*.csproj o *. vbproj) y este proyecto a una solución (*.sln) esto en el caso mas sencillo pero en otros casos nuestro desarrollo involucra la generación de múltiples soluciones y por lo tanto múltiples proyectos (*.csproj o *. vbproj), es aquí cuando surge la pregunta de que tantos proyectos debería agrupar en una solución, ya que el hecho de agregar mas y mas proyectos a una solución va trayendo consigo una serie de problemas como lo es un mayor tiempo de espera al descargarnos la toda la solución del team fundation o la misma compilación de toda la solución, en función de todo esto debemos decir cuando dividir nuestro código en mas soluciones o cuando dejarlo en una única solución. Aquí van algunas consideraciones al respecto.

- Seguir leyendo…