viernes, 16 de julio de 2010

Reporte de incidencias en Windows Azure

Ayer, en el marco del Microsoft World Partner Conference (WPC) se presentó el trabajo en el que he estado trabajando las últimas semanas. Entre otras novedades relacionadas con CSP destaca una aplicación pensada para que los ciudadanos puedan reportar incidencias que encuentren en las calles y seguir su evolución. La aplicación tiene esta pinta:

image

¿Qué tiene esta aplicación de especial? la tecnología que hay por detrás. Os lo explico a continuación. Para empezar, la aplicación está pensada para funcionar en la nube de Microsoft, en Azure. No os voy a contar las ventajas o los inconvenientes de trabajar en la nube, pero seguro que muchos de vosotros ya habéis oido decir que todo hace pensar que la nube es el futuro y, cada vez más, el presente. De la misma manera que lo está la aplicación, los datos se encuentran alojados en la nube, en SQL Azure.

Todo esto está muy bien pero, ¿podríamos tener la aplicación y los datos en un sistema controlado por nosotros? sin problema. Y ¿podríamos tener la aplicación en la nube y los datos en nuestro sistema, o al inrevés? efectivamente, podríamos. De hecho, una de las partes más interesantes de la aplicación es la posibilidad de seguir los incidentes reportados por los ciudadanos desde un sistema de gestión interno del Ayuntamiento. La aplicación se puede conectar prácticamente con cualquier sistema y en este caso se presentó conectada con Microsoft Dynamics CRM 4.0. Cuando un ciudadano reporta una incidencia el sistema genera un caso en el CRM del Ayuntamiento y, cuando el funcionario encargado de gestionar la incidencia realiza cualquier cambio en dicho caso, el cambio se publica instantaneamente a la vez que se notifica al ciudadano si así lo indicó a la hora de reportar la incidencia.

Muchos de vosotros pensaréis que enviar datos desde nuestro sistema interno a una aplicación publicada en internet no tiene secretos, pero que el proceso inverso es un poco más delicado. Normalmente un sistema de gestión no está publicado en internet y, para que alguien modifique un dato desde fuera lo único que se puede hacer es publicar un servicio web en algún punto que vea nuestro sistema y crear todas las reglas que necesitemos en los diferentes cortafuegos que tenga nuestra infraestructura para que esto funcione. Esto deja de ser cierto con AppFabric. AppFabric nos permite establecer túneles por los cuales fluya la información entre dos puntos cualesquiera, ya sean dos puntos internos en nuestra red, dos puntos externos, o uno interno y otro externo.

La preferencia por tener datos y aplicaciones en sistemas controlados por nosotros o en nubes de terceros es diferente para cada persona y para cada tipo de aplicación. Os voy a exponer algunos de los problemas que suelen preocupar a la gente cuando se les habla de cloud computing.

Seguridad de los datos: efectivamente los datos estan expuestos en internet, pero un buen desarrollo debería asegurar los datos frente a ataques de terceros. ¿Estamos seguros que un error del software no comprometerá los datos que tengo en mi base de datos interna? si podemos responder afirmativamente a esta pregunta podemos confiar en que el software que se ejecuta en la nube puede ser igual de seguro. Si de quien desconfiamos es de la empresa mantiene la nube es como si desconfiamos de la empresa que nos está proporcionando un hosting en una nube privada o de la empresa que mantiene los servidores de nuestra empresa. Mi única preocupación aquí hace referencia a temas legales de LOPD, pero espero y confío en que Microsoft tendrá esto resuelto de una manera o de otra.

Disponibilidad: es más común de lo que yo pensaba que la gente piense que al no tener el control de la infraestructura hay más posibilidades de quedarse sin servicio. Lo que yo pregunto siempre es el número de veces que ha visto fuera de servicio MSN, Technet, Microsoft.com, o Google (para que no digáis que sólo pienso en clave Microsoft). Las empresas que proporcionan servicios de cloud computing, como pueden ser Microsoft, Google o Amazon tienen los mejores equipos tanto técnicos como humanos. Si pretendemos tener un entorno que nos garantice más disponibilidad que la que nos pueden ofrecer estas empresas hay que prepararse para el coste que esto nos va a suponer.´

Conexión a internet: este es quizá el miedo más fundado con el que me he encontrado. Si parte de nuestro sistema está en nuestra infraestructura y parte está fuera, una caída de nuestro ADSL puede ser un gran problema. De todas maneras, encontrar hoy día un proveedor de fibra óptica que nos garantice una altísima disponibilidad no es un gran problema, y si encima lo redundamos con un ADSL de backup yo creo que solventamos el problema. Cierto es que esto tiene un coste pero, ¿qué coste tiene comprar y mantener unos servidores en nuestra propia infraestructura? yo creo que esto último supera con creces lo primero.

¿Y, qué tenemos a cambio? pues tenemos un sistema en producción para el cual no hemos tenido que hacer una gran inversión en hardware y que podremos hacer escalar tanto como queramos a medida que nuestras necesidades aumenten, pagando únicamente por el uso que le estemos dando. Y si el uso crece tanto que hace que los costes se disparen, significará que el uso que se le está dando es tan brutal que el coste que tendría de mantener esto de manera interna también habría sido traumático. De todas maneras siempre estamos a tiempo, si creemos que es lo más acertado, de mover todos los sistemas a una nube privada una vez se estabilice la carga.

En fin, ya veremos qué pasa de aquí a unos años. O todo es mentira y seguimos como hasta ahora o todo es verdad y la mayoría de los sistemas se han ido moviendo hacia las diferentes nubes. Seguramente no será ni una cosa ni la otra…

0 comentarios: