28 Oct Linux vs Windows en entornos GIS.
Los que nos dedicamos al mundo GIS, sobre todo con plataformas OpenSource, tenemos una predilección muy definida en cuanto a en qué tipo de Sistema Operativo. Debemos usar si queremos alojar un geoportal e incluso realizar procesos masivos en los que se requiere un uso intensivo de procesador y memoria.
Esta predilección está basada en 3 conceptos principalmente:
- Coste económico del Sistema Operativo.
- Estabilidad del Sistema.
- Manejo de memoria y procesamiento múltiple.
En todos estos ámbitos, la elección está clara: Linux.
Estamos hablando de un Sistema Operativo que en la inmensa mayoría de los casos tiene un coste cero, frente al pago de licencias que hay que realizar en Windows.
Si Linux es famoso y efectivo por algo es por su estabilidad en entornos de producción y por su manejo. Eficiente de memoria y procesamiento y gestión de multithreading (múltiples hilos de procesamiento en paralelo).
¿Esto cómo se traduce en cuanto al cliente y al producto?
En cuanto al cliente es sencillo, menor coste en los proyectos al ahorrarse el pago de licencias. (Estamos hablando del Sistema Operativo en concreto, si habláramos de software propietario, el precio se dispararía).
Con el producto, se traduce en tiempos de procesamiento menores, tiempos de respuesta ante peticiones mucho más reducidos, mayor estabilidad y mayor resistencia frente a fallos del sistema.
En este caso, como estamos hablando de software enfocado al mundo GIS OpenSource no vamos a hablar de compatibilidades entre Sistemas Operativos. La inmensa mayoría de estos productos (como los empleados en esta prueba) están diseñados para funcionar en Linux de manera principal, que es dónde despliegan su mayor potencial, y como añadido se adaptan a otras plataformas. Evidentemente existen excepciones, pero en la gran mayoría de los casos es así.
Windows 2012 y Ubuntu Desktop
Hemos realizado pruebas de rendimiento entre Windows 2012 (64 bits) y Ubuntu Desktop 14.04 (64 bits), con unos recursos de hardware idénticos.
Las pruebas se han realizado con el siguiente hardware:
- 8 GB de RAM
- 4 procesadores Intel(R) Core i7-3770 3.90GHz
- 64 Mb memoria video
Hemos empleado las siguientes aplicaciones a la hora de ejecutar los procedimientos de las pruebas, tanto en Linux como en Windows:
- Tilemill v.0.10.2
- Geokettle 2.5
- PostgreSQL 9.4
- PostGIS 2.1
- Ogr2ogr
- Python 3.4
La descripción del proceso completo, ejecutado en cadena con la aplicación GeoKettle, descrita de manera somera es la siguiente:
- El sistema lee unos ficheros dgn y son transformados a PostgreSQL + PostGIS mediante la utilidad Ogr2ogr
- Se realizan una serie de operaciones sobre los registros recien importados en PostgreSQL. Como creación, actualización y cálculo de campos nuevos en base a otros e indexación de campos.
- Realización de una petición a un proyecto de TileMill conectado a la base de datos PostgreSQL por línea de comandos. Para generar un fichero .mbtiles con las distintas cartografías que se desean exportar. Dada la extensión y los niveles de zoom seleccionados para realizar la exportación, el número de teselas generadas en este fichero .mbtiles ronda las 376.000.
- Se ejecuta un programa realizado en Python que realiza una serie de consultas espaciales en PostgreSQL. Para generar unos ficheros SQLite que optimizan las búsquedas gráficas en dispositivos móviles, que es la finalidad de este proceso.
Como se puede comprobar, son varios los procesos que se realizan en cadena y en paralelo, algunos de ellos muy intensivos en el uso de procesadores y procesos multihilo, como es el caso de TileMill.
El tiempo de ejecución en el entorno Windows es de 4 horas 5 minutos, mientras que en Ubuntu Desktop el tiempo es cerca de 1 hora menor, tardando 3 horas 8 minutos.
No es objeto de este artículo realizar un estudio detallado de cada uno de los procesos ejecutados de manera comparativa, viendo su uso de CPU y memori. Simplemente queremos establecer unas conclusiones. En cuanto a rendimiento general del conjunto de operaciones, y es más que evidente que Linux como Sistema Operativo, en entornos de producción es la mejor opción.
De bruces con la realidad de las empresas
¿Qué significa esto?
Es muy sencillo. En nuestra experiencia, si la empresa que demanda el desarrollo de determinado proyecto GIS es una empresa consolidada, normalmente grande, que requiere un GIS de soporte a sus datos de redes o cualquier elemento espacial, es decir, un proyecto GIS complementario a desarrollos o esquemas que ya tienen, es prácticamente imposible realizarlo en Linux. Suelen ser 100% reacios (alguna excepción habrá) a introducir en sus sistemas componentes fuera del entorno Microsoft. Por miedo, desconocimiento o sensación de pérdida de control de lo ya adquirido.
Lamentablemente la especialización de administradores de sistemas en entornos Linux en las empresas hoy en día sigue siendo muy escasa, aunque muy necesaria. Por eso entendemos ese rechazo a implantar proyectos GIS fuera de plataformas Windows en este tipo de clientes, aunque no nos guste.
Sistemas de Gestión Interna – Sistemas de Información
Por otro lado, si el desarrollo digamos es desde cero, su dependencia de sistemas de gestión interna o de elementos de trabajo propios de la empresa es mínima. Suelen dejarse aconsejar en cuanto al uso de Linux, e incluso a alojarlo en la nube, fuera de las instalaciones del cliente. Este tipo de proyectos se realizan mayormente en Pymes, mucho más abiertas a la innovación en este sentido que las grandes empresas.
Normalmente en el sector público se está optando por el software libre, por lo menos en lo concerniente a GIS. Siendo incluso requisito imprescindible para llevar a cabo el proyecto
Esos son los 2 tipos de perfiles básicos de empresa privada que nos solemos encontrar. Aún queda mucho camino que recorrer en cuanto a desconocimiento de lo que significa el software libre y su potencialidad en entornos GIS. Pero desde luego los pasos que se están dando los últimos años nos lleva a pensar que en no demasiado tiempo la tendencia irá revirtiéndose.