Was sind die besten Vorgehensweisen für Produktions- und Testumgebungen in Google App Engine? Ist es eine gute Idee, separate Projekte einzurichten?
Wir verwenden auch Google Cloud Storage und Cloud SQL. Ich möchte Unfälle vermeiden, bei denen jemand fälschlicherweise in der Produktion arbeitet, wenn er im Test arbeiten will.
Wir werden viel Material in GCS speichern. Aus meiner Sicht sind GCS-Umgebungen zwischen Projekten getrennt. Dies kann für uns wünschenswert sein. Aber wenn wir das Produkt zum Testen kopieren möchten, ist es möglich, GCS von einer App zur anderen zu kopieren?
Ich freue mich darauf zu hören, wie andere das machen.
Bruyere's Antwort ist technisch richtig, Sie können entweder Ihre App versionieren oder separate Projekte verwenden.
In der Praxis habe ich beides gemacht und Sie müssen die Projekte aus vielen guten Gründen immer wieder trennen:
Ich empfehle, die umweltbezogenen Daten (Cloud-Speicher-Bucket, Cloud SQL-URL usw.) in einer Konfigurationsdatei zu speichern, die von der Anwendung geladen wird. Wenn Sie Java verwenden, verwende ich persönlich eine Eigenschaftendatei, die von Maven anhand von zwei Profilen (dev und prod, wobei dev der Standard ist) ausgefüllt wird.
Ein weiterer wichtiger Punkt ist die Trennung von Umgebungen von Anfang an. Sobald Sie davon ausgehen, dass beide Umgebungen in der gleichen Anwendung leben, wird ein Großteil Ihres Codes basierend auf dieser Annahme entwickelt und es wird schwieriger, zu zwei verschiedenen Projekten zurückzukehren.
Ich kann zwei Arten sehen, dies zu tun, alles abhängig von Ihren Bedürfnissen:
1) Wenn Sie Versionen in Ihrer App, eine andere Instanz in Cloud SQL und einen anderen Bucket-Namen für GCS verwenden, können Sie dasselbe Projekt verwenden. Sie müssen nur sehr vorsichtig sein, um festzulegen, auf welches Ziel die einzelnen Aufrufe gehen sollen, und sie umleiten, wenn sie live geschaltet wird.
2) Die Verwendung eines separaten Projekts ist wahrscheinlich die sicherere Option, aber Sie müssen auf jeden Fall einen eindeutigen Bucket-Namen verwenden. Bucket-Namen müssen in allen GCS-Instanzen eindeutig sein.
Es ist ziemlich einfach, von einem Eimer zum anderen zu kopieren, sobald Sie Ihre Berechtigungen eingerichtet haben. Mit gsutil können Sie von einem Bucket in einen Bucket kopieren.
Tags und Links google-app-engine