TuneWiki almacena ahora más de 1.000.000.000 de documentos para su servicio en Couchbase, demostrando una vez más la escalabilidad y el rendimiento que se obtienen con Couchbase. Ahora son mil millones menos de cosas de las que los usuarios tienen que preocuparse. Lee este blog para saber más...
El otro día tuve la oportunidad de ponerme al día con Chad Kouse, CTO y Co-Fundador de TuneWiki, una aplicación impresionante construida usando Couchbase. TuneWiki está revolucionando la experiencia de la música social dando a los amantes de la música la oportunidad de compartir su música favorita, letras y fotos con amigos. Es la aplicación #1 de Spotify con la mayor base de datos del mundo de letras de canciones desplazables, proporcionando una experiencia de escucha al estilo karaoke sin igual.
Con más de mil millones de objetos de datos y creciendo, TuneWiki utiliza Couchbase Server para servir letras a millones de usuarios de todo el mundo. Quería compartir en este blog mi conversación con Chad, ya que explica por qué el equipo de TuneWiki eligió Couchbase Server, lo que están haciendo con Couchbase, y por qué confía en las capacidades de Couchbase Server para soportar la creciente base de usuarios de TuneWiki.
Chad, ¿puedes compartir más detalles sobre cómo tu aplicación utiliza Couchbase?
En TuneWiki usamos Couchbase para almacenar datos en caché. Nos topamos con Couchbase cuando buscábamos un sustituto para memcached. Si un nodo de memcached fallaba de repente o si añadíamos un nuevo nodo de memcached al clúster, toda la aplicación se ralentizaba. MySQL simplemente no era capaz de mantener el ritmo. También se necesitaba un esfuerzo extra cuando queríamos expirar elementos de la caché y mantener MySQL sincronizado con el nivel de caché.
Con Couchbase, no necesitábamos tener dos almacenes de datos, sino uno solo. Couchbase era fácil de configurar, usar y gestionar. Como la API de Couchbase era compatible con memcached, podíamos dejar el código de memcached tal cual y sólo teníamos que reemplazar todas las llamadas a MySQL por Couchbase. Couchbase nos dio el rendimiento predecible que necesitábamos para nuestra aplicación. Además, nunca tuvimos que preocuparnos por el crecimiento del clúster. Añadir más nodos siempre nos daba el aumento de rendimiento que necesitábamos sin disminuir los beneficios. Usar Couchbase Server simplificó nuestra arquitectura de backend en gran medida.
¿Qué almacena exactamente tu aplicación en Couchbase?
Básicamente almacenamos todo lo que nuestra aplicación necesita en Couchbase. Esto incluye letras, líneas de tiempo, claves API para validar rápidamente las acciones del usuario y tokens OAuth. Tunewiki tiene elementos sociales como compartir fotos y letras con amigos. Si utilizas esta función, los elementos que compartes se almacenan en Couchbase.
Hábleme de la carga de trabajo de su aplicación.
Actualmente tenemos más de 1 billón de objetos almacenados en Couchbase con el sistema funcionando a más de 10K ops / seg. Hemos dimensionado nuestro clúster para mantener alrededor de 80% de nuestros datos totales en RAM. Por ejemplo, usamos contadores para monitorizar el uso de la API y acelerar a los clientes basándonos en estos contadores. Con una base de datos relacional, como puedes imaginar, esto no es algo que puedas hacer fácilmente. Con Couchbase, este contador se comparte a través de todo nuestro clúster de servidores API de forma automática sin necesidad de escribir ningún código de aplicación adicional. Usamos la API de incremento atómico para incrementar el contador en memoria para rastrear los hits - es ligero porque está todo en memoria y nunca tienes que ir al disco. No tenemos ninguna ralentización y nunca hay un cuello de botella.
¿Qué consejo darías a otros usuarios de Couchbase?
Couchbase es una gran opción incluso si estás empezando con un proyecto pequeño. Puedes experimentar con sólo 1 o 2 nodos durante el desarrollo y cuando estés listo para entrar en producción, puedes aprovisionar fácilmente más nodos en tu clúster para escalar. También obtuvimos un excelente soporte de Couchbase y recomiendo a los usuarios que visiten el sitio web de Grupos Google de Couchbase y otro material que está en el sitio de Couchbase.
¿Cuáles son los próximos pasos? ¿Hay nuevas características o nuevas aplicaciones que estés planeando construir con Couchbase Server 2.0?
Views en Couchbase Server 2.0 es una característica genial. Planeamos usar vistas en Couchbase Server para la gestión general de nuestros datos y para mejorar la funcionalidad de la aplicación. Con un almacén clave-valor, no podías soportar predicados en tus datos - tenías que conocer las claves que necesitabas. Esto implicaba escanear los datos para averiguar qué claves eran relevantes y cuáles no. Con mil millones de objetos en Couchbase, puedes imaginar lo tedioso que sería.
Por ejemplo, si hay un montón de claves OAuth que ya no son necesarias, sería bueno utilizar vistas para obtener una lista de ellas para que puedan ser limpiadas. Bueno, sin vistas podrías potencialmente establecer un tiempo de expiración en ellas, pero si te olvidas de poner un valor para el tiempo de expiración, estas claves vivirían para siempre.
¿Dónde puede la gente obtener más información sobre cómo ha utilizado Couchbase?
Los usuarios de Couchbase pueden consultar nuestra blog para saber más.