Блог

Ваш опублікований застосунок тепер лишається онлайн під час перепублікації

Коли ви перепублікуєте застосунок на Mythex, ваш живий сайт тепер продовжує показувати попередню версію, доки нова збірка не буде готова, і лише тоді перемикається. Раніше перепублікація вимикала сайт на всю тривалість збірки: відвідувачі бачили «Цей опублікований застосунок офлайн або посилання не знайдено», а потім та сама сторінка знову працювала після оновлення. Ми також виправили два інших випадки, коли живий застосунок помилково виглядав офлайн.

1. Перепублікація більше не вимикає ваш сайт

У фоні кожен опублікований застосунок має запис, який каже, яку збірку подавати. Перепублікація використовувала той самий запис і позначала його як «збирається» на весь час збірки — а частина нашої edge-мережі, що маршрутизує відвідувачів, подавала лише записи, позначені як «живі». Тож кожна перепублікація робила сайт зниклим, доки збірка не завершиться. Ми відтворили це на маленькому тестовому застосунку: близько 50 секунд офлайн на кожну перепублікацію.

Тепер, коли перепублікація починається для вже живого застосунку, запис пам'ятає, що існує попередня збірка, і продовжує вказувати на неї. Edge подає попередню збірку, поки нова будується, а вказівник переходить на нову збірку лише тоді, коли вона успішна. Якщо нова збірка не вдалася, ваші відвідувачі нічого не помітять — стара версія просто лишається онлайн.

Перша публікація або перепублікація застосунку, який був призупинений або знятий з публікації, як і раніше стає живою лише після завершення збірки — показувати попередньої версії немає.

2. Короткий збій більше не виглядає як «не знайдено»

Сервіс перед вашим опублікованим застосунком запитує наш API, де живе кожен сайт. Раніше він вважав будь-яку невдалу відповідь — тимчасову помилку сервера, розірване з'єднання — як «такого сайту не існує» і показував сторінку офлайн. Оновлення секундою пізніше працювало, і це плутало.

Тепер лише справжня відповідь «не знайдено» вважається «не знайдено»:

  • Будь-яка інша невдача повторюється один раз.
  • Якщо і це не вдалося, edge подає сайт з останньої відомої доброї відповіді до однієї години.
  • Лише якщо відповіді ніколи не було, він показує сторінку «тимчасово недоступно» — ніколи «не знайдено».

Власні домени також паралельно запитують наші продакшн і staging-системи, тож повільний staging-сервер ніколи не може затримати продакшн-домен.

3. Призупинений застосунок каже, що він призупинений

Опубліковані застосунки працюють за рахунок вашого балансу кредитів. Якщо він закінчується, застосунок призупиняється, доки ви не поповните баланс, — і він повертається сам, щойно ви це робите. Але призупинений застосунок раніше виглядав точно так само, як видалений.

Тепер відвідувач призупиненого застосунку бачить «Цей застосунок призупинено» із способом для власника повернутися, а відповідь ніколи не кешується, тож застосунок доступний одразу після відновлення. Якщо застосунок недоступний з іншої причини, відвідувачі бачать «Цей застосунок недоступний» — без пояснення причини.

Чому це важливо

Опублікований застосунок — це те, чим ви поділилися: у біо-посиланні, на візитці, з першими клієнтами. Він має поводитися як справжній вебсайт — лишатися онлайн, поки ви його покращуєте, витримувати короткий збій і чесно повідомляти, коли він призупинений.

Більше про публікацію в документації: як опублікувати і ліміти хостингу. А інфраструктурна сторона тієї самої ідеї: як ми досягли нуля помилок 502 під час власних деплоїв.

Mythex · Pricing · Створюйте що завгодно з ШІ · Шаблони сайтів і застосунків · Порівняння Mythex · Глосарій створення застосунків за допомогою ШІ · Безкоштовні інструменти для створення застосунків за допомогою ШІ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština 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 简体中文 繁體中文(香港) 繁體中文(台灣)