¿Cómo hizo el mayor juego para móviles de todos los tiempos para ampliar su Club de Entrenadores Pokémon a millones de usuarios?
Couchbase y NoSQL
En cuestión de días, en lo que respecta a usuarios activos diarios, Pokémon GO superó a Twitter. Según Apple 1La primera semana de su lanzamiento, en Nueva Zelanda, Australia y Estados Unidos, batió el récord de descargas. Hoy se ha descargado más de 500 millones de veces.
¿Por qué NoSQL?
Uno de los puntos de entrada, el sistema del Club de Entrenadores Pokémon, aumenta un servicio heredado de gestión de perfiles, permitiendo a los usuarios crear una cuenta e iniciar sesión, no solo para Pokémon GO, sino también para el Juego de Cartas Coleccionables Pokémon Online, ¡Juega! Pokémon, etc.
El servicio heredado de gestión de perfiles, construido sobre una base de datos relacional, era capaz de dar soporte a los usuarios existentes, pero no podía escalar para dar soporte a los millones de nuevos usuarios que se esperaban tras el lanzamiento de Pokémon GO. Pokémon Company International necesitaba una base de datos escalable.
Eligieron Couchbase Server Edición para empresas.
Pokémon GO se lanzó en unos pocos países a la vez, desde Nueva Zelanda, Australia y Estados Unidos hasta Japón, Alemania, Hong Kong y más allá.
Esta estrategia permitió a The Pokémon Company International gestionar el crecimiento de su infraestructura -de forma incremental, bajo demanda y en función de las necesidades-, garantizando que, aunque algunas personas tuvieran que esperar para crear una nueva cuenta, todo el mundo tuviera la oportunidad de jugar.
¿Por qué Couchbase Server?
SQL
Couchbase Server 4.0 introdujo N1QL, un lenguaje de consulta basado en SQL para documentos JSON, que facilita la transición desde las bases de datos relacionales. El sistema del Club de Entrenadores Pokémon se desarrolló utilizando N1QL, en menos de tres meses, para minimizar los cambios en la forma de modelar y consultar los datos en el servicio heredado de gestión de perfiles, construido sobre una base de datos relacional.
Al utilizar N1QL, los desarrolladores pueden pasar de una base de datos relacional mucho más rápido y, cuando llegue el momento, optimizar el modelado de los datos y el acceso a ellos, utilizando N1QL para las consultas y las API de valores clave/subdocumentos para las lecturas y escrituras.
Escalabilidad
Couchbase Server 4.0 introdujo el escalado multidimensional (MDS), que permite a los administradores aislar y escalar servicios discretos (datos, consultas e índices). El sistema del Club de Entrenadores Pokémon, desarrollado con N1QL, produce una carga de trabajo de consulta intensiva. En los días posteriores al lanzamiento de Pokémon GO, los administradores pudieron escalar los servicios de consulta e índice (más de una vez) en lugar de escalar toda la base de datos, eliminando la necesidad de reequilibrar o "mover los datos", un proceso con una sobrecarga significativa.
Rendimiento
Couchbase Server 4.5 introdujo índices optimizados para memoria utilizando una lista de omisión en memoria e instantáneas persistentes, eliminando la IO de disco de la ruta crítica y reduciendo la latencia tanto de las actualizaciones de índice como de los escaneos de índice. El sistema del Club de Entrenadores Pokémon no sólo hace un uso intensivo de las consultas (muchas exploraciones de índices), sino también de las escrituras (muchas actualizaciones de índices), ya que todo el mundo, desde Estados Unidos hasta Japón, crea cuentas.
Al aprovechar los índices optimizados para memoria y la opción de coherencia "read-your-own-writes" (RYOW), los índices se actualizaban más rápidamente y las consultas arrojaban resultados coherentes.
Apoyo y servicio profesional
Couchbase se comprometió con el éxito de Pokémon GO, con ingenieros de soporte disponibles 24×7, trabajando durante el día, hasta altas horas de la noche y durante el fin de semana para garantizar el éxito del lanzamiento. Cuando se detectaron problemas de rendimiento, los equipos de soporte e ingeniería los resolvieron sin demora; en una ocasión, entregaron un parche de mantenimiento en cuestión de días. Además, los servicios profesionales y los ingenieros de soluciones se unieron al equipo de asistencia para ayudar con todo, desde la arquitectura y el código de la aplicación hasta la implantación y el escalado. Fue un trabajo de equipo.