Vaša objavljena aplikacija med ponovno objavo ostane dosegljiva
Ko na Mythexu ponovno objavite aplikacijo, vaša živa stran zdaj še naprej streže prejšnjo različico, dokler nova gradnja ni pripravljena, nato pa preklopi. Prej je ponovna objava stran med celotno gradnjo vzela z omrežja – obiskovalci so videli sporočilo „This published app is offline or the link was not found“ in šele ob ponovnem nalaganju je stran znova delovala. Odpravili smo še dva druga načina, na katera bi se živa aplikacija lahko napačno zdela nedosegljiva.
1. Ponovna objava vaše strani ne ugasne več
Za kulisami ima vsaka objavljena aplikacija zapis, ki pove, katero gradnjo naj postreže. Ponovna objava je ta zapis ponovno uporabila in ga za čas gradnje označila kot „building“ – del našega omrežja, ki usmerja obiskovalce, pa je postregel samo zapise, označene kot „live“. Zato je vsaka ponovna objava stran naredila nedosegljivo, dokler gradnja ni bila končana. Na majhni testni aplikaciji smo to reproducirali: približno 50 sekund brez strani pri vsaki ponovni objavi.
Zdaj, ko se ponovna objava začne na aplikaciji, ki je že živa, zapis ohrani podatek, da prejšnja gradnja obstaja, in še naprej kaže nanjo. Robni del postreže prejšnjo gradnjo, medtem ko se nova gradi, kazalec pa se premakne na novo gradnjo šele, ko ta uspe. Če nova gradnja ne uspe, obiskovalci tega sploh ne opazijo – stara različica preprosto ostane na voljo.
Prva objava ali ponovna objava aplikacije, ki je bila ustavljena ali odstranjena, še vedno postane dostopna šele, ko se gradnja konča – prejšnje različice namreč ni, ki bi jo lahko prikazali.
2. Kratka motnja ni več videti kot „ni najdeno“
Storitev pred vašo objavljeno aplikacijo pri našem API-ju vpraša, kje je posamezna stran. Vsak neuspešen odgovor – kratka napaka strežnika, prekinjena povezava – je prej pomenil „ta stran ne obstaja“ in je prikazal stran brez povezave. Čez sekundo je osveževanje že delovalo, kar je bilo zmedeno.
Zdaj kot „ni najdeno“ šteje samo pravi odgovor „not found“:
- Vsaka druga napaka se še enkrat poskusi.
- Če tudi to ne uspe, robni del postreže stran iz zadnjega znanega dobrega odgovora, največ eno uro.
- Šele če nikoli ni dobil odgovora, prikaže stran „začasno ni na voljo“ – nikoli „ni najdeno“.
Lastne domene tudi sprašujejo naša produkcijska in testna okolja vzporedno, tako da počasen testni strežnik nikoli ne zadrži produkcijske domene.
3. Ustavljena aplikacija pove, da je ustavljena
Objavljene aplikacije tečejo na vašem stanju kreditov. Ko ti zmanjka, se aplikacija ustavi, dokler ne dopolnite stanja – ko to storite, se sama znova zažene. Ustavljena aplikacija pa je prej izgledala popolnoma enako kot izbrisana.
Zdaj obiskovalec ustavljene aplikacije vidi „This app is paused“ z možnostjo vrnitve za lastnika, odgovor pa nikoli ni predpomnjen, zato je aplikacija dostopna takoj, ko jo nadaljujete. Če je aplikacija nedosegljiva iz drugega razloga, obiskovalci vidijo „This app isn't available“ – brez razlage, zakaj.
Zakaj je to pomembno
Objavljena aplikacija je nekaj, kar ste delili: v povezavi v opisu, na vizitki, pri prvih strankah. Mora se obnašati kot prava spletna stran – ostati dosegljiva med izboljšavami, prenesti kratko motnjo in biti pošten, ko je ustavljena.
Več o objavi je v dokumentaciji: kako objaviti in omejitve gostovanja. Infrastrukturna stran iste ideje: kako smo dosegli nič napak 502 pri naših objavah.