你的已发布应用现在在重新发布时保持在线
当你在 Mythex 上重新发布应用时,线上站点现在会在新构建准备就绪之前继续提供上一个版本,然后再切换过去。在此之前,重新发布会在整个构建期间让站点下线,访问者会看到「This published app is offline or the link was not found」,大约一分钟之后,刷新页面又能正常访问。我们还修复了线上应用可能被错误地显示为离线的另外两种情况。
1. 重新发布不再让你的站点下线
在后台,每个已发布的应用都有一条记录,指明应当提供哪个构建。重新发布会复用这条记录,并在整个构建期间将其标记为「构建中」,而我们边缘层中负责路由访问者的那部分只提供标记为「在线」的记录。因此,每次重新发布都会让站点在构建完成之前消失。我们在一个小型测试应用上复现了这一点:每次重新发布都会有大约 50 秒的下线时间。
现在,当一个已经在线的应用开始重新发布时,记录会记住存在一个之前的构建,并继续指向它。边缘层会在新构建进行期间继续提供之前的构建,指针只有在新构建成功时才会移动过去。如果新构建失败,你的访问者完全不会察觉,旧版本只是保持在线。
首次发布,或者重新发布一个已暂停或已取消发布的应用,仍然只在构建完成时才上线,因为此时没有之前的版本可以展示。
2. 短暂的故障不再显示为「未找到」
位于你的已发布应用前面的服务,会向我们的 API 询问每个站点的位置。过去,它会把任何不成功的响应(例如一次短暂的服务器错误或连接中断)都视为「该站点不存在」,并显示离线页面。一秒钟之后刷新又能正常访问,这让人感到困惑。
现在,只有真正的「未找到」响应才算作未找到:
- 任何其他失败都会重试一次。
- 如果仍然失败,边缘层会使用最近一次的正常结果提供站点,最长可达一小时。
- 只有在它从未获得过结果的情况下,才会显示「暂时不可用」页面,而绝不会显示「未找到」。
自定义域名现在会同时询问我们的生产系统和预发布系统,因此预发布服务器的缓慢永远不会拖累生产域名。
3. 暂停的应用会明确说明自己已暂停
已发布的应用使用你的积分余额运行。如果余额用完,应用就会暂停,直到你充值为止,充值后它会自动恢复。但过去,一个已暂停的应用看起来与已删除的应用完全一样。
现在,访问者访问已暂停的应用时会看到**「This app is paused」**,并附有供所有者返回的途径;该响应永远不会被缓存,因此应用一旦恢复,就可以立即再次访问。如果应用因其他原因不可用,访问者会看到「This app isn't available」,但不会得知原因。
为什么这很重要
已发布的应用是你已经分享出去的东西:放在个人简介链接中,印在名片上,交给你的第一批客户。它应当像一个真正的网站一样运行:在你改进它的同时保持在线,能够经受住短暂的故障,并且在暂停时如实说明。
关于发布的更多信息,请参阅文档:如何发布和托管限制。关于同一理念的基础设施部分,请参阅我们如何把自己的部署降到零 502 错误。