Wysoka dostępność i równoważenie obciążenia prywatnych łączników sieciowych i aplikacji

W tym artykule wyjaśniono, jak dystrybucja ruchu działa z wdrożeniem serwera proxy aplikacji. Dowiedz się, jak ruch jest dystrybuowany między użytkownikami i łącznikami, wraz z poradami dotyczącymi optymalizowania wydajności łącznika. Dowiedz się, jak przepływ ruchu między łącznikami i serwerami aplikacji zaplecza, z zaleceniami dotyczącymi równoważenia obciążenia między wieloma serwerami zaplecza.

Dystrybucja ruchu między łącznikami

Połączenie or ustanawiają swoje połączenia na podstawie zasad wysokiej dostępności. Nie ma gwarancji, że ruch jest równomiernie dystrybuowany między łącznikami i nie ma koligacji sesji. Jednak użycie różni się i żądania są losowo wysyłane do wystąpień usługi serwera proxy aplikacji. W rezultacie ruch jest zwykle dystrybuowany niemal równomiernie między łącznikami. Diagram i kroki ilustrują sposób nawiązywania połączeń między użytkownikami i łącznikami.

Diagram przedstawiający połączenia między użytkownikami i łącznikami

  1. Użytkownik na urządzeniu klienckim próbuje uzyskać dostęp do aplikacji lokalnej opublikowanej za pośrednictwem serwera proxy aplikacji.
  2. Żądanie przechodzi przez usługę Azure Load Balancer w celu określenia, które wystąpienie usługi serwera proxy aplikacji powinno przyjąć żądanie. Istnieje dziesiątki wystąpień, które umożliwiają akceptowanie żądań dla całego ruchu w regionie. Ta metoda pomaga równomiernie dystrybuować ruch między wystąpieniami usługi.
  3. Żądanie jest wysyłane do usługi Service Bus.
  4. Usługa Service Bus sygnalizuje dostępny łącznik. Łącznik następnie pobiera żądanie z usługi Service Bus.
    • W kroku 2 żądania przechodzą do różnych wystąpień usługi serwera proxy aplikacji, więc połączenia będą częściej wykonywane z różnymi łącznikami. W związku z tym łączniki są prawie równomiernie używane w grupie.
  5. Łącznik przekazuje żądanie do serwera zaplecza aplikacji. Następnie aplikacja wysyła odpowiedź z powrotem do łącznika.
  6. Łącznik kończy odpowiedź, otwierając połączenie wychodzące z wystąpieniem usługi, z którego pochodzi żądanie. Następnie to połączenie jest natychmiast zamknięte. Domyślnie każdy łącznik jest ograniczony do 200 współbieżnych połączeń wychodzących.
  7. Odpowiedź jest następnie przekazywana z powrotem do klienta z wystąpienia usługi.
  8. Kolejne żądania z tego samego połączenia powtórzą kroki.

Aplikacja często ma wiele zasobów i otwiera wiele połączeń w przypadku obciążenia. Każde połączenie przechodzi przez kroki przydzielania do wystąpienia usługi. Jeśli połączenie nie jest sparowane z łącznikiem, wybierz nowy dostępny łącznik.

Najlepsze rozwiązania dotyczące wysokiej dostępności łączników

  • Ze względu na sposób dystrybucji ruchu między łącznikami w celu zapewnienia wysokiej dostępności należy zawsze mieć co najmniej dwa łączniki w grupie łączników. Trzy łączniki są preferowane, aby zapewnić dodatkowy bufor między łącznikami. Aby określić odpowiednią liczbę potrzebnych łączników, postępuj zgodnie z dokumentacją dotyczącą planowania pojemności.

  • Umieść łączniki na różnych połączeniach wychodzących, aby uniknąć pojedynczego punktu awarii. Jeśli łączniki korzystają z tego samego połączenia wychodzącego, problem sieciowy z połączeniem ma wpływ na wszystkie łączniki korzystające z niego.

  • Unikaj wymuszania ponownego uruchamiania łączników po nawiązaniu połączenia z aplikacjami produkcyjnymi. Może to negatywnie wpłynąć na rozkład ruchu między łącznikami. Ponowne uruchamianie łączników powoduje niedostępność większej liczby łączników i wymusza nawiązywanie połączeń z pozostałym dostępnym łącznikiem. Wynik jest nierównomiernym użyciem łączników początkowo.

  • Unikaj wszystkich form wbudowanej inspekcji komunikacji między łącznikami i platformą Azure dla ruchu wychodzącego protokołu Transport Layer Security (TLS). Ten typ inspekcji wbudowanej powoduje obniżenie przepływu komunikacji.

  • Upewnij się, że aktualizacje automatyczne są uruchomione dla łączników. Jeśli usługa aktualizatora łącznika sieci prywatnej jest uruchomiona, łączniki są aktualizowane automatycznie i odbierane najnowsze uaktualnienia. Jeśli na serwerze nie widzisz usługi aktualizatora Połączenie or, musisz ponownie zainstalować łącznik, aby uzyskać aktualizacje.

Przepływ ruchu między łącznikami i serwerami aplikacji zaplecza

Innym kluczowym obszarem, w którym wysoka dostępność jest czynnikiem, jest połączenie między łącznikami a serwerami zaplecza. Po opublikowaniu aplikacji za pośrednictwem serwera proxy aplikacji Microsoft Entra ruch od użytkowników do aplikacji przepływa przez trzy przeskoki:

  1. Użytkownik łączy się z publicznym punktem końcowym usługi serwera proxy aplikacji firmy Microsoft na platformie Azure. Połączenie jest ustanawiane między źródłowym adresem IP klienta (publicznym) klienta i adresem IP punktu końcowego serwera proxy aplikacji.
  2. Łącznik sieci prywatnej ściąga żądanie HTTP klienta z usługi serwera proxy aplikacji.
  3. Łącznik sieci prywatnej łączy się z aplikacją docelową. Łącznik używa własnego adresu IP do nawiązywania połączenia.

Diagram przedstawiający łączenie użytkownika z aplikacją za pośrednictwem serwera proxy aplikacji

X-Forwarded-For header field considerations (Zagadnienia dotyczące pola nagłówka X-Forwarded-For)

W niektórych sytuacjach (takich jak inspekcja, równoważenie obciążenia itd.), udostępnianie źródłowego adresu IP klienta zewnętrznego ze środowiskiem lokalnym jest wymagane. Aby rozwiązać ten problem, łącznik sieci prywatnej firmy Microsoft dodaje pole nagłówka X-Forwarded-For z źródłowym adresem IP klienta (publicznym) do żądania HTTP. Odpowiednie urządzenie sieciowe (moduł równoważenia obciążenia, zapora) lub serwer internetowy lub aplikacja zaplecza mogą następnie odczytywać i używać tych informacji.

Najlepsze rozwiązania dotyczące równoważenia obciążenia między wieloma serwerami aplikacji

Równoważenie obciążenia jest ważne, gdy grupa łączników przypisana do aplikacji serwera proxy aplikacji ma co najmniej dwa łączniki. Równoważenie obciążenia jest również ważne w przypadku uruchamiania aplikacji internetowej zaplecza na wielu serwerach.

Scenariusz 1. Aplikacja zaplecza nie wymaga trwałości sesji

Najprostszym scenariuszem jest to, że aplikacja internetowa zaplecza nie wymaga trwałości sesji (trwałość sesji). Wystąpienie aplikacji zaplecza obsługuje żądania użytkowników w farmie serwerów. Możesz użyć modułu równoważenia obciążenia warstwy 4 i skonfigurować go bez koligacji. Niektóre opcje obejmują równoważenie obciążenia sieciowego firmy Microsoft i usługę Azure Load Balancer lub moduł równoważenia obciążenia od innego dostawcy. Alternatywnie skonfiguruj strategię systemu nazw domen okrężnych (DNS).

Scenariusz 2. Aplikacja zaplecza wymaga trwałości sesji

W tym scenariuszu aplikacja internetowa zaplecza wymaga trwałości sesji (trwałość sesji) podczas uwierzytelnionej sesji. Wystąpienie aplikacji zaplecza obsługuje żądania użytkowników. Żądania te są uruchamiane na tym samym serwerze w farmie serwerów. Ten scenariusz może być bardziej skomplikowany, ponieważ klient zwykle ustanawia wiele połączeń z usługą serwera proxy aplikacji. Żądania dotyczące różnych połączeń mogą docierać do różnych łączników i serwerów w farmie. Ponieważ każdy łącznik używa własnego adresu IP dla tej komunikacji, moduł równoważenia obciążenia nie może zapewnić przyklejenia sesji na podstawie adresu IP łączników. Nie można użyć koligacji źródłowego adresu IP. Poniżej przedstawiono kilka opcji scenariusza 2:

  • Opcja 1. Bazuj trwałość sesji na plikach cookie sesji ustawionych przez moduł równoważenia obciążenia. Ta opcja jest zalecana, ponieważ umożliwia równomierne rozłożenie obciążenia między serwerami zaplecza. Wymaga modułu równoważenia obciążenia warstwy 7 z tą funkcją i może obsługiwać ruch HTTP i przerywać połączenie TLS. Możesz użyć bramy aplikacja systemu Azure (koligacji sesji) lub modułu równoważenia obciążenia od innego dostawcy.

  • Opcja 2. Podstawą trwałości sesji w polu nagłówka X-Forwarded-For. Ta opcja wymaga modułu równoważenia obciążenia warstwy 7 z tą funkcją i może obsługiwać ruch HTTP i przerywać połączenie TLS.

  • Opcja 3. Skonfiguruj aplikację zaplecza tak, aby nie wymagała trwałości sesji.

Aby zrozumieć wymagania dotyczące równoważenia obciążenia aplikacji zaplecza, zapoznaj się z dokumentacją dostawcy oprogramowania.

Następne kroki