Académique Documents
Professionnel Documents
Culture Documents
Si ests planeando crear una aplicacin que potencialmente deba escalar a millones de usuarios, o simplemente quieres crear una aplicacin que te permita escalar a pequea escala sin invertir en costosos servidores, debes contemplar la base de datos HBase del proyecto Hadoop de la Fundacin Apache (los mismos del popular Servidor Web Apache). HBase es una base de datos abierta que implementa el concepto de BigTable, que si recuerdan es la tecnologa que permite que Google escale toda su infraestructura a centenares de miles de servidores de bajo costo de una manera homognea, sin las restricciones de una base de datos relacional (como MySQL, Oracle o MS SQL Server). Ms especficamente, HBase es una base de datos distribuida que permite escalar casi linealmente con simplemente agregar ms servidores al sistema. Para esto HBase puede utilizar opcionalmente una tecnologa llamada HDFS (HadoopDistributed File System) que bsicamente es el anlogo del GFS (Google File System), que no es ms que un fichero de archivos distribuidos. Con esta arquitectura es posible lograr no solo altos niveles de rendimiento, sino que adems altos niveles de redundancia en datos, ya que a cierto nivel los datos estn distribuidos de manera redundante similar a como los datos son distribuidos en un sistema de discos duros con tecnologa RAID 5 por ejemplo (aunque esta funcionalidad tengo que aun verificarla personalmente, pero sepan que es parte al menos del concepto original). Algo importante a notar aqu es que si algo hemos aprendido del Internet, y en particular de Aplicaciones Web, es que en muchos casos la demanda de usuarios es impredecible, en donde una pequea empresa con una gran idea puede de la noche a la maana recibir millones de visitas, y para eso mejor estar preparado que perder esas visitas, y es ah en donde se le ver la importancia a HBase. Sin embargo, HBase no es solo una base de datos altamente escalable, sino que adems es un nuevo paradigma que por fin quizs deje atrs las bases de datos relacionales en muchos casos tpicos.
Pero recuerden, que en todo momento los datos tuyos estn en la nube de servidores de Google, lo que significa que puedes tener acceso a ellos desde cualquier navegador web desde cualquier parte del mundo sin instalar absolutamente nada. Incluso Google te da la libertad de poder volver a sacar tus datos de la nube de Google y descargarlos de vuelta (junto con los resultados) a tu PC local, si eso hace que duermas mejor por las noches. Lo revolucionario de todo esto, no es solo esta funcionalidad que Google te ofrece, sino el hecho de que todo reside en la nube, un concepto que cambia en 180 grados el concepto que uno tiene a la hora de analizar grandes volmenes de datos, en donde las primeras preguntas que surgen son (1) cul base de datos elijo?, (2) cunto cuesta?, (3) cuanto tiempo nos tomar instalar y crear la base de datos, y (4) cunto tiempo nos tomar simular todo esto? Ahora Google simplemente hace que ponderemos una sola pregunta: Cmo entiendo mejor mis datos?, obviando por completo los detalles tcnicos y yendo directamente al punto importante: En ser productivo y obtener respuestas. Por ahora Google lo que desea es retroalimentacin de los usuarios de Fusion Tables, pues por ahora es solo un experimento en sus Google Labs, y por tanto existen ciertas restricciones (por ejemplo, el monto mximo por juego de datos es de 100MB, y la cantidad de datos mximo por usuario es de 250MB). Este es un excelente momento para unirte al proyecto, pues en esta etapa tienes mas influencia sobre hacia donde Google llevar este proyecto, ya que por ahora es un proyecto bastante desconocido, inclusive entre la comunidad de diseadores de bases de datos.
software sino que debemos optar por soluciones basadas en Apache, MySQL y PHP pensadas directamente para operar en la nube. Muchas soluciones de cdigo libre se basan en este tipo de solucin con lo cual casi cualquier tipo de software es posible encontrarlo bajo este modelo y cada da son ms los desarrollos que utilizan esta frmula. En la nube no nos sirve cualquier software para instalar, sino que debemos buscar un programa que se gestione desde el navegador web, admita la creacin de usuarios para poder gestionarlo con un mnimo de seguridad y a ser posible admita la opcin de trabajar de forma colaborativa. Ya se que muchos de vosotros estis pensando que igualmente el espacio web que se contrata es limitado y si instalamos una aplicacin nos puede llevar a exceder el trfico de datos contratado con lo cual la opcin de tener un buen precio se nos va de las manos. Tenemos otra opcin que es crear nuestro propio servidor web, para lo cual tendremos que tener una serie de servicios extra si no los tenemos ya contratados, tanto a nivel de redes como de software instalado en el servidor. A nivel de redes lo fundamental es tener una buena velocidad de subida. El problema con el que nos encontramos aqu es que el principal operador del pas ofrece una pauprrima velocidad de subida de 320 kb tericos, con lo cual habra que buscar otras soluciones, del tipo SDSL, con igual ancho de banda de subida que de bajada. Hay soluciones que puede complementar correctamente a nuestra ADSL y no son demasiado costosas, con lo cual configurado la salida con las dos lneas podemos tener una velocidad de subida medianamente decente. La otra cuestin importante a nivel de redes es pedir una direccin IP fija, para que se establezcan correctamente las comunicaciones, aunque esta opcin no es del todo imprescindible si que es muy recomendable para no tener problemas. Esto no resulta muy caro, ya que cuestan unos 10 o 12 euros ms al mes, pero todo poco a poco va sumando. Hay que hacer un balance entre lo que nos ahorramos del espacio web contratado para alojar la pgina corporativa y el incremento de costes para montar nuestro servidor. Por ltimo a nivel de software debemos tener instalados en el servidor y administrar los servicios de Apache, MySQL o cualquier otra base de datos similar que nos demande el software que llevaremos a la nube y PHP. Estos programas son gratuitos pero tienen unos gastos de administracin que no podemos desdear. Por otro lado est la cuestin del tiempo que estamos dedicando a estos menesteres y que sustraemos a la administracin de nuestro negocio.
La parte positiva de montar nuestro propio servidor web para alojar tanto nuestra pgina corporativa como nuestras aplicaciones en la nube la tenemos en el espacio prcticamente ilimitado para nuestros archivos y el control sobre los mismos siempre en nuestras instalaciones. En la parte negativa tendremos que resultar un poco ms caro si tenemos que optar por aumentar el ancho de banda de subida y una IP fija, as como el tiempo que perderemos en administrar los servicios del servidor. Es cuestin de echar cuentas y ver que opcin puede ser la mejor para nuestra empresa siempre teniendo muy claras las necesidades de la misma. Y vosotros, os habis planteado la posibilidad de tener vuestra propia nube?
Universidad de Managua.
El ms alto nivel.
Trabajo de Ingeniera de Software II. Bases de Datos en las nubes.
Turno. Sabatino.
Aula. # 9.