Cargando



Aprendiendo CouchDB

En este tutorial vamos a dar nuestros primeros pasos con CouchDB, pasaremos por su instalación, algunas de las características que posee y ejemplos prácticos de su uso.


feb 04 2015 03:21
Profesional
feb 04 2015 10:05
Los sistemas tradicionales de Bases de Datos han existido por una gran cantidad de tiempo en el mercado y por supuesto han sido muy efectivos, ya que por su misma longevidad han alcanzado una madurez y estabilidad que no se puede poner en duda.

El problema radica en que ahora que con el mayor uso de datos y su naturaleza cada vez más compleja, las estructuras tradicionales se están volviendo cada vez más complicadas y con ello su rendimiento se resiente, tanto como en el ámbito de producción como al nivel del desarrollo de aplicaciones.

En la actualidad la fuerza tomada por sistemas no relacionales o NoSQL como también se les conoce, han resuelto algunas de estas complejidades que se muestran con los sistemas tradicionales o relacionales.

COUCHDB Y LA FUERZA DEL HTTP

CouchDB es uno de la nueva camada de sistemas no relacionales, sin embargo su estructura es muy diferente a servicios como MongoDB por ejemplo. Esto se debe a que basa toda su administración en una API que viaja y se comunica únicamente a través de HTTP.

Con lo expuesto anteriormente debemos inferir rápidamente que gracias al uso de HTTP tenemos todos sus métodos para poder hacer nuestro trabajo como POST, GET, PUT DELETE, donde con estas cuatro herramientas del protocolo podemos lograr que todo funcione a nuestro gusto.

MANTENERNOS RELAJADOS

El objetivo final de CouchDB es que podamos relajarnos, aunque suene como algo que no tiene sentido, se cubren tres áreas importantes que refuerzan el concepto de baja problemática al utilizar este sistema de almacenamiento de datos. Veamos a que se refiere:

Interfaz
Al manejar HTTP como su forma de comunicación, la creación de aplicaciones con las cuales podamos utilizar CouchDB baja en complejidad, ya que en estas fechas todos los frameworks tienen facilidades de conexión a servicios REST, con lo que perderemos menos tiempo y por ende nuestras entregas serán más relajadas.

Puesta en producción
Generalmente cuando intentamos llevar el ambiente de desarrollo a producción siempre ocurre un problema, o tenemos que hacer más cosas de lo esperado, aun así siempre habrán fallas que nos hacen la vida complicada. CouchDB está hecho para esperar fallas y poder gestionarlas por sí mismo, de esta manera a pesar que ocurran los problemas sabremos que CouchDB nos apoyará bajando el nivel de estrés.

Escalar
La escalabilidad de los sistemas es otro punto importante, ya que cuando vamos creciendo vamos necesitando más poder y en ello CouchDB nos ayuda, ya que es muy fácil de mantener en varios servidores ya que su arquitectura nos permite gozar de una versatilidad en cuanto a las fuentes de datos y su sincronización.


INSTALACIÓN

Lo primero que necesitamos para empezar a trabajar con CouchDB es instalarlo en nuestro sistema, para ello primero debemos saber que tenemos la posibilidad de instalarlo en Linux, MAC y Windows, por lo que tenemos una gran cantidad de plataformas para elegir la que más nos guste o sobre la cual están basados nuestros servicios.

En Linux la instalación es tan fácil como colocar el siguiente comando en la consola o terminal en los sistemas basados en Debian, como Ubuntu o Mint:
sudo apt-get install couchdb
Una vez finalizada la instalación el servicio tiende a ser iniciado automáticamente, en caso que no sea así debemos saber que este se encuentra en /etc/init.d/couchdb por lo que en esa ruta podemos escribir .Start y con ello bastará.

En Mac es un proceso muy fácil también sobre todo si utilizamos homebrew ya que únicamente necesitamos escribir en la terminal o consola lo siguiente:
brew install couchdb
Una vez instalado para iniciar el servicio solo debemos escribir couchdb en nuestra consola y el servicio iniciará sin problemas.

Para hacer la instalación en Windows debemos descargar el paquete con el instalador desde la web oficial del proyecto, aquí también contaremos con los archivos para los otros sistemas.




Una vez que tenemos el archivo lo debemos ejecutar y seguir el procedimiento del mismo, esto nos permitirá instarlo como servicio o como aplicación, cualquiera de las opciones que sea válida para nuestros usos.

PROBANDO NUESTRA INSTALACIÓN

Ahora que ya hemos instalado e iniciado el servicio debemos hacer la prueba de fuego para saber si está funcionando adecuadamente, para ello en nuestro navegador debemos dirigirnos a la siguiente ruta:
http:/ /127.0.0.1:5984/_utils/index.html
Una vez que estemos ahí debemos ver algo similar a lo siguiente:



Adicionalmente en el lado derecho de esta pantalla tenemos varios enlaces que nos ayudaran, por ejemplo un verificador de la instalación,y acceso directo a enlaces con la documentación oficial en caso que surjan dudas.

aprendiendo-couchdb-3.jpg


Lo que vimos es la interfaz web llamada Futon,y es la encargada de darnos la administración de forma visual y amigable del servicio. Para crear una nueva Base de Datos únicamente debemos hacer click en la opción Create Database esto nos llevará a una pequeña interfaz donde definiremos el nombre de la misma, lo cual podemos ver en la siguiente imagen:

aprendiendo-couchdb-4.jpg


Ya que el proceso haya terminado podremos acceder a nuestra Base de Datos e ir agregando documentos, que sería una especie de equivalente con los registros en los sistemas de Base de Datos relacionales.

Al crear un documento inmediatamente tendremos un _id y podremos agregar todos los campos que necesitemos sin necesidad de seguir una estructura o un esquema, veamos en la siguiente imagen esto:


Si hacemos click en la pestaña que dice source, veremos que este documento es en realidad un JSON, lo que nos da mayor versatilidad ya que casi todos los lenguajes tienen librerías que nos permiten manipular este tipo de datos.



SEGURIDAD DE NUESTRO SERVICIO

Al instalar CouchDB este inicia en un modo administrador sin contraseñas, lo que es ventajoso porque nos permite empezar a utilizar el servicio directamente, sin embargo es muy inseguro ya que cualquiera que pueda acceder a nuestro equipo podrá ver nuestros documentos.

Futon nos indica esto en la parte inferior derecha donde nos dice que estamos en modo Admin Party!, y nos da directamente un link para corregirlo.

aprendiendo-couchdb-7.jpg


Al hacer click sobre Fix this podremos definir los usuarios con sus nombres y contraseñas que pueden acceder al servicio. Como vemos en la siguiente imagen al colocar las credenciales y aceptar ya tendremos nuestra primera capa de seguridad en el mismo con unos simples pasos.

aprendiendo-couchdb-8.jpg



MODELOS DE DATOS

Ya que hemos tenido un poco de práctica volvamos un momento a la teoría ya que de esta manera tendremos una base para poder sumar mejores conocimientos. Como dijimos CouchDB no tiene esquema y estructura, esto hace que podamos crear grandes colecciones o agrupaciones de documentos pero cada documento puede tener elementos únicos y esto no hace que la Base de Datos sea menos administrable.

Por el contrario esta estructura es lo que le da una ventaja sobre sistemas relacionales ya que podemos utilizar datos sin necesidad de conocerlos y aun así poder hacerlos funcionar dentro de nuestro sistema. Por ejemplo una ficha de datos de contacto, imaginemos que recibimos un primer contacto con datos:
Nombre: Empresa 1Teléfono: 4445566Correo: rrrr@ejemplo.com
Pero que sucede si tenemos otra empresa que nos contacta, y esta posee varios contactos, en un sistema relacional tenemos dos opciones: Podemos agregar varios registros o modificamos la estructura y añadimos más campos, en CouchDB únicamente creamos un nuevo documento con una estructura diferente pero que está bajo la misma Base de Datos de contactos por ejemplo:
Nombre: Empresa 2Telefono: 6667788Skype: 8889900Correo: otrocorreo@ejemplo.com
Si aplicamos esto a CouchDB debería lucir de la siguiente forma en nuestra interfaz Futon:




Como vemos hemos utilizado la misma Base de Datos del ejemplo de la instalación y sin tener que configurar nada hemos añadido campos diferentes y aun así nuestra Base de Datos funciona sin problemas. Aquí radica su poder ya que podemos tratar las situaciones y cambios de la vida real de forma dinámica. En el aspecto teórico hemos visto cómo funcionan estos nuevos manejadores que no dependen de esquemas, lo que nos da la posibilidad de hacer aplicaciones más dinámicas y que no dependan de cambios constantes para adaptarse.

Con esto finalizamos este tutorial, hemos dado nuestros primeros pasos en el mundo NoSQL que nos plantea CouchDB, lo más interesante es la interfaz web que se nos ofrece ya que a diferencia de servicios como MongoDB donde todo es vía consola, la amigabilidad de la interfaz nos ayuda a desarrollar más rápidamente tanto nuestras aplicaciones como nuestro conocimiento.

¿Te ayudó este Tutorial?


1 Comentarios

Gracias por el aporte Jacosta.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X