domingo, 11 de julio de 2010

GIS y "La Nube"

Desde hace tiempo, llevo pensando hacer un artículo que hable sobre La Nube y GIS pues han aparecido varios artículos últimamente y mis ideas se han ido disparando.

Hace tiempo salió la noticia en la que la plataforma Azure soportaba en sus base de datos tipos espaciales. No está mal, pero no es lo que busco Con ello podemos en nuestras aplicaciones en la nube realizar análisis de los datos espaciales con operaciones de la base de datos pero no tenemos herramientas para poder mostrarlo de manera sencilla. Ni de como subir y operar con nuestra cartografía. Nos falta un motor espacial como ArcGIS Server, Geoserver, etc... que podamos poner en la nube de manera sencilla.
ESRI es el líder en temas de GIS, tiene los productos en mi opinión y quizás no siendo objetivo, mejores que hay en el mundo pero es caro. Estoy muy interesado en saber que intenciones tienen para La Nube. En un artículo de uno de los blogs que más me gustan me quedé un poco decepcionado. Creo que ESRI intenta dirigirse a esta nueva tecnología pero con las mismas licencias que antes. Por ahora parece bastante caro. No dudo que con el tiempo irán sacando soluciones más acertadas. Además el Cloud Computing como elemento disruptivo va a generar más de un problema en las grandes empresas.
Entonces queda buscar una solución buena (quizás no tan buena como utilizando productos de ESRI pero si lo suficientemente buena), bonita y barata.
Aquí es donde he encontrado la web de GIS Cloud. Esto si me ha empezado a parecer bastante interesante. Desconozco los precios. No se si es barato. Pero si he jugado un poco con la cuenta gratuita y me ha sorprendido como subir de manera sencilla (FTP) tu cartografía y poder operar con un visualizador que dispone de bastante funcionalidad. Parece un GIS genérico que puede encajar en bastantes casos pero no parece que se pueda mostrar de manera sencillas fichas de información o adaptaciones especiales para otros temas de GIS. De todas las maneras, habrá que seguir echándole un vistazo.
También quiero dejar de lado elementos como Arcgis.com o el API de Google Maps o de Bind. Son muy buenos y si te sirven para tu aplicación junto con sus condiciones no tienen rival. La idea es poder tener disponible como elemento de desarrollo de tu propia aplicación un servicio o motor GIS propio.
Entonces es donde se me ocurre que lo interesante sería tener un motor GIS open-source como GeoServer junto una base de datos espacial gratuita como Postgres en una plataforma de Cloud Computting barata y potente.
Aquí es donde he encontrado el suministrador Skygone que se especializa en temas de GIS (¿será porque también tiene la sede en Redlands?). No conozco a este proveedor pero la verdad es que tiene un sitio web especializado en despliegue de soluciones GIS en la nube. Curiosamente tiene plantillas de despliegue de GeoServer, ArcGIS o MapServer.
Solo queda ver que posibilidades existen con Amazon AWS, una de las plataformas más baratas, potentes y de moda en el momento. Me llama la atención que GeoServer sacó un proyecto para experimentar con AWS pero del que no he sacado ninguna conclusión.
Por ahora es esta página la que da en el blanco con lo que se busca y ofrecen imágenes AMI gratuitas con la configuración para un GeoServer+PostGIS en servidor Linux muy interesantes. Solo me faltaría poder jugar con ellas.
La verdad es que los precios de Amazon son bastante impresionantes:

El precio de una pequeña computadora con 1,7 GB de Memoria cuesta $0.085 por hora que tengamos la imagen encendida. Un Giga de almacenamiento de EBS cuesta $0.10 al mes aunque hay que sumar el número de peticiones de almacenamiento que son $0.10 por cada millón de peticiones más la transferencia de datos a través de Internet que son $0.00 el primer Giga y $0.15 cada GIGA transferido.
Apetece hacer unas pruebas..... Uno piensa que puede montar un sistema GIS escalable por poco dinero.

He hecho dos experimentos para calcular el coste que tendría una solución GIS, en los que seguro me falta algo.
La primera es la solución más pequeña posible consistente en un pequeño Linux encendido el 100% del tiempo con las características como el descrito anteriormente y 100Gb de almacenamiento. Total $110 al mes.
La siguiente solución es una más compleja compuesta de 2 instancias para el servidor de aplicaciones y mapas de tipo "Large" (7.5 Gb de Memoria y 2 Virtual Cores cada una) y una instancia de tipo "Large" para la Base de Datos. También he puesto balanceo de carga y monitorización de cada una de las instancias. Total $881 al mes

Otros temas que me llaman la atención:
- La posibilidad de poner una instancia del balanceador en Europa y otra en América del Norte.
- Tener una instancia reservada para poder hacer los "tiles" de nuestros mapas y solo activarla cuando lo vayamos a necesitar. Esto nos conlleva que las otras instancias están trabajando sin problemas y dando servicio al público mientras tenemos otra que está haciendo el trabajo "sucio". Pensemos en otras operaciones GIS costosas que se realizan de vez en cuando.
- Cuando las instancias son reservadas, en vez de bajo demanda (mínimo por un año) los precios de las instancias bajan considerablemente.
- Intentar hacer uso del almacenamiento S3 que es mucho más barato, al menos desde el código de nuestras aplicaciones pues tenemos un API preparado para ello.

Merece un buen experimento...