При выпуске обновления в производство, как продолжить внутреннее обновление?

Зная, что выпуск обновления для Google Play может занять от нескольких часов до дня, как лучше всего синхронизировать серверную часть?

- Под синхронизацией бэкэнда я имею в виду обновление хранимых процедур, добавление / удаление столбцов из таблиц и многое другое. -

Синхронизация серверной части после отправки APK, но до того, как обновление будет запущено, может нарушить использование для текущих пользователей, потому что их приложение еще не обновилось для реакции на новые изменения серверной части.

Аналогичным образом, слишком поздняя синхронизация серверной части также нарушит использование, поскольку как новое приложение, так и старое приложение не могут использовать серверную часть должным образом.

2
0
194
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Лучшая практика в этой области - не полагаться на одновременный выпуск. Помните, даже если Google Play обновляется мгновенно, пользователи не всегда. Многие крупные компании делают следующее:

Предположим, вы переходите с версии 10 на версию 11 вашего бэкэнда и клиента:

  1. убедитесь, что клиент встроил в каждый сетевой вызов возможный ответ, который представляет собой код «требуется новая версия». Если клиент получает этот код в качестве ответа, то вместо того, чтобы продолжить, он должен показать пользователю вариант «Вам необходимо обновить до последней версии» и ссылку на Google Play. Это также можно сделать с помощью такой службы, как Удаленная конфигурация Firebase.
  2. В бэкэнде убедитесь, что вы поддерживаете как новый клиент (в данном случае v11), так и старый клиент (в данном случае v10). Это требует некоторой разработки программного обеспечения, но обычно не так уж сложно.
  3. В вашем бэкэнде есть переменная живой конфигурации, которая определяет, какая версия клиента вам нужна. Начните с этого значения 10 (старый клиент).
  4. Выпустите v11 вашего бэкэнда. На данный момент все клиенты подключены к клиенту V10 и общаются с серверной частью V11.
  5. После завершения развертывания серверной части выпустите новый клиент в Play Store. На этом этапе некоторые пользователи будут обновлены и будут использовать клиенты V10, а некоторые - V11.
  6. Дайте пользователям немного времени на обновление (возможно, неделю), обновите удаленную конфигурацию, чтобы настоять на том, чтобы все пользователи использовали клиенты V11.

Затем вы можете работать над своим новым сервером, который должен поддерживать только клиенты V11 и V12.

Альтернативой, которая менее безопасна, но требует меньше разработки программного обеспечения, является использование синхронизированной публикации в Google Play. Инструкции на этой странице. В этом процессе вы отправляете свое приложение в Google на предварительную проверку и просите их опубликовать в определенное время после завершения проверки. Это означает, что Google запустит ваше приложение в точное время. Затем вы можете обновить свои серверы в это время.

У вас все еще может быть небольшое окно (минуты), когда серверы Play в разных частях мира не синхронизируются. Кроме того, клиент Play выполняет некоторое кэширование описания приложения на стороне клиента, поэтому, даже если магазин Play обновился, пользователь может не видеть новую версию некоторое время (возможно, часы). Вот почему я рекомендую процедуру, описанную в первой части моего ответа.

Другие вопросы по теме