Sinu avaldatud rakendus jääb nüüd uuesti avaldamise ajal üles
Kui avaldad Mythexis rakenduse uuesti, teenindab sinu elav sait nüüd eelmist versiooni, kuni uus ehitus on valmis, ja siis lülitub üle. Varem võttis uuesti avaldamine sait kogu ehituse ajaks maha — külastajad nägid „This published app is offline or the link was not found“ umbes minuti ja siis sama lehte, mis taas töötas pärast värskendamist. Parandasime ka kaks muud viisi, kuidas elav rakendus võis valesti tunduda võrgust väljas olevana.
1. Uuesti avaldamine ei võta su saiti maha
Taga töötab iga avaldatud rakenduse jaoks kirje, mis ütleb, millist ehitust serveerida. Uuesti avaldamine kasutas seda kirjet uuesti ja märkis selle „ehitamisel“ kogu ehituse kestuseks — ning meie serveri servas, mis suunab külastajaid, serveeriti ainult kirjeid, mis olid märgitud „elavaks“. Seega muutis iga uuesti avaldamine saidi kadunuks, kuni ehitus lõppes. Reprodutseerisime selle väikesel katserakendusel: umbes 50 sekundit võrgust väljas iga uuesti avaldamise kohta.
Nüüd, kui uuesti avaldamine algab juba elaval rakendusel, mäletab kirje, et eelmine ehitus on olemas, ja jätkab selle osutamist. Serv serveerib seda eelmist ehitust, kuni uus ehitatakse, ja kirje osuti liigub uuele ehitusele ainult siis, kui see õnnestub. Kui uus ehitus ebaõnnestub, ei märka sinu külastajad midagi — vana versioon jääb lihtsalt üles.
Esmane avaldamine või rakenduse uuesti avaldamine, mis oli peatatud või avaldamata, läheb elavaks alles siis, kui ehitus lõpeb — sest eelmist versiooni ei ole, mida näidata.
2. Väike häire ei tundu enam „ei leitud“
Teenus su avaldatud rakenduse ees küsib meie API-lt, kus iga sait asub. Varem käsitles see iga ebaõnnestunud vastust — hetkelist serveriviga, katkenud ühendust — kui „seda saiti ei ole“ ja näitas võrgust väljas olemise lehte. Sekund hiljem toimis laadimine, mis oli segadusttekitav.
Nüüd loeb ainult päris „ei leitud“ vastus:
- Iga muu tõrge proovitakse uuesti üks kord.
- Kui see ikka ebaõnnestub, serveerib serv saidi viimase teadaoleva hea vastuse põhjal kuni tunni jooksul.
- Ainult siis, kui sellel ei ole kunagi olnud vastust, näitab see lehte „ajutiselt kättesaamatu“ — mitte kunagi „ei leitud“.
Kohandatud domeenid küsivad ka meie tootmis- ja staging-süsteemidelt paralleelselt, nii et aeglane staging-server ei saa kunagi tootmisdomeeni kinni hoida.
3. Peatatud rakendus ütleb, et see on peatatud
Avaldatud rakendused töötavad sinu krediidisaldo järgi. Kui see saab otsa, rakendus peatatakse, kuni lisad krediite — ja siis tuleb see tagasi iseseisvalt. Aga peatatud rakendus nägi varem välja täpselt nagu kustutatud.
Nüüd näeb külastaja peatatud rakendusele lehte „This app is paused“, koos viisiga tagasi omaniku jaoks, ja vastust ei vahemällu salvestata, nii et rakendus on uuesti kättesaadav niipea, kui see jätkatakse. Kui rakendus on mõnel muul põhjusel kättesaamatu, näevad külastajad „This app isn't available“ — ilma põhjust mainimata.
Miks see oluline on
Avaldatud rakendus on midagi, mida oled jaganud: biograafia lingis, visiitkaardil, esimeste klientidega. See peaks käituma nagu päris veebisait — jääma üles, kui seda parandad, pidama vastu väikesele häirele ja olema aus, kui see on peatatud.
Rohkem avaldamisest dokumentatsioonis: kuidas avaldada ja hostingu piirangud. Ja sama idee infrastruktuuripoole: kuidas saavutasime oma deploy'd nullini 502 vigadeni.