- Serve traffic from multiple regions | Cloud Run Documentation | Google Cloud
- You can return faster responses to your users around the world by deploying services in multiple regions and routing your users to the nearest region. Deploying across multiple regions delivers low latency and higher availability in case of regional outages.
На прошлой неделе GCP выпустила функцию, позволяющую использовать Cloud Run в нескольких регионах с помощью одной команды.
Кратко говоря, о многорегиональных сервисах: допустим, есть регионы в Сеуле, Лондоне и Лас-Вегасе.
Раньше для развертывания в нескольких регионах приходилось использовать скрипты для каждого региона по отдельности. Новая функция позволяет выполнить развертывание во всех регионах с помощью одного скрипта.
На самом деле, я очень ждал эту функцию, прочитав документацию о предстоящем запуске сервиса, но немного разочаровался.
Развертывание с помощью скриптов и раньше позволяло делать это одновременно для нескольких регионов, так как операции выполняются параллельно, и по времени это не сильно отличается, поэтому больших ожиданий в этой части не было. Но поскольку теперь все развертывается одновременно, невозможно использовать разные переменные среды для разных регионов.
Поэтому мы активно использовали функцию, позволяющую отдельным экземплярам Cloud Run подключаться к разным базам данных или GCS в зависимости от региона, но теперь возникли проблемы с использованием этой функции.
Вторая проблема заключается в том, что при повторном развертывании может возникнуть необходимость удалить предыдущие версии, но это невозможно сделать по отдельности. Старые версии защищены от удаления в режиме "только для чтения".
Есть много недостатков, но есть и преимущество: можно "свернуть" несколько экземпляров Cloud Run в один.
В нашем сервисе активно используется Cloud Run и много регионов, сейчас их около 50, а после завершения текущих работ их число может увеличиться до 100. Используя многорегиональный сервис, их можно сократить до 10-20. (Это просто скрытие.)
Вот пример скрипта.
После выполнения скрипта развертывание происходит следующим образом.
Cloud Run
Экземпляры Cloud Run с одинаковым именем развертываются в каждом регионе, а вверху создается папка(?) с тем же именем.
Свернутый вид выглядит так:
Cloud Run — свернутый экран
На самом деле, при небольшом количестве регионов это не очень помогает, но если предположить, что это развертывание в 40 регионах, то это будет очень полезно. (Хотя и не обязательно так много...)
Отмечено как "только для чтения".
При попытке внести изменения в большинство функций они отображаются как доступные только для чтения. В документации указано, что функция предоставляется, но API все еще имеет проблемы или не работает должным образом.
Ссылка на соответствующую документацию:
Документация по gcloud находится здесь. На данный момент поддерживаются только альфа/бета версии, полная версия не поддерживается. Кроме того, опция --regions в приведенной выше документации отсутствует. (Скоро обновится, надеюсь?)
Чего бы хотелось? В основном, чтобы переменная среды PORT предоставлялась как значение по умолчанию, как сейчас. Конечно, я знаю, что через сервер метаданных предоставляется много информации, но для доступа к ней приходится использовать Fetch, что неудобно. (К тому же, это тоже ресурсы...)
Поскольку это все еще предварительная версия, надеюсь, все улучшится. (Жаловаться сразу после релиза... немного рано.)
Комментарии0