Hemos tenido la oportunidad de conocer la tecnología que hay detrás de BetRocket, una startup española que ha desarrollado una plataforma de apuestas deportivas diferente a lo habitual. Carlos Beneyto, el cofundador y CTO de la startup, nos comenta a continuación lo novedoso de usar Velneo, normalmente aplicado a temas GIS, a las apuestas deportivas. También nos comentan la problemática de crear una plataforma y "luchar" para integrar con las grandes casas de apuestas con sistemas más vetustos. Y por supuesto, nos desvelan todo su stack tecnológico.
¿Podéis describir en qué consiste BetRocket para la gente que aún no conozca la plataforma?
Sencillo juntamos el poker con las apuestas deportivas. A diferencia de otras grandes casas de apuestas como Bwin o Betfair, BetRocket organiza torneos de apuestas deportivas entre usuarios. La experiencia gira en torno a los RocketCoins, una especie de moneda virtual que resulta necesaria para participar en dichos torneos y que los ganadores podrán utilizar para canjearla por productos y regalos.
¿Qué tecnologías principales usais en vuestro stack tecnológico?
En backend:
El core es PHP siguiendo el enfoque de Domain Driven Design.
Framework propio para todo el desarrollo y la comunicación entre front-back.
Base de datos en Velneo V7, un nuevo formato de base de datos.
En el frontend:
Framework propio de frontend MVC desarrollado en PHP y Javascript.
Bootstrap v3.2
Toda la gestión de Javascript (jQuery) actualmente esta "a pelo" vamos a optimizar en un futuro toda esta parte integrandolo con Node.js para las notificaciones y Angular.js para la gestion de vistas dinámicas.
En sistemas:
Tenemos todos nuestros servidores en Rackspace que nos ofrece una fiabilidad y escalabilidad muy grande, además trabajamos con diferentes módulos de cache para optimizar recursos como PageSpeed y próximamente Varnish caché.
La gestión de nuestros servidores nos la lleva Allenta Consulting, con una gran experiencia en gestión de sistemas y servidores, no solo es tener bonita la parte de delante (front) sino las tuberías tienen que funcionar correctamente.
¿Cómo os organizáis? ¿Cuál es vuestra metodología de trabajo? ¿Aplicáis metodologías ágiles como scrum o kanban? ¿Alguna herramienta recomendada?
Primero comentar que actualmente solo somos 3 en el equipo (2 de ellos desarrolladores) por lo que no gestionamos una gran "metodología" de trabajo porque no hace falta, no obstante estamos preparados para actualizar y escalar estos procesos (tanto de gestión como de desarrollo)
Para la gestión del proyecto utilizamos Stackfield, que nos ofrece un punto de vista "social" de gestión, es una startup también con algunas carencias pero estamos contentos, para comunicación HipChat y para un overview general Slack (muy recomendada).
Para temas técnicos usamos git flow (repositorio privado en GitHub) para mantener aislado el desarrollo de funcionalidades y las vamos integrando a medida que van se van terminando, lo tenemos bastante "ordenadito" con sus branch de desarrollo y de producción (master) y gestión de los bugs (issues) directamente en GitHub.
Normalmente en desarrollo vamos vamos por hitos a largo plazo (1 mes) e hitos cortos (días) trabajando prácticamente de forma asíncrona en ambos.
Podrías describir los pasos que habéis seguido para montar la infraestructura
Inicialmente tuvimos que desarrollar todo el proceso de gestión con Velneo v7 con la cual tenemos todos los datos en tiempo real y accedemos a ellos mediante una API propia que hemos desarrollado.
Mientras tanto teníamos que desarrollar / diseñar las diferentes vistas, la integración posterior es muy sencilla, con la potencia de Velneo todos los datos, operaciones y cálculos los realiza directamente en la bbdd, por lo que no necesitamos un framework "megapoderoso" dado que solo gestionamos JSON.
En vuestro sector de apuestas deportivas la escalabilidad y la seguridad es un factor importante ¿Cuál es vuestro proceso de escalabilidad, seguridad y testing?
Evidentemente tenemos que ofrecer una calidad y seguridad a nuestros usuarios, obviamente trabajamos con HTTPS (SSL) que creemos que debería ser casi obligatorio para todas las webs actuales.
Luego la comunicación entre nuestros servidores (bbdd --> web) se realiza a nivel local, por lo que no se permite el acceso online a nuestros servidores de producción, no tenemos panel admin "online" disponemos de una aplicación de escritorio (desarrollada en Velneo) para gestionar todo el producto.
Sobre la escalabilidad, funcionamos con rackspace cloud, por lo que redimensionar nuestras máquinas es muy sencillo, además en un futuro cercano integraremos Varnish Cache (utilizado por Facebook o Vimeo entre otros) a nuestro stack técnológico (servidor) con lo que nos ofrecerá una escalabilidad más que sobresaliente.
¿Qué problemas os habéis encontrado al desarrollar la plataforma?
Primero la integración de los XML de las cuotas, es realmente frustrante ver lo mal gestionado y desarrollado que tienen esto las casas de apuestas (nuestros proveedores son William Hill) y lo complejo y frustrante que es. Es una tecnología "antigua" (podría usar JSON en los tiempos que corren) y sus XML son extremandamente "pesados".
Y luego el software de resolución de eventos, existen soluciones muy complejas utilizadas por las casas de apuestas, pero tienen un coste muy elevado (+3.000€ / mes) aproximadamente. Por lo que nos tocó desarrollar nuestro propio software de resolución y gestión de eventos.
A parte de eso, nuestro equipo técnico no ha tenido muchos más problemas más, es una plataforma muy "compleja" a nivel técnica, pero gracias a Velneo nos hemos quitado bastantes problemas de encima.
Evidentemente trabajamos en nuestras features, y con el proyecto cada vez más grande la integración completa es más compleja (y más lenta) pero esperamos que no hayan grandes cambios.
¿Disponéis de una API o algún sistema de integración con otras plataformas de apuestas?
Disponemos de API, todo nuestro desarrollo y comunicación entre BBDD ---> Web se realiza mediante API, no obstante actualmente es API cerrada, aunque esperamos liberar pronto una pequeña versión para que todos los que deseen puedan crear sus propios torneos de apuestas e integrarlos en su plataforma. Esta en nuestro roadmap.
La integración que tenemos con las casas de apuestas son simplemente la de los Feeds XML de las cuotas (mercados) de apuestas, actualmente trabajamos con William Hill.
¿Cuáles son vuestros siguientes pasos?
Nuestro paso más inmediato a nivel técnico / desarrollo va a ser desarrollar la App móvil (iOS / Android) nos la piden constantemente en la plataforma, pero no queriamos sacar un producto mediocre que frustrara a nuestros usuarios, recordemos que solo somos 3 en el equipo inicial, y hemos esperado hasta ahora para poder dedicarle recursos (técnicos y económicos) para desarrollar unas Apps en condiciones y con todas las necesidades posibles.
Pero antes de eso llegarán los torneos privados donde los usuarios podrán crear sus propios torneos con sus amigos de forma privada (tu eliges quien juega ese torneo, cuanto nos jugamos y cuanto tiempo dura) con un completo configurador, esperamos que todos los grupos de amigos se animen a jugar con BetRocket mientras ven su partido / evento todos juntos, añadiendo un extra a la diversión de ver este evento / partido.
¡Gracias a GenbetaDev por el interés y por darnos la oportunidad de exponer como funciona nuestra joven startup por debajo!
En Genbeta | BetRocket, la startup española que quiere "pokerizar las apuestas deportivas"
Sitio web | BetRocket
Ver todos los comentarios en https://www.genbeta.com
VER 0 Comentario