En el análisis que hacíamos de los aspectos clave de los negocios basados en Big Data comentábamos cómo, en el caso concreto de la tecnología, la barrera económica se había hecho menos exigente con estos nuevos desarrollos y con las soluciones asequibles de cloud computing existentes. En primera instancia uno podría pensar que es un cierto contrasentido ya que, si de lo que se trata es de procesar unas cantidades de datos tan grandes que las máquinas convencionales no pueden explotarlos eficientemente, la intuición parece decirnos que lo que entonces haría falta es invertir en “supermáquinas” (más potentes y más caras) para conseguirlo. Vamos a ver como las tecnologías Big Data se basan en un esquema de solución que evita ese inconveniente.
El principal problema al que se enfrentaban las soluciones para procesar Big Data (antes de la aparición de GFS/HDFS y el paradigma MapReduce) es la necesidad de que los datos tengan que cargarse en memoria, ser procesados y después almacenados de vuelta en disco. La cuestión no es sólo que el volumen de datos sea más grande que la memoria disponible (ya que para solventarlo se podrían dividir los datos y procesarlos por trozos) sino que el ancho de banda entre el disco y el procesador (CPU) se convierte en el principal factor limitante, ya que para un volumen de datos del orden de terabytes podríamos estar hablando de horas o incluso días ¡sólo para leer los datos! Ni siquiera pensando en una “supermáquina” con enormes cantidades de memoria y centenares de procesadores conseguiríamos evitar ese cuello de botella.
El enfoque de las tecnologías Big Data no se basa en esa idea de “supermáquinas” sino que plantea la alternativa de “sumar muchos pequeños”, que es la idea tras el concepto de cluster computing (agrupaciones o clusters de muchas máquinas) en el que ya se basan muchas de las soluciones de data center hoy en día. Este enfoque no está exento de problemas, ya que hay que gestionar la posibilidad de que una de las máquinas del cluster falle y pare todo el proceso, y de todos modos sigue existiendo un cuello de botella importante por la intercomunicación entre las máquinas. Estos son los problemas que ataca específicamente la solución de un framework MapReduce (como Apache Hadoop) basado en un sistema de ficheros distribuidos (GFS/HDFS), ya que nos libra de la complejidad de la programación distribuida entre máquinas, acerca la tarea de cómputo a los datos para minimizar su trasiego y así evitar cuellos de botella, y además puede gestionar directamente la contingencia de que una de las máquinas falle, gracias al esquema con el que reparte las tareas map/reduce entre las máquinas y a la réplica de los datos en el sistema de ficheros distribuidos.
El toque final que nos permite que estas soluciones de cluster computing sean más asequibles económicamente es el esquema con el que los proveedores de "Infrastructure/Platform as a Service" nos ofrecen sus servicios. Con estas soluciones, en vez de tener que asumir todo el inmovilizado que supondría comprar todas esas máquinas (y esperar que podamos amortizar el coste), se nos ofrece la posibilidad de un servicio de “alquiler de máquinas” en el que sólo pagaremos por el gasto en recursos que efectivamente estemos haciendo, con la flexibilidad además de que la potencia de cómputo contratada pueda aumentar o disminuir flexiblemente en función de las necesidades de cada momento.
El enfoque de las tecnologías Big Data no se basa en esa idea de “supermáquinas” sino que plantea la alternativa de “sumar muchos pequeños”, que es la idea tras el concepto de cluster computing (agrupaciones o clusters de muchas máquinas) en el que ya se basan muchas de las soluciones de data center hoy en día. Este enfoque no está exento de problemas, ya que hay que gestionar la posibilidad de que una de las máquinas del cluster falle y pare todo el proceso, y de todos modos sigue existiendo un cuello de botella importante por la intercomunicación entre las máquinas. Estos son los problemas que ataca específicamente la solución de un framework MapReduce (como Apache Hadoop) basado en un sistema de ficheros distribuidos (GFS/HDFS), ya que nos libra de la complejidad de la programación distribuida entre máquinas, acerca la tarea de cómputo a los datos para minimizar su trasiego y así evitar cuellos de botella, y además puede gestionar directamente la contingencia de que una de las máquinas falle, gracias al esquema con el que reparte las tareas map/reduce entre las máquinas y a la réplica de los datos en el sistema de ficheros distribuidos.
El toque final que nos permite que estas soluciones de cluster computing sean más asequibles económicamente es el esquema con el que los proveedores de "Infrastructure/Platform as a Service" nos ofrecen sus servicios. Con estas soluciones, en vez de tener que asumir todo el inmovilizado que supondría comprar todas esas máquinas (y esperar que podamos amortizar el coste), se nos ofrece la posibilidad de un servicio de “alquiler de máquinas” en el que sólo pagaremos por el gasto en recursos que efectivamente estemos haciendo, con la flexibilidad además de que la potencia de cómputo contratada pueda aumentar o disminuir flexiblemente en función de las necesidades de cada momento.
No hay comentarios:
Publicar un comentario