Objavljena aplikacija sada ostaje dostupna dok je ponovno objavljujete
Kad ponovno objavite aplikaciju na Mythexu, vaša živa stranica sada i dalje služi prethodnu verziju dok nova build nije spremna, a tada se prebacuje. Prije ove promjene ponovna objava gasila je stranicu za cijelo vrijeme builda. Posjetitelji su vidjeli „Ova objavljena aplikacija je offline ili poveznica nije pronađena”, otprilike minutu, a onda je ista stranica radila nakon ponovnog učitavanja. Također smo popravili dva druga načina na koja je živa aplikacija pogrešno izgledala kao da je offline.
1. Ponovna objava više ne gasi vašu stranicu
Iza kulisa svaka objavljena aplikacija ima zapis koji kaže koji build treba služiti. Ponovna objava je koristila taj isti zapis i označavala ga kao „building” za cijelo trajanje, a dio našeg edgea koji usmjerava posjetitelje služio je samo zapise označene kao „live”. Zato je svaka ponovna objava stranicu učinila nedostupnom dok build ne završi. Reproducirali smo to na maloj testnoj aplikaciji: oko 50 sekundi offline po ponovnoj objavi.
Sada, kad ponovna objava krene na aplikaciji koja je već živa, zapis pamti da prethodni build postoji i nastavlja pokazivati na njega. Edge služi prethodni build dok se novi gradi, a pokazivač se pomakne na novi build tek kad uspije. Ako novi build ne uspije, vaši posjetitelji to nikad ne primijete: stara verzija jednostavno ostaje dostupna.
Prva objava, ili ponovna objava aplikacije koja je bila pauzirana ili uklonjena iz objave, i dalje postaje živa tek kad build završi, jer nema prethodne verzije za prikaz.
2. Kratki zastoj više ne izgleda kao „not found”
Servis ispred vaše objavljene aplikacije pita naš API gdje se nalazi svaka stranica. Prije je svaki neuspješan odgovor (privremena serverska greška, prekinuta veza) tumačio kao „ova stranica ne postoji” i prikazivao offline stranicu. Ponovno učitavanje sekundu kasnije radilo je, što je bilo zbunjujuće.
Sada samo stvarni odgovor „not found” znači not found:
- Svaki drugi neuspjeh ponovi se jednom.
- Ako i dalje ne uspije, edge služi stranicu iz posljednjeg poznatog dobrog odgovora do sat vremena.
- Tek ako nikad nije dobio odgovor, prikazuje stranicu „privremeno nedostupno”, nikad „not found”.
Prozivne domene također paralelno pitaju naše produkcijske i staging sustave, pa spor staging server nikad ne može zadržati produkcijsku domenu.
3. Pauzirana aplikacija kaže da je pauzirana
Objavljene aplikacije rade na vašem saldu kredita. Ako ponestane, aplikacija se pauzira dok je ne nadopunite, a tada se sama vrati. Ali pauzirana aplikacija je nekad izgledala točno kao obrisana.
Sada posjetitelj pauzirane aplikacije vidi „Ova aplikacija je pauzirana”, uz način povratka za vlasnika, a odgovor se nikad ne sprema u predmemoriju, pa je aplikacija dostupna čim se nastavi. Ako aplikacija nije dostupna iz drugog razloga, posjetitelji vide „Ova aplikacija nije dostupna”, bez objašnjenja zašto.
Zašto je ovo važno
Objavljena aplikacija je nešto što ste podijelili: u biografiji, na posjetnici, s prvim kupcima. Treba se ponašati kao prava web stranica: ostati dostupna dok je poboljšavate, preživjeti kratki zastoj i biti iskrena kad je pauzirana.
Više o objavi u dokumentaciji: kako objaviti i ograničenja hostinga. A infrastrukturna strana iste ideje: kako smo postigli nula 502 grešaka za vlastite deployeje.