Wdrożenie niebiesko-zielone polega na pompowaniu przepływów danych na żywo prod (niebieski) do środowiska non-swap typu hot swap (zielony) w ramach przygotowań do wdrożenia na żywo w zielonym środowisku, tak że zielony ma pełną synchronizację danych z poprzednim środowiskiem blue prod.
Zastanawiam się, co ludzie używają, aby kopiować na bieżąco ciągły ruch z gniazda sieciowego z niebieskiego na zielony. Czy piszę własny, czy istnieje biblioteka do publikowania / subskrybowania strony internetowej, czy może inne podejście do niebieskiej zieleni?
Moja aplikacja ma serwery REST nodejs, które zarządzają także ruchem websocket z urządzeń mobilnych ... serwer mongodb itp. Każdy w kontenerach na GCE / AWS
Zdaję sobie sprawę, że mógłbym po prostu zsynchronizować mongodb z niebieskiego na zielony, ale to nie ćwiczyłoby zielonych serwerów nodejs z ruchem na żywo, co jest ładnym sprawdzeniem czystości regresji, którego szukam
Być może, jeśli po prostu przesyłam ruch HTTP do przodu, podstawowa strona działająca na HTTP będzie sama się zajmować i nie będzie wymagać konkretnej konfiguracji niebiesko-zielonej
źródło
Odpowiedzi:
Przy minimalnie skonstruowanym kodzie serwera (w tym przykładzie aplikacja Google AppEngine) można duplikować i przekazywać przychodzący ruch HTTP otrzymany przez serwer produkcyjny do serwera testowego (lub odwrotnie) w celu porównania ich odpowiedzi. Zobacz /programming/38799566/can-i-asynchronously-duplicate-a-webapp2-requesthandler-request-to-a-different-u .
źródło
Websockets tak naprawdę nie mają z tym żadnego do czynienia. Możesz zbudować własny system, ale generalnie pomysł na HA jest taki, że jeśli coś się stanie, skonfigurujesz klienta tak, aby automatycznie łączył się ponownie. Wystąpi niezerowe przestoje podczas zamiany niebiesko-zielonej, ale jeśli twoja aplikacja jest dobrze zbudowana, powinna już to obsłużyć.
Jeśli chcesz czegoś płynniejszego, możesz zbudować wiadomość w swoim protokole, aby połączyć się z nowym serwerem, a następnie porzucić oryginalne połączenie.
źródło