La tua app pubblicata ora resta online mentre la ripubblichi
Quando ripubblichi un'app su Mythex, il tuo sito online continua a servire la versione precedente finché la nuova build non è pronta, poi passa alla nuova. Prima di questa modifica, una ripubblicazione metteva il sito offline per tutta la durata della build — i visitatori vedevano "This published app is offline or the link was not found" per un minuto circa, e poi la stessa pagina tornava a funzionare dopo un ricaricamento. Abbiamo anche sistemato altri due modi in cui un'app online poteva sembrare offline per errore.
1. Ripubblicare non abbatte più il sito
Dietro le quinte, ogni app pubblicata ha un record che indica quale build servire. Una ripubblicazione riusava quel record e lo segnava come "building" per tutta la durata — e la parte della nostra rete che instrada i visitatori serviva solo i record segnati come "live". Quindi ogni ripubblicazione faceva sparire il sito finché la build non finiva. L'abbiamo riprodotto su una piccola app di prova: circa 50 secondi offline per ogni ripubblicazione.
Ora, quando una ripubblicazione parte su un'app già online, il record ricorda che esiste una build precedente e continua a puntarci. La rete serve quella build precedente mentre la nuova si costruisce, e il puntatore si sposta sulla nuova build solo quando questa riesce. Se la nuova build fallisce, i tuoi visitatori non se ne accorgono — la vecchia versione resta semplicemente online.
Una prima pubblicazione, o la ripubblicazione di un'app che era in pausa o annullata, va online solo quando la build finisce — non c'è una versione precedente da mostrare.
2. Un piccolo intoppo non sembra più "non trovato"
Il servizio davanti alla tua app pubblicata chiede alla nostra API dove vive ogni sito. Prima trattava qualsiasi risposta non riuscita — un errore momentaneo del server, una connessione caduta — come "questo sito non esiste", e mostrava la pagina offline. Un ricaricamento un secondo dopo funzionava, il che creava confusione.
Ora solo una vera risposta "non trovato" conta come non trovato:
- Qualsiasi altro fallimento viene ritentato una volta.
- Se fallisce ancora, la rete serve il sito dall'ultima risposta valida nota per un massimo di un'ora.
- Solo se non ha mai avuto una risposta mostra una pagina "temporaneamente non disponibile" — mai "non trovato".
I domini personalizzati interrogano anche i nostri sistemi di produzione e di staging in parallelo, così un server di staging lento non può mai trattenere un dominio di produzione.
3. Un'app in pausa dice di essere in pausa
Le app pubblicate usano il tuo saldo di crediti. Se si esaurisce, l'app viene messa in pausa finché non ricarichi — e torna da sola appena lo fai. Ma un'app in pausa prima sembrava esattamente una app eliminata.
Ora un visitatore di un'app in pausa vede "This app is paused", con un modo per il proprietario di riattivarla, e la risposta non viene mai messa in cache, quindi l'app è raggiungibile nell'istante in cui viene ripresa. Se un'app non è disponibile per un altro motivo, i visitatori vedono "This app isn't available" — senza che venga spiegato perché.
Perché conta
Un'app pubblicata è qualcosa che hai condiviso: in un link della bio, su un biglietto da visita, con i tuoi primi clienti. Dovrebbe comportarsi come un vero sito web — restare online mentre la migliori, reggere a un intoppo, ed essere onesta quando è in pausa.
Altre informazioni sulla pubblicazione nella documentazione: come pubblicare e limiti di hosting. E il lato infrastrutturale della stessa idea: come siamo arrivati a zero 502 nei nostri deploy.