Blog

Tvoje publikovaná aplikace teď zůstává online, i když ji znovu publikuješ

Když znovu publikuješ aplikaci na Mythexu, tvůj živý web dál slouží předchozí verzi, dokud nové sestavení není hotové, a pak se přepne. Dřív opakovaná publikace vzala web offline na celou dobu sestavení – návštěvníci viděli „Tato publikovaná aplikace je offline nebo odkaz nebyl nalezen“ zhruba na minutu a pak táž stránka po obnovení znovu fungovala. Opravili jsme také dva další způsoby, jak živá aplikace mohla chybně vypadat jako offline.

1. Opakovaná publikace už nevypne tvůj web

Na pozadí má každá publikovaná aplikace záznam, který říká, které sestavení se má servírovat. Opakovaná publikace použila tentýž záznam a po celou dobu sestavení ho označila jako „sestavuje se“ – a část naší edge vrstvy, která směruje návštěvníky, servírovala jen záznamy označené jako „živé“. Takže každá opakovaná publikace stránku na chvíli zmizela, dokud sestavení neskončilo. Zreprodukovali jsme to na malé testovací aplikaci: zhruba 50 sekund offline na každou opakovanou publikaci.

Teď, když opakovaná publikace začne u již živé aplikace, záznam si pamatuje, že předchozí sestavení existuje, a stále na něj ukazuje. Edge servíruje předchozí sestavení, zatímco se nové sestavuje, a ukazatel se přesune na nové sestavení až po jeho úspěchu. Pokud nové sestavení selže, tví návštěvníci si ničeho nevšimnou – stará verze prostě zůstane online.

První publikace nebo opakovaná publikace aplikace, která byla pozastavena nebo zrušena, se pořád zpřístupní až po dokončení sestavení – žádná předchozí verze, kterou by bylo možné ukázat, neexistuje.

2. Krátké zakolísání už nevypadá jako „nenalezeno“

Služba před tvou publikovanou aplikací se ptá našeho API, kde každý web je. Dříve bral každou neúspěšnou odpověď – krátkou chybu serveru, přerušené spojení – jako „tento web neexistuje“ a ukázal stránku offline. O vteřinu později stránka fungovala, takže to bylo matoucí.

Teď jako „nenalezeno“ počítá jen skutečná odpověď „nenalezeno“:

  • Každé jiné selhání se zkusí znovu jednou.
  • Pokud pořád selže, edge servíruje web z poslední známé dobré odpovědi až na hodinu.
  • Jen pokud nikdy žádnou odpověď nedostal, ukáže stránku „dočasně nedostupné“ – nikdy „nenalezeno“.

Vlastní domény se také ptají našich produkčních a staging systémů paralelně, takže pomalý staging server nikdy nemůže zdržet produkční doménu.

3. Pozastavená aplikace říká, že je pozastavená

Publikované aplikace běží na tvém zůstatku kreditů. Když dojdou, aplikace se pozastaví, dokud nedobiješ kredit – a pak se sama znovu spustí. Dříve ale pozastavená aplikace vypadala přesně jako smazaná.

Teď návštěvník pozastavené aplikace uvidí „Tato aplikace je pozastavena“ s cestou zpět pro vlastníka, a odpověď se nikdy neukládá do cache, takže je aplikace dosažitelná hned, jakmile se znovu spustí. Pokud je aplikace nedostupná z jiného důvodu, návštěvníci uvidí „Tato aplikace není dostupná“ – bez vysvětlení, proč.

Proč na tom záleží

Publikovaná aplikace je něco, co jsi sdílel: v popisu profilu, na vizitce, s prvními zákazníky. Měla by se chovat jako skutečný web – zůstat online, když ji vylepšuješ, přežít zakolísání a být upřímná, když je pozastavená.

Více o publikaci v dokumentaci: jak publikovat a limity hostingu. A infrastrukturní strana stejné myšlenky: jak jsme dosáhli nuly chyb 502 při nasazeních.

Mythex · Pricing · Vytvořte cokoli s AI · Šablony webů a aplikací · Mythex v porovnání · Slovník tvorby aplikací s AI · Bezplatné nástroje pro tvorbu aplikací s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)