发布更新到生产时如何进行后端更新?

When releasing update to production how to proceed with backend update?

知道发布对 Google Play 的更新可能需要几个小时到一天,同步后端的正确方法是什么?

-- 通过同步后端,我的意思是更新存储过程、表中的 adding/deleting 列,等等。 --

在提交 APK 之后但在更新生效之前同步后端可能会中断当前用户的使用,因为他们的应用尚未更新以响应新的后端更改。

同样,太晚同步后端也会影响使用,因为新旧应用都无法正常使用后端。

这方面的最佳做法是不依赖同步发布。请记住,即使 Google Play 即时更新,用户也不会总是如此。很多大公司做的是:

假设您要从后端和客户端的版本 10 迁移到版本 11:

  1. 确保客户端在每个网络调用中都内置了一个可能的响应,即代码 "needs new version"。如果客户端收到此代码作为响应,那么它应该向用户显示 "You need to update to the latest version" 和 link 到 Google 播放的选项,而不是继续。这也可以通过 Firebase Remote Config.
  2. 这样的服务来完成
  3. 在后端,确保您同时支持新客户端(在本例中为 v11)和旧客户端(在本例中为 v10)。这需要一些软件工程,但通常不会太难。
  4. 在您的后端有一个实时配置变量,用于配置您需要的客户端版本。从这个设置为 10(旧客户端)开始。
  5. 发布您的后端 v11。此时所有客户都在 V10 客户端上与 V11 后端通信。
  6. 后端部署完成后,将新客户端发布到 Play 商店。此时一些用户将更新并使用 V10 客户端,而一些用户将使用 V11。
  7. 在给用户一些时间(可能一周)更新后,更新您的远程配置以坚持所有用户都在使用 V11 客户端。

然后您可以在您的新后端上工作,它只需要支持客户端 V11 和 V12。

另一种不太安全但需要较少软件工程的替代方法是使用 Google Play 的定时发布。 Instructions are on this page。在此过程中,您将您的应用程序发送到 Google 以便事先进行审核,并要求他们在审核完成后的特定时间发布。这意味着 Google 将使您的应用程序在准确的时间上线。然后您可以在那个时候更新您的服务器。

世界不同地区的 Play 服务器可能仍然有一小段 window(分钟)不同步。此外,Play 客户端会对应用程序描述进行一些客户端缓存,因此即使 Play 商店已更新,用户也可能会在一段时间内(可能几个小时)看不到新版本。这就是为什么我在回答的第一部分推荐该程序的原因。