2013-07-19 2 views
1

Когда мы переключаем код сервера на новую версию в консоли Google для приложений, необходимо создать множество новых экземпляров. Из-за этого мы видим около 500 ошибок и длительное время отклика.Какова наилучшая практика для развертывания новой версии в движке google

Какова наилучшая практика для смягчения этих проблем?

ответ

0

Настройка запросов прогрева, чтобы загрузить приложение до фактического трафика направляется к экземпляру:

Python: https://developers.google.com/appengine/docs/python/config/appconfig#Warmup_Requests

Java: https://developers.google.com/appengine/docs/java/config/appconfig#Warmup_Requests

Перейти: https://developers.google.com/appengine/docs/go/config/appconfig#Inbound_Services

PHP: https://developers.google.com/appengine/docs/php/config/appconfig#Warmup_Requests

+0

Мы уже это сделали. Я думаю, что у App Engine есть ошибки, как заметил Ник. –

1

В дополнение к другим лицам ответьте re: warmup, вы также должны посмотреть на разделение трафика. «Инструмент разделения трафика App Engine позволяет быстро развертывать функции для вашего приложения в течение определенного периода времени, подобно тому, как это делает Google при развертывании новой функции в течение нескольких дней или недель. Распределение трафика также позволяет вам выполнять тестирование A/B. Трафик Расщепление работает путем разделения входящих запросов на различные версии приложения.»

документы здесь https://developers.google.com/appengine/docs/adminconsole/trafficsplitting

+0

Мы тоже это сделали. Но это не исправляет 500 ошибок, которые кажутся ошибкой в ​​приложении. (У Ника больше подробностей об этом) –

2

500 ответов не всегда происходили на запросы во время развертывания. Ранее новая версия приложения была в состоянии взять на себя трафик из старого без перерывов, однако это, казалось, прекратилось довольно давно. Эти 500 не похоже на ваше приложение вообще (так как в запросах не будет отображаться в ваших журналах, и они не будут обслуживаться вашим приложения 500 стр.). Временное окно также меняется от минус до минуты.

Я не знаю никаких признаков того, что appengine t eam рассматривает это решение, хотя это похоже на ошибку (или, по крайней мере, на разумный запрос функции).

Чтобы обойти эту проблему, мы обычно развертываем другую версию и переключаем ее на версию по умолчанию. Как только это будет обслуживать трафик, мы развертываем его до предыдущей версии, а затем возвращаем обратно по умолчанию. Это позволяет клиентам обслуживаться бесперебойно, но для этого требуется (по крайней мере, в java-land) новая сборка.

+0

Мы сделали то же самое (разворачиваем в новую версию, прогреваем новую версию и переключаем ее на версию по умолчанию). Но 500 ошибок по-прежнему появляются во время развертывания. –

Смежные вопросы