WavebreakMediaMicro - Fotolia
Cómo la computación en memoria se volvió la nueva mejor amiga de la nube
El almacenamiento y la nube no siempre van de la mano. Ahí es donde la computación en memoria entra en acción. El experto Christopher Tozzi explica cómo tomar ventaja de estas nuevas opciones de nube.
¿Qué se interpone entre su nube y el alto rendimiento? Hay una buena probabilidad de que se trate de tasas de E/S del disco duro, que son tristemente lentas para los estándares del cómputo moderno.
Pero hay una solución: la computación en memoria. En este artículo explica qué es la computación en memoria y cómo sacarle el máximo partido en un entorno de nube.
Por qué los discos duros son lentos
Si ejecuta su aplicación en la nube, es probable que no piense mucho acerca de los discos que almacenan sus datos. Después de todo, una de las principales razones para migrar cargas de trabajo a la nube es eliminar la necesidad de mantener usted mismo su infraestructura, incluyendo matrices de almacenamiento.
Sin embargo, si encuentra que su aplicación de entorno de nube está exhibiendo un rendimiento deficiente, entonces puede ser que valga la pena pensar en el grado en el que las lentas tasas de lectura y escritura de los discos duros están causando un cuello de botella en su flujo de trabajo.
Las velocidades de lectura/escritura del disco duro no han mejorado mucho en las últimas décadas. La capacidad de almacenamiento del disco ha crecido exponencialmente y los discos son más fiables, pero los discos duros de hoy no transfieren información mucho más rápido de lo que lo hacían cuando Windows NT la última y más grande cosa en la informática empresarial.
En otras palabras, si los datos sobre los cuales su aplicación funciona necesitan leerse o escribirse en un disco duro, el rendimiento de su aplicación va a estar severamente limitada.
Por qué computación en memoria
La computación en memoria ofrece una solución a este dilema. Como su nombre indica, la computación en memoria realiza operaciones utilizando la memoria del sistema o la memoria RAM como su mecanismo de almacenamiento, en lugar de los discos duros tradicionales. La memoria RAM puede leer y escribir datos miles de veces más rápido que la tasa de E/S de los discos duros.
La computación en memoria no es un concepto nuevo. Crear discos de RAM en Linux ha sido posible durante años, proporcionando a las aplicaciones y procesos del sistema acceso a los datos que se almacenan en la memoria RAM como si existieran en un disco duro normal.
Sin embargo, ahora es más factible apalancar la computación en memoria en una empresa debido tanto a la llegada de la nube, que hace más fácil acceder a grandes volúmenes de almacenamiento en RAM, como al desarrollo de sofisticadas plataformas de computación en memoria, tal como los discutidos más adelante.
Desafíos de la computación en memoria
Por supuesto, hay algunos inconvenientes a la adopción de la computación en memoria. Si no fuera así, ya nadie utilizaría discos duros tradicionales.
Una limitación importante de la computación en memoria es su costo. La memoria RAM es menos costosa de lo que era, pero todavía cuesta mucho más que el espacio en disco duro. Como resultado, obtener un entorno de almacenamiento en memoria lo suficientemente grande como para manejar las diversas necesidades de sus aplicaciones puede ser costoso.
La computación en memoria también es un reto porque los datos almacenados en ella no son persistentes. Cada vez que un servidor se apaga, cualquier dato que vive en su RAM desaparece para siempre. Ese no es el caso con los discos duros, donde los datos persisten después de que un sistema deja de funcionar. La computación en memoria, por lo tanto, requiere que tenga una estrategia para mover datos hacia un almacenamiento persistente si necesita conservar los datos durante un largo período.
Por último, pero no menos importante, la computación en memoria puede ser un reto para aprovecharse de manera eficaz, porque no todo el software está diseñado para tomar ventaja de ella. Una aplicación que fue escrita para ejecutarse en una infraestructura con almacenamiento tradicional puede necesitar modificaciones para sacar el máximo provecho de la computación en memoria.
Computación en memoria y la nube
La nube es una excelente herramienta para superar los retos asociados con la computación en memoria.
Un entorno de nube permite a las organizaciones acceder a grandes cantidades de memoria RAM en demanda, en lugar de tener que invertir en esta infraestructura en sus instalaciones. Este enfoque ayuda a las organizaciones a superar las barreras de costos que, de otra manera, habrían hecho imposible ejecutar operaciones en memoria.
Un entorno de nube también puede ayudar a hacer el almacenamiento en memoria más fiable, proporcionando alta disponibilidad y redundancia. Si construye una infraestructura basada en la nube compuesta de máquinas virtuales, con conmutación por error automática o hosts redundantes, entonces la interrupción del almacenamiento en RAM en un sistema no dará lugar a la pérdida de datos. Esta alta disponibilidad sería más difícil de implementar en un centro de datos en las instalaciones, donde los recursos del sistema tienden a ser más limitados.
Por estas razones, el emparejamiento de la nube con la computación en memoria es una excelente manera de aprovechar las ventajas de rendimiento que las cargas de trabajo en memoria proporcionan, sin el costo o complicación de ejecutar aplicaciones en memoria en las instalaciones.
Cómo ejecutar cargas de trabajo en memoria en la nube
Si desea realizar computación en memoria en un entorno de nube, la forma más fácil de comenzar es mediante el uso de un marco de almacenamiento en memoria que esté diseñado para trabajar con la nube.
Un ejemplo es Apache Spark, una plataforma de análisis de datos en memoria. Spark le permite procesar los datos a un ritmo mucho más rápido de lo que podría lograr mediante el almacenamiento en disco magnético.
Mientras que Spark se puede ejecutar en sus instalaciones, una serie de proveedores de nube pública ofrece soluciones llave en mano de Spark. Google Cloud ofrece Cloud Dataproc. Azure incluye Spark en su plataforma HDInsight. Además, Amazon ofrece Spark como parte de su Elastic MapReduce.
Si usted tiene un gran volumen de datos para procesar rápidamente, entonces las implementaciones de Spark antes mencionados, y similares, en una nube pública, le ayudarán a hacer eso sin necesidad de una gran inversión en nueva infraestructura o configuración del sistema. Por supuesto, también puede ejecutar Spark en una nube privada instalándolo usted mismo en un servidor virtual.
Para la computación en memoria, que puede ejecutarse en una nube privada, plataformas como Red Hat JBoss Data Grid e IBM DB2 son soluciones potenciales. No son plataformas de análisis de datos, como Spark, sino bases de datos en memoria que podrían utilizarse con aplicaciones de analítica o cualquier otro tipo de carga de trabajo que requiera el almacenamiento de datos con tiempos muy rápidos de lectura y escritura. Plataformas como estas también están diseñadas para garantizar una alta disponibilidad de los datos mediante la replicación de datos en todo un cúmulo de nubes, con el fin de evitar la pérdida de datos en caso de que un servidor se apague.
Conclusión
La computación en memoria podría ser la diferencia entre el típico rendimiento de las aplicaciones y una velocidad de vértigo. Mientras que la computación en memoria una vez fue muy cara de obtener y difícil de configurar, las plataformas de computación en memoria basadas en la nube ofrecen formas rentables y convenientes para superar el cuello de botella que los lentos discos duros pueden crear en una infraestructura tradicional.