Aparentemente, según comentan en el artículo, se están leyendo cada vez más opiniones negativas de personas que se han dado cuenta que no es oro todo lo que reluce dentro del mundo de NoSQL. Algo que por otra parte, tampoco nos debería extrañar a nadie ya que hay muy pocas tecnologías que sean sólo ventajas.
En el artículo de High Scalability aportan un par referencias, como el caso de Quora, que usa MySQL en lugar de NoSQL y dan sus razones, o Diaspora, que abandonó MongoDB por MySQL.
Mi opinión personal aquí es que nuevas tecnologías traen nuevos usos y conllevan nuevos riesgos. Afirmar que MySQL no escala por el mero hecho de que el sitio web con mayor tráfico del mundo haya tenido problemas es extrapolar bastante. La realidad para la mayoría de los mortales es que bases de datos como MySQL nos resultan más que suficientes. Y la realidad también del mercado laboral es que es bastante más difícil encontrar expertos en NoSQL que buenos DBAs.
Otro aspecto muy importante que se comenta en los enlaces anteriores es el del riesgo. Como bien comenta el fundador de Quora:
"The primary online data store for an application is the worst place to take a risk with new technology."
Y que en castellano lo traduciríamos por un "los experimentos con gaseosa". Cada uno de los sistemas NoSQL tiene sus puntos fuertes y débiles, y diferentes grados de madurez. En Diaspora decían que el modelo de almacenamiento de CouchDB por ejemplo no se adaptaba bien a datos "sociales", mientras que otro comentario en el hilo de cuánto escala CouchDB comenta los casos de uso de la BBC almacenando tráfico web, o Canonical utilizandolo como backend para su UbuntuOne.
En definitiva, sentido común a la hora de elegir una tecnología para guardar nuestros datos. ¿Hay casos de éxito? ¿Tenemos el talento para poder replicar esos casos de éxito? ¿Podemos permitirnos el riesgo de experimentar especialmente cuando no hay formas sencillas de obtener formacíon en NoSQL? ¿Tenemos proyectos con los que ir probando sin demasiado riesgo estas tecnologías? Serían algunas preguntas que yo me haría antes de elegir entre una base de datos relacional o NoSQL.
Mientras tanto, en el artículo de High Scalability nos recomiendan algunos consejos del jefe de IT De Avanza Bank:
- Minimizar el cambio. Apuntar a los puntos calientes en cuanto a escalabilidad.
- No modificar la base de datos en la medida de lo posible.
- Colocar un grid con datos en memoria como proxy de la base de datos.
- Utilizar write-behind para ahorrarnos escrituras a disco.
- Utilizar un framework o API Java estándar para aprovechar el talento existente.
- Tener dos sitios paralelos (viejo/nuevo) para permitir transiciones graduales.
- Utilizar la RAM para los datos más frescos y tener más rendimiento y disco para almacenamiento a largo plazo.
- Utilizar bases de datos y servidores sencillos y baratos. Un despliegue de una instancia de Oracle RAC son 500.000 dólares. Varios servidores Dell + MySQL, sale bastante más barato.
Y si os interesa todo esto, recordad que entre varios hemos abierto este fantástico grupo sobre escalabilidad en español, que además está lleno de cracks. Así que no dudéis en apuntaros!
No hay comentarios:
Publicar un comentario