Aplikacioni yt i publikuar tani qëndron gjallë ndërsa e ripublikon
Kur ripublikon një aplikacion në Mythex, faqja jote live vazhdon të shërbejë versionin e mëparshëm derisa build-i i ri të jetë gati, dhe pastaj kalon te ai. Para këtij ndryshimi, një ripublikim e merrte faqen offline për gjithë build-in: vizitorët shihnin “This published app is offline or the link was not found” për rreth një minutë, dhe pastaj e njëjta faqe funksiononte përsëri pas rifreskimit. Gjithashtu rregulluam dy mënyra të tjera që një aplikacion live mund të dukej gabimisht offline.
1. Ripublikimi nuk e merr më faqen tënde nga linja
Në sfond, çdo aplikacion i publikuar ka një regjistrim që thotë cilin build të shërbejë. Një ripublikim e ripërdorte atë regjistrim dhe e shënonte si “duke u ndërtuar” për gjithë kohëzgjatjen, dhe pjesa e rrugëtimit tonë që dërgon vizitorët shërbente vetëm regjistrimet e shënuara “live”. Kështu çdo ripublikim e bënte faqen të zhdukej derisa build-i të mbaronte. E riprodhuam në një aplikacion test të vogël: rreth 50 sekonda offline për çdo ripublikim.
Tani, kur një ripublikim nis në një aplikacion që është tashmë live, regjistrimi mban mend se ekziston një build i mëparshëm dhe vazhdon t’i tregojë atij. Rrjeti shërben build-in e mëparshëm ndërsa i riu ndërtohet, dhe treguesi lëviz te build-i i ri vetëm kur ai përfundon me sukses. Nëse build-i i ri dështon, vizitorët e tua kurrë nuk e vënë re; versioni i vjetër thjesht mbetet gjallë.
Një publikim i parë, ose ripublikimi i një aplikacioni që ishte pezulluar ose çpublikuar, prapë shkon live vetëm kur mbaron build-i. Nuk ka version të mëparshëm për të shfaqur.
2. Një ngecje e shkurtër nuk duket më si “nuk u gjet”
Shërbimi përpara aplikacionit tënd të publikuar pyet API-n tonë se ku ndodhet secila faqe. Më parë trajtonte çdo përgjigje të pasuksesshme (një gabim serveri për një moment, një lidhje e ndërprerë) si “kjo faqe nuk ekziston”, dhe shfaqte faqen offline. Një rifreskim një sekondë më vonë funksiononte, gjë që ngatërronte.
Tani vetëm një përgjigje reale “nuk u gjet” numërohet si nuk u gjet:
- Çdo dështim tjetër riprovohet një herë.
- Nëse prapë dështon, rrjeti shërben faqen nga përgjigjia e fundit e mirë e njohur, për deri në një orë.
- Vetëm nëse nuk ka pasur kurrë një përgjigje, shfaq një faqe “temporarily unavailable”, kurrë “not found”.
Domain-et personalë pyesin gjithashtu sistemet tona të prodhimit dhe të staging-ut paralelisht, kështu që një server staging i ngadaltë nuk mund të ngadalësojë kurrë një domain në prodhim.
3. Një aplikacion i pezulluar e thotë që është pezulluar
Aplikacionet e publikuara funksionojnë me bilancin tënd të kredive. Nëse mbaron, aplikacioni pezullohet derisa të mbushësh; dhe kthehet vetë kur ta bësh. Por një aplikacion i pezulluar dikur dukej krejt si një i fshirë.
Tani një vizitor i një aplikacioni të pezulluar sheh “This app is paused”, me një rrugë për pronarin për t’u kthyer, dhe përgjigjia nuk ruhet kurrë në cache, kështu që aplikacioni është i arritshëm sa herë rifillon. Nëse një aplikacion nuk është i disponueshëm për ndonjë arsye tjetër, vizitorët shohin “This app isn't available”, pa u thënë pse.
Pse ka rëndësi
Një aplikacion i publikuar është diçka që ke ndarë: në një lidhje biografie, në një kartë biznesi, me klientët e parë. Duhet të sillet si një faqe e vërtetë interneti: të qëndrojë gjallë ndërsa e përmirëson, të mbijetojë një ngecje, dhe të jetë i ndershëm kur është i pezulluar.
Më shumë për publikimin në dokumentacion: si të publikosh dhe kufijtë e hostingut. Dhe pjesa e infrastrukturës së së njëjtës ide: si arritëm deploy-et tona të vetë me zero 502.