C’è un settore che in questi anni ha visto una forte evoluzione in termini di sviluppo. Un settore che rappresenta un’opportunità per migliorare la qualità ambientale dell’aria che respiriamo e più in generale dell’ambiente in cui viviamo. Si tratta dell’ampio mercato rappresentato dai sistemi di noleggio e ricarica di veicoli elettrici siano esse biciclette, auto o motorini.
La repentina evoluzione del mercato e la sempre maggiore richiesta di stazioni di ricarica e bike-sharing ha costretto l’azienda Logiss srl a rivedere, migliorare e stabilizzare il software che si occupa della gestione, della configurazione e del coordinamento di stazioni di ricarica di bike sharing.
Il software fino ad allora utilizzato, scritto in Ruby on Rails è stato indubbiamente un’ottima soluzione che ha permesso di scalare il sistema in base alle esigenze emerse nel corso del tempo. Ricordiamo che Ruby e Ruby on Rails rappresentano spesso la miglior risposta in ambito di sviluppo applicazioni web.
Il progetto, già in produzione, aveva quindi bisogno di un intervento importante per supportare l’evoluzione dell’offerta. In particolare, era necessario:
- Aggiornare il framework utilizzato;
- Migrazione dati;
- Sviluppo nuovo server di raccolta dati GPS;
- Pubblicazione su infrastruttura scalabile;
- Sviluppo applicazione mobile;
- Sviluppo API per clienti;
Come da obiettivi prefissati, il primo passo è stato quello di aggiornare il framework da Ruby on Rails 3.2 a Ruby on Rails 5.2; dopo l’aggiornamento delle librerie, è stata fatta una rivisitazione completa dell’applicazione per verificare che ogni funzione applicativa funzionasse correttamente anche con la nuova versione. In taluni casi è stato necessario fare refactoring del codice per adeguare le funzionalità al nuovo framework.
Il secondo passo ha riguardato lo sviluppo delle procedure di migrazione dati dalla vecchia istanza in produzione alla nuova istanza di produzione. E’ stato necessario sviluppare delle procedure di migrazione in quanto le due istanze dovevano coesistere per un certo periodo di tempo; la migrazione infatti comportava anche un cambiamento dell’url dell’applicativo che doveva essere cambiato anche nell’hardware delle stazioni posizionate sul territorio. Con lo sviluppo di procedure di migrazione “per cliente”, è stato possibile migrare i clienti e le stazioni ad esso associato un pò per volta, diminuendo il downtime di servizio al minimo.
Il terzo passo, migrati tutti i clienti nella nuova infrastruttura, abbiamo provveduto a sviluppare un nuovo server di raccolta dati GPS. Questo adeguamento si è reso necessario in quanto il committente ha scelto di cambiare il device di rilevazione GPS, cambiando fornitore e cambiando di conseguenza protocollo di comunicazione. Attualmente il sistema impiega 2 server di raccolta dati GPS con i 2 device attualmente installati nella flotta di biciclette in bike sharing.
Il quarto passo è stato un aggiornamento di tipo architetturale, siamo infatti passati da un’architettura prettamente monolitica ad un’architettura a microservizi. Tale aggiornamento è stato effettuato per due motivi principali: scalabilità all’aumentare del volume di utilizzo, integrazione altri servizi. Nel documento di approfondimento descriviamo quali strumenti sono stati utilizzati e come li abbiamo impiegati.
Lo sviluppo dell’applicazione mobile è stato oggetto del quinto passo di aggiornamento della soluzione. L’applicazione mobile è stata sviluppata essenzialmente per permettere una completa autonomia dell’utilizzo delle stazioni da parte degli utenti finali. Con l’applicazione mobile è infatti possibile da parte dell’utente:
- registrarsi al sistema
- effettuare una ricarica del proprio portafoglio con pagamento on line
- utilizzare i servizi di bike sharing della stazione
tutto questo, come dicevamo, in totale autonomia. Prima dell’app mobile infatti, per poter utilizzare i servizi, era necessario essere in possesso di una tessera rilasciata dal cliente attraverso canali “fisici” (es. ufficio turismo, uffici comunali, esercenti adibiti, ecc…). Nel documento di approfondimento vengono descritti quali strumenti e servizi sono stati utilizzati per la creazione della app.
Ultimo passo in ordine temporale è stato lo sviluppo di API richiamabili esternamente per permettere un interfacciamento a servizi di terze parti. Le API permettono infatti di interfacciare l’applicazione di gestione a servizi quali applicazioni mobile di terze parti, applicazioni web, sistemi per il monitoraggio, creazione utenti esterni, portafoglio pagamenti esterni ecc…
Dopo circa due anni di lavoro, l’architettura applicativa è cresciuta e sono cresciuti gli utenti ed i clienti che utilizzano il servizio. Siamo passati da un’applicazione monolitica ad un insieme di servizi scalabili, integrati ed indipendenti, orchestrati da un cluster di container. Ora il sistema si è aperto ad integrazioni di terze parti con la pubblicazione delle API relative. Come ultimo aspetto, le applicazioni mobile, personalizzate per ogni cliente e pubblicate su istanza diverse, permettono una gestione autonoma dell’account utente, dell’abbonamento e del portafoglio senza l’intervento di terze strutture.
Il documento di approfondimento scaricabile contiene i dettagli della soluzione tecnologica adottata, gli strumenti ed i linguaggi di sviluppo, oltre che le metriche di utilizzo.
Scaricalo qui: https://bit.ly/39zObdf