- 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 hat letzte Woche eine Funktion veröffentlicht, die Cloud Run mit einer einzigen Ausführung in mehreren Regionen nutzbar macht.
Zusammenfassend lässt sich der Multi-Region-Service wie folgt beschreiben: Nehmen wir beispielsweise an, es gibt Regionen in Seoul, London und Las Vegas.
In diesem Fall musste man früher mithilfe von Skripten mehrere Regionen einzeln bereitstellen. Die neue Funktion ermöglicht die Bereitstellung in mehreren Regionen mit nur einem Skript.
Ehrlich gesagt, hatte ich vor der Veröffentlichung große Erwartungen an diese Funktion, nachdem ich die Dokumentation gelesen hatte, aber ich war etwas enttäuscht.
Die Bereitstellung selbst war auch mit Skripten bereits möglich, wobei mehrere Instanzen gleichzeitig und parallel bereitgestellt werden konnten, sodass es keinen großen Zeitaufwand bedeutete. Daher hatte ich keine großen Erwartungen in diesem Bereich. Da es sich jedoch um eine einmalige Bereitstellung handelt, können die Umgebungsvariablen nicht regionsabhängig konfiguriert werden.
Daher nutzten wir die Funktion, dass einzelne Cloud Run-Instanzen in verschiedenen Regionen unterschiedliche Werte verwenden können, um sich mit verschiedenen DBs oder GCS zu verbinden. Diese Funktion bereitete jedoch Probleme.
Das zweite Problem ist, dass bei wiederholter Bereitstellung die alten Versionen gelöscht werden müssen. Dies kann jedoch nicht einzeln gesteuert werden. Die alten Versionen sind schreibgeschützt und können nicht einzeln gelöscht werden.
Es gibt verschiedene Nachteile, aber der Vorteil ist, dass mehrere Cloud Run-Instanzen "zusammengefasst" werden können.
Bei unserem Service verwenden wir Cloud Run und mehrere Regionen sehr häufig. Derzeit sind es etwa 50, und wenn die aktuellen Arbeiten abgeschlossen sind, werden es 100 werden. Mit dem Multi-Region-Service können wir die Anzahl auf 10 bis 20 reduzieren. (Es wird lediglich ausgeblendet.)
Hier ist zunächst das Skript.
Die Ausführung des obigen Skripts führt zur folgenden Bereitstellung.
Cloud Run
Zunächst wird der Cloud Run mit dem gleichen Namen in jeder Region bereitgestellt, und im oberen Bereich wird ein Ordner (?) mit dem gleichen Namen erstellt.
Der zusammengefasste Bildschirm sieht wie folgt aus.
Cloud Run – zugeklappter Bildschirm
Bei einer geringen Anzahl an Regionen ist dies nicht sehr hilfreich, aber wenn man annimmt, dass dies in 40 Regionen bereitgestellt wird, ist dies sehr hilfreich. (Auch wenn es nicht ganz so viele sind...)
Wird als schreibgeschützt angezeigt.
Bei den meisten Funktionen wird bei einem Änderungsversuch meist eine schreibgeschützte Anzeige angezeigt. Die Dokumentation beschreibt zwar die Funktion, aber die API funktioniert noch nicht richtig. (Wahrscheinlich ein API-Problem)
Die zugehörige Dokumentation finden Sie hier.
Die gcloud-Dokumentation finden Sie hier. Derzeit werden nur Alpha-/Beta-Versionen unterstützt, keine offiziellen Versionen. Außerdem ist die Option --regions in der obigen Dokumentation nicht enthalten. (Wird bald aktualisiert werden?)
Was ich mir wünsche: Eigentlich nichts anderes als dass der PORT, der derzeit als Standardumgebungsvariable verwendet wird, als Standardwert bereitgestellt wird. Ich weiß, dass verschiedene Informationen über den Metadaten-Server bereitgestellt werden, aber das manuelle Abrufen per Fetch ist umständlich. (Und das verbraucht auch Ressourcen...)
Da es sich noch um eine Vorschauversion handelt, wird es hoffentlich immer besser. (Es ist etwas früh, um sich schon zu beschweren...)
Kommentare0