Creando la base de datos con MongoDB en Windows Azure


logo mongodb

Siguiendo esta serie de tutoriales, lo primero que hay que hacer es la base de datos que usara el motor MongoDB.

Luego de nefastos años donde poder tener un servidor y una base de datos resultaba muy costoso, incluso muchas ideas mías no las pude llevar a cabo por los costos que estos me representan y siendo un estudiante me resignaba a archivarlas en mi memoria. Pero los tiempos han cambiado y ahora existe el Cloud Computing que a grandes rasgos es posible tener computación a un costo muy bajo y un rendimiento muy alto, siendo posible llegar grandes corporaciones al éxito por un precio muy pequeño como lo es el banco mundial, Microsoft creó su propia nube al igual que Google, lo cual les permite llevar miles de operaciones al segundo, como lo hace Outlook que envía y recibe millones de correos cada segundo o Youtube que le puede dar broadcasting a sus usuarios dando una experiencia bastante agradable y fluida.

Pero muchas de estas soluciones en un principio sufrían colapso por el uso excesivo de los motores de bases de datos, lo que llevo a que era muy costoso tener granjas de servidores usando Oracle o SQL Server, que a su vez se volvían lentos con tanto procesamiento encima. El ejemplo que siempre he leído es el caso de Google, tenia tanta potencia trabajando que daba resultados bastante buenos, trayendo miles de resultados en segundos pero la indexación de la misma información tardaba alrededor de 30 a 90 días y los volúmenes que se trabajaban eran enormes, lo cual se creó el concepto de Big Data y junto a este tecnologías que lo respaldaron, una de estas es NoSQL.

El NoSQL ya no hace uso de tablas relacionadas, indices o mis archi-enemigos, las llaves foráneas; conceptos que se trabajaron y se usaron durante años para que las bases de datos fueran lo mas optimas posibles, sin embargo a nivel de seguridad este era el santo grial de las personas que intentaban acceder a cierta información y que a decir verdad no es para nada difícil de analizar.

Ahora es posible tener bases de datos altamente escalables, sin cuellos de botella por culpa de un motor, baratas y con usando tan fácilmente volúmenes de datos que simplemente es un sueño las bases de datos no relacionales, pero ojo que una base de datos no sea relacional no significa que presente sus datos en desorden y no tengan estructura alguna, al contrario, se debe tener una planeación y documentación bien construida para poder hacer sistemas mas complejos como lo pueden ser las redes neuronales o simplemente para no volver locos a los desarolladores que están tratando de usar las bases de datos NoSQL.

Sin mas preambulos comencemos.

Preparacion de la maquina virtual

  1. Iniciar sesión en Windows Azure e ingresar a la sección de maquinas virtuales y dar click en “Crear una maquina virtual” o dirigirse a la parte inferior izquierda donde dice “Nuevo”.Creando la maquina virtual
  2. Cuando se despliegue el menú seleccionar la opción que dice “De la galería”.Abriendo la galeria de imagenes
  3. Cuando se carguen las imágenes disponibles por defecto y propietarias seleccionar la imagen de disco “Windows Server 2012 R2 Datacenter” y presionar el botón de “Siguiente”.Escogiendo de la galeria
  4. Aquí se debe seleccionar la fecha de lanzamiento, creación de un nuevo usuario, el nombre de la maquina virtual y el tamaño que tendrá, esto depende de las necesidades que tengas, en este caso puede ser pequeña. Presionar “Siguiente”.Primer paso de la configuracion de la maquina
  5. En este paso se debe dar la configuración de la red, ten en cuenta que el nombre del DNS debe ser único, si no lo es muestra la advertencia, el resto por lo general viene por defecto y presionar “Siguiente”.Tercer paso de la configuracion en la maquina virtual
  6. Por último se deben configurar los endpoints o extremos que tendrá la maquina virtual. MongoDB por defecto tiene el puerto 27017 escuchando, por lo cual se debe abrir, se le pone algún nombre y listo.Configurando los endpoints
  7. Esperamos un rato mientras se crea la maquina virtual, el tiempo de espera depende del sistema operativo y las configuraciones que se le hayan hecho.Creando la maquina virtual

Conectandose a la máquina virtual y configuraciones básicas

  1. En la parte inferior donde están las opciones del elemento seleccionado aparece un botón que dice “Conectar”.Descargando el archivo de conexion
  2. Cuando se le da click aparece la advertencia de que si desea guardar el archivo o abrirlo, seleccionar “Guardar”, ya que no va a ser la primera vez que nos conectaremos a la VM (Virtual Machine).Advertencia de descarga
  3. Luego de que se haya descargado abrir el archivo y aparecerá una advertencia, seleccionar la opción de no volver a preguntar y aceptar.Otra advertencia...
  4. Ahora toca iniciar sesión con el usuario y contraseña que hicimos desde Windows Azure.Inicio de sesion
  5. Nuevamente hace una advertencia, pero esta vez son certificados de seguridad, le decimos que no volver a preguntar y Si.Oootra advertencia
  6. Ahora esperamos un breve tiempo a que termine de configurarse la VM y esta lista para su uso.Finalmente la VM cargando

Instalando MongoDB en la máquina virtual

  1. Lo primero que hay que hacer es abrir Internet Explorer, que por defecto viene anclado al inicio de Windows Server.Abrir Internet Explorer
  2. Una vez abierto abrir las opciones dando click en el icono con forma de piñon y seleccionando “Internet options”.Abriendo opciones de Internet
  3. Siguiendo los numerales de la imagen, cuando se abra una ventana emergente ir a la pestaña “Security” y buscar la opción “Trusted sites” donde aparecerá un botón que dice “Sites”, cuando se de click en el botón aparecerá una nueva ventana y agregar la dirección http://*.mongodb.org que donde el comodín * indica que cualquier cosa que le llegue.Configurando IE
  4. Luego de haber cerrado todas las ventanas que surgieron, ir a la dirección http://www.mongodb.org/downloads y comenzaran a salir una serie de avisos, a todos que no sean relacionados directamente con MongoDB darles click en “Close” pero antes seleccionar la opción que dice “Continue to prompt when website content is blocked”.Eliminando avisos
  5. Cuando cargue la pagina nos dará varias opciones de descarga, donde primero debemos cerciorarnos que la maquina es de 64 bit y proceder a la descarga.Verificando el sistema
  6. Cuando nos salga la ventana emergente debemos darle click en “Save”.Descargando MongoDB
  7. Luego de que se haya descargado, puede durar segundos o minutos dependiendo de la conexión a Internet de la VM se le da click derecho al archivo y seleccionar la opción que dice “Extract All…”.Extrayendo MongoDB
  8. Preferiblemente seleccionar el disco C: como destino por comodidad.Seleccionando la ubicacion de extraccion
  9. Luego de que se haya extraído el archivo Zip, cambiarle el nombre a la carpeta a algo mas amigable como “MongoDB” en mi caso.Cambiando el nombre de la carpeta
  10. Usando el Charm de búsqueda de Windows Server digitaremos la frase “Command Prompt” que es la consola de comandos de Windows o CMD.Buscando CMD
  11. Antes de realizar el segundo paso verificar que tenemos un segundo volumen de almacenamiento, si no se encuentra crear uno, en este caso ya estaba creada la partición y esta ubicado con la letra D:. Una vez abierta la consola digitar los comandos

    C:\> D:
    D:\> mkdir \MongoData
    D:\> mkdir \MongoLogs

    Creando carpetas desde consola

  12. Ahora escribimos el siguiente comando para configurar MongoDB.

    D:\> C:
    C:\> cd \MongoDB\bin
    C:\my_mongo_dir\bin> mongod –dbpath F:\MongoData\ –logpath F:\MongoLogs\mongolog.log

    Configurando el motor

  13. Abriendo otra consola de comandos digitar los siguientes comandos para comprobar de que esta bien instalada y funcionando el motor. Lo que hacen estos comandos son abrir la consola de MongoDB. Ubicar el contexto donde se está. Insertar un nuevo documento. Ver las bases de datos. Ver la colección (Omitir el simbolo >).  Preferiblemente ir digitando uno por uno para ver lo que sucede, al final si todo salió bien se debe ver algo parecido.

    C:\> cd \MongoDB\bin
    C:\MongoDB\bin> mongo
    >db
    > db.foo.insert( { a : 1 } )
    > db.foo.find()
    > show dbs
    > show collections

    Verificando instalacion

  14. Adicionalmente si se desea agregar Mongo como un servicio de Windows digitar el siguiente codigo.

    C:\mongodb\bin>mongod –logpath “c:\mongodb\logs\logfile.log” –logappend –dbpath “c:\data” –install

    Agregando MongoDB como un servicio de Windows

Configurando MongoDB

  1. Dirigirse al inicio de Windows donde esta anclada la aplicacion “Administrative tools”.Herramientas administrativas
  2. Cuando se ejecute, buscar el acceso directo a “Windows Firewall with Advanced Security”, dentro de este buscar en el panel izquierdo la opción “Inbound Rules”, seguido esto buscar en el panel derecho la opción “New Rule…”.Ingresando al Firewall de WIndows
  3. Se abrirá una ventana emergente, en esta seleccionar “Port” ya que abriremos el puerto para comunicar con el endpoint de Windows Azure que se creó al principio de este tutorial y click en “Siguiente”.Seleccionando que es un puerto
  4. Ahora seleccionar que la regla aplica a un puerto TCP y especificar el puerto 27017.Configurando la regla del puerto
  5. Se debe dar click en la primera opción que es permitir las conexiones, “Allow the connection”.Permitiendo las conexiones
  6. Por ultimo se debe dar un nombre a la regla y opcionalmente una breve descripción de la misma.Describiendo la regla

Probando MongoDB

Ya habiendo llegado a este punto solo nos queda probar nuestro reluciente y nuevo motor. Para esto haremos solo  una inserción de datos. Si se desea profundizar en este ambiente dirigirse a http://docs.mongodb.org/manual/tutorial/getting-started/ 

  1. En una nueva consola de CMD ubicarse en el motor.

    cd \MongoDB\bin

  2. Abrir el motor.

    mongo

  3. Mostrar las bases de datos.

    > show dbs

  4. usar la base de datos “test”.

    > use test

  5. confirmar el contexto.

    > db

  6. Crear dos documentos con sus valores respectivos.

    > j = { name : “mongo” }
    > k = { x : 3 }

  7. Insertar a la coleccion testData los documentos.

    > db.testData.insert( j )
    > db.testData.insert( k )

  8. Mostrar las colecciones.

    > show collections

  9. Mostrar los documentos en la coleccion testData.

    > db.testData.find()

Si los datos fueron ingresados correctamente se debe ver algo parecido.

Prueba final

Un comentario en “Creando la base de datos con MongoDB en Windows Azure

Los comentarios están cerrados.