iPatente: una App totalmente scalabile

iPatente è la popolare App sviluppata dal Dipartimento Trasporti del Ministero delle Infrastrutture e dei Trasporti, che permette di accedere ai servizi del “Portale dell’Automobilista” e di consultare i dati relativi alle Patenti ed ai Veicoli.

iPatente by Omnia Comunicazioni - Omniacom Group

Il software iPatente è basato sulle più moderne tecnologie cloud e permette la gestione in toto dell’autoscuola, l’anagrafica allievi, il processo di formazione dell’allievo certificandone la formazione con quiz che possono essere svolti da moderni dispositivi tablet.

iPatente – Overview

 

Scaricando l’applicazione sia da Apple Store che da Google Play, senza alcuna registrazione, è possibile usufruire gratuitamente e immediatamente di tutta una serie di utili funzionalità legate ai veicoli di proprietà, come per esempio:

  • Verificarne la copertura assicurativa RCA
  • Verificare la classe ambientale
  • Cercare le officine autorizzate alle revisioni più vicine all’utente
  • Localizzare gli Uffici della Motorizzazione Civile su tutto il territorio nazionale

 

Attraverso la registrazione sul “Portale dell’automobilista” è poi inoltre possibile accedere ai propri dati personali relativi alle patente e ai veicoli intestati, quali ad esempio:

  • Saldo Punti Patente, che permette di consultare il saldo aggiornato, la scadenza di validità delle patenti e le variazioni di punteggio con i relativi dettagli
  • Dati di sintesi e dettagli dei veicoli intestati all’utente, compresa la data di scadenza della revisione
  • Stato delle pratiche, per verificare lo stato di avanzamento del processo di lavorazione delle pratiche in corso presso la Motorizzazione, come il rinnovo della patente, la variazione di residenza o la richiesta di duplicato per smarrimento o furto della patente o della Carta di Circolazione
Risparmio di tempo, riduzione dei costi, incremento della redditività
Interazione continua tra autoscuola e clienti
Un nuovo modo di gestire le lezioni teoriche
Lezioni più incisive ed efficaci
Interazione e partecipazione attiva alle lezioni

iPatente – Il progetto

 

Il nostro team sviluppo ha lavorato a stretto contatto con il team di iPatente, con l’obiettivo di vincere una delle sfide più stimolanti per un imprenditore digitale, ovvero rendere l’App mobile totalmente scalabile e in grado di supportare le future fasi di sviluppo del progetto senza limiti legati a risorse, server, RAM, CPU, o altri aspetti legati al mondo fisico che tendono a rallentare la crescita di applicazioni innovative.

iPatente nasceva come applicazione web progettata e pensata per funzionare su una istanza Apache; la nostra soluzione per rispondere alle istanze del committente e rendere l’App totalmente scalabile consisteva prima di tutto nel portarla da Apache a Cloud Native attraverso Google Cloud Platform. Ed ecco come abbiamo fatto.

STEP 1: Startup, ambiente di sviluppo e soft migration

Il primo step è stato creare un ambiente di sviluppo basato su container. Il team ha potuto da subito lavorare in locale in un container che era molto simile al target di deployment ed è stato in grado rapidamente di effettuare il deployment della propria applicazione in un primo ambiente cloud: Appengine Flexible. Questo ha permesso da subito all’applicazione di scalare in sicurezza abilitandone immediatamente la crescita.

STEP 2. Code revision e trasformazione

L’obiettivo di questa fase era di trasformare il progetto, pensato per essere deployato in ambiente server standard, in un’applicazione realmente cloud native. Questo ha comportato non solo una trasformazione del codice, ma anche dei processi di sviluppo e deployment. Collaborando quotidianamente con il team di sviluppo abbiamo riprogettato diverse parti core della piattaforma per rendere il software più astratto e riuscire a beneficiare di tecnologie serverless e scalabili all’infinito. Abbiamo migrato quindi i Webservice su infrastruttura Appengine Standard, cosa che ha permesso al team di sviluppo di prendere familiarità con la nuova tecnologia, oltre che alleggerire l’applicazione. Oltre ad Appengine abbiamo riprogettato le modalità di hosting dei files statici del progetto, beneficiando dell’immensa versatilità di Google Cloud Storage e di alcune delle sue caratteristiche peculiari, come avere diverse classi di servizio, Signed Url e CDN integration. In questa fase abbiamo anche integrato in piattaforma strumenti come le Cloud Task ed i Cron.

STEP 3. Cloud native

In quest’ultima fase abbiamo migrato tutto ciò che avesse senso in storage alternativi a SQL, come Google Cloud Datastore, ed integrato i client mobili nella piattaforma firebase. Arrivati a questo punto tutta l’applicazione è stata deployata in Google Appengine Standard Environment ottimizzandone performance, costi e soprattutto scalabilità.

    Nome
    Cognome
    Email
    Telefono
    Messaggio