SmartCities

La plataforma urbana, cambio a cambio

Apoyamos el desarrollo del núcleo de Mejora tu Ciudad: las pruebas con las que entra cada cambio y el trabajo en segundo plano dentro de la propia plataforma.

Partnership Tecnológico

El punto de partida

Una plataforma de servicios urbanos crece por acumulación: cada área municipal pide su módulo, cada normativa nueva añade un requisito y el sistema termina sosteniendo operaciones que nadie diseñó juntas. El reto no era construir una aplicación, era hacerse cargo de un producto vivo que no puede pararse.

Qué hicimos

La plataforma es Mejora tu Ciudad, de Radmas Technologies, S.L., y trabajamos en su desarrollo hombro a hombro con su equipo, aquí sobre el núcleo del backend. La hoja de ruta se decide conjuntamente cada ciclo: qué módulo entra, qué deuda se salda y qué se pospone, con el equipo de Radmas en España y el nuestro en Colombia, lo que obligó a que las decisiones quedaran escritas y no en la cabeza de quien estaba conectado a esa hora.

Empezamos por las pruebas. Levantamos la base de pruebas automatizadas con la que hoy entra cada cambio, y desde entonces la mantenemos con el producto: cada corrección entra con la suya, que es lo que impide que un fallo ya resuelto vuelva por la puerta de atrás.

El dato llega entero. Reforzamos la capa de persistencia —donde la plataforma guarda cada aviso—, las descargas con las que los ayuntamientos explotan sus datos, las búsquedas y los procesos que tratan muchos avisos de una vez, y completamos esas descargas con los datos que los ayuntamientos pedían.

El trabajo en segundo plano corre dentro de la plataforma. Sustituimos el servicio de colas alojado por un tercero por componentes que corren sobre la infraestructura que Radmas ya opera, y definimos un contrato explícito para cada mensaje. Con ello retiramos dependencias antiguas y ese trabajo pasó a apoyarse en lo que la plataforma ya traía.

Un ayuntamiento nuevo entra por configuración. Ajustamos la configuración y el motor de búsqueda para que un ayuntamiento que llega se sirva de lo que ya existe, y reforzamos los webhooks con los que la plataforma habla con los sistemas del propio ayuntamiento. Un alta deja de pedir cambios en la estructura de la aplicación.

Y el despliegue es portable entre proveedores de nube, que fue una decisión deliberada y no una consecuencia.

El resultado

La relación sigue abierta y el trabajo se concentra donde está el negocio: el flujo por el que un aviso recorre sus estados hasta quedar resuelto. Cada cambio entra con su prueba, el trabajo en segundo plano es de la plataforma y el alta de un ayuntamiento nuevo se resuelve configurando.

PHP / SymfonyRabbitMQElasticsearchMongoDB