Domanda simile: Come gestisci versioning in un progetto multi-lato?
Poiché la domanda di cui sopra è stata posta quasi 4 anni fa, mi chiedevo se fossero emerse nuove idee.
-
Abbiamo una situazione in cui sviluppiamo una piattaforma che avrà più istanze. Ad esempio:
In generale, tutte le istanze dovrebbero avere un ciclo di vita della versione strettamente sincronizzato, ma a volte potremmo volere avere un'istanza con la versione ad accesso anticipato destinata ai test.
Oltre a quanto sopra, avremo app per Android / iOS che si collegheranno a qualche istanza (l'utente deve selezionare quale). È importante notare che tutte le istanze operano su un database diverso, nessuna replica dovrebbe esistere tra ognuna di queste.
Il problema:
Una volta apportate le modifiche sul lato server, pubblicheremo la nuova versione della versione server e client.
Per i server , dovrebbe essere semplice poiché controlliamo quale versione è installata su quale istanza.
Per i clienti , non appena rilasciamo una nuova versione dell'app client, gli utenti possono estrarla dal rispettivo store e installarla, ma cosa succede quando usano effettivamente l'istanza che sta ancora eseguendo il vecchia versione del server? O quando il client non è in grado di aggiornare a causa della versione obsoleta di Android / iOS?
Qualche idea su come gestirlo?
Un pensiero che ho avuto è stato quello di fornire un endpoint /version.json
in modo che l'app client possa ottenere la versione del server e scegliere come operare. Ma questo, imho, potrebbe portare rapidamente a un massiccio gonfiore / duplicazione del codice. Cosa ne pensi?