2014-10-13 5 views
8

Jakie są najlepsze praktyki w środowiskach produkcyjnych i testowych (testowych) w Google App Engine? Czy warto tworzyć osobne projekty?Najlepsza praktyka w środowiskach produkcyjnych i testowych w Google App Engin

Korzystamy również z Google Cloud Storage i Cloud SQL. Chciałbym zapobiec wypadkom, w których ktoś błędnie pracuje w produkcji, gdy zamierza pracować w teście.

Będziemy przechowywać wiele rzeczy w GCS. Z mojego rozumienia środowiska GCS są oddzielne między projektami. To może być dla nas pożądane. Ale jeśli chcemy skopiować produkt do przetestowania, czy możliwe jest zduplikowanie GCS z jednej aplikacji do drugiej?

Czekamy na wiadomość, jak inni to robią.

+1

Możliwy duplikat [Jak skonfigurować środowisko pomostowe w Google App Engine] (http://stackoverflow.com/questions/3793860/how-to-set-up-a-aging-environment-on-google- aparat aplikacji) – andruso

Odpowiedz

1

widzę dwa sposoby, aby to zrobić, wszystko w zależności od potrzeb:

1) Korzystanie wersje na temat aplikacji, inna instancja w chmurze SQL i inna nazwa łyżka do GCS można użyć tego samego projektu . Po prostu musisz być bardzo ostrożny, ustalając, do którego celu skierowane są poszczególne połączenia i przekierowując je po uruchomieniu.

2) Korzystanie z oddzielnego projektu jest prawdopodobnie bezpieczniejszą opcją, ale w obu przypadkach trzeba użyć unikalnej nazwy pojemnika. Nazwa zasobu musi być unikalna we wszystkich instancjach GCS.

Jest dość łatwy do skopiowania z jednego kubełka na drugi po uzyskaniu uprawnień. Używając gsutil możesz kopiować z wiadra do wiadra.

3

Odpowiedź Bruyere'a jest technicznie słuszna, możesz albo zmienić swoją aplikację, albo użyć oddzielnych projektów.

W praktyce zarówno robiłem i zawsze kończy się konieczności rozdzielenia projektów na tonę dobrych powodów:

  • możesz nie chcieć sami ludzie mają prawo, aby aktualizować inscenizację env (wszyscy deweloperzy mieliby taką możliwość na przykład) i env produkcyjny (zwykle byłby ograniczony do lidera technicznego, zespołu QA lub serwera ciągłej integracji)
  • Izolowanie dwóch wersji silnika aplikacji nie jest takie łatwe, w szczególności w przypadku zadań cron, e-mail lub odbioru XMPP
  • Możesz nie chcieć tych samych ludzi aby móc odczytywać/zapisywać dane pomostowe i dane prod.
  • Chcesz się upewnić, że aplikacja App Engine prod app nie zapisuje danych w pamięci pomostowej Cloud Storage. Jeśli są one częścią tego samego projektu, domyślnie jest to możliwe:

Moje zalecenie to przechowywanie danych związanych ze środowiskiem (zasobnik chmury, adres URL Cloud SQL itp.) W pliku konfiguracyjnym załadowanym przez aplikację. Jeśli korzystasz z Javy, ja osobiście używam pliku właściwości zapełnionego przez Mavena na podstawie dwóch profili (dev i prod, dev jest domyślnym).

Innym ważnym punktem jest oddzielenie środowisk od samego początku. Gdy już zaczniesz przypuszczać, że oba środowiska będą żyć w tej samej aplikacji, wiele kodu zostanie opracowanych na podstawie tego założenia i trudniej będzie wrócić do dwóch różnych projektów.