Wdrażanie nowej wersji oprogramowania (a/b testing)

0

Cześć. Mam pytanie odnośnie sposobu wdrażania nowej wersji aplikacji webowej (java). Obecnie korzystam z blue/green (dwie instacja - produkcyjna i testowa, w danym momencie dziala tylko jedna-testowa, jesli sa błędy to przełączam loadbalancer na produkcje). Chciałbym teraz zmienić podejście na takie w którym obie instacje działają jednocześnie, a przekierowanie do konkrentej odbywa się na podstawie użytkownika (nazwa się to chyba A/B testing). Tzn użytkownicy np. w firmie dostają nową wersję, a pozostali starą, stabilną. Jeśli mamy błąd to wszyscy przekierowywani są na produkcję. Teraz chodzi mi o implementację. W blue/green mam loadbalancer "przed" serwerami aplikacyjnymi (korzystam z AJP) i przekierowuje cały ruch do jednego bądź drugiego. Przy tym nowym podejściu musiałbym na poziomie loadbalancera ("przed" aplikacją) mieć dostęp do informacji o użytkowniku i przekierować zapytanie. I tu pojawia się problem.. Jak to osiągnąć? Zastanawiałem się nad użyciem CAS, wtedy uwierzytelnienie byłoby poza aplikację, ale dalej zostaje kwestwie przekierowania po uwierzytelnieniu. Niestety nie znalazłem żadnych materiałów więc zwracam się z prośbą tutaj. Ktoś może miał okazję coś takiego widzieć/implementować lub mógłby coś podpowidzieć?

0

Najprościej jest po ciasteczku lub ID sesji (co też się do tego sprowadza). Jak użytkownik nie jest rozpoznany, to puszczasz go na stabilną produkcję, po zalogowaniu decydujesz, do którego serwera ma iść (tutaj możesz zrobić dowolną logikę) i przypisujesz mu ciasteczko. Jak przyjdzie drugie żądanie, to już load balancer wie, gdzie je puścić. Dla niezalogowanych idea podobna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1