Tworzenie połączenia hybrydowego usługi Azure Relay

Ukończone

Usługa Azure Relay umożliwia łączenie usług ponad granicami sieci i przez zapory bez konieczności ponownego konfigurowania ustawień zabezpieczeń.

Chcesz przenieść wszystkie systemy w swojej organizacji finansowej do chmury. Jednak przepisy w Twojej jurysdykcji uniemożliwiają migrowanie usługi sprawdzania środków. Ta usługa musi pozostać w środowisku lokalnym ze względu na ochronę danych. Potrzebujesz sposobu łączenia usług w chmurze z usługą sprawdzania środków. Byłoby idealnie, gdyby nie trzeba było otwierać dodatkowych portów w zaporze lokalnej ani tworzyć wirtualnej sieci prywatnej.

W tej lekcji dowiesz się, jak usługa Azure Relay może zapewnić to połączenie.

Co to jest usługa Azure Relay?

Wiele organizacji migruje swoje systemy do chmury. Ten proces jest często wykonywany składnik po składniku w ramach podejścia etapowego. Takie podejście ogranicza wpływ problemów, które mogą wystąpić podczas migracji, ale ma własne wyzwania. Na przykład nowo zmigrowany składnik w chmurze często musi komunikować się z innym składnikiem, który pozostaje w środowisku lokalnym, ale jest chroniony przez zaporę lub inne systemy zabezpieczeń.

W innych przypadkach może się okazać, że nie można migrować usługi lokalnej do chmury. Na przykład lokalna jurysdykcja może nałożyć dodatkowe wymagania bezpieczeństwa na systemy finansowe, których nie da się spełnić w systemie chmurowym.

W takich sytuacjach lokalne usługi muszą być adresowalne z poziomu klientów internetowych lub składników w chmurze. Można otworzyć port zapory, aby umożliwić tę komunikację, ale takie podejście może mieć niezamierzone konsekwencje. Na przykład można przypadkowo uwidocznić usługi inne niż ta, o którą chodziło. W dużych organizacjach możesz nie mieć możliwości zarządzania zaporą. Zmiana w systemie zabezpieczeń może wymagać autoryzacji wysokiego poziomu, której uzyskanie może być czasochłonne.

Usługa Azure Relay rozwiązuje tego rodzaju problemy, zapewniając punkt w chmurze, w którym składniki lokalne i internetowe mogą się łączyć. To połączenie jest inicjowane przez system lokalny, dzięki czemu nie trzeba otwierać żadnych portów zapory ani zmieniać konfiguracji sieci lokalnej.

Połączenia hybrydowe i połączenia usługi Windows Communication Foundation

Usługa Azure Relay ustanawia połączenie między dwoma składnikami, takimi jak funkcja platformy Azure i usługa lokalna. Gdy połączenie zostanie nawiązane, żądania i odpowiedzi mogą być wymieniane za pośrednictwem przekaźnika, podobnie jak w przypadku połączenia bezpośredniego. W usłudze Azure Relay można tworzyć dwa typy połączeń:

  • Połączenia hybrydowe: połączenia hybrydowe to dwukierunkowe strumienie danych binarnych, które używają standardów Protokołu WebSocket lub HTTP. Ponieważ te połączenia są oparte na otwartych standardach, można ich używać w niemal dowolnym języku lub strukturze kodowania. Można ich na przykład użyć do połączenia lokalnego serwera Node.js z zadaniem internetowym platformy Azure, które jest zapisane za pomocą języka C# i platformy .NET Framework.
  • Połączenia WCF: niektórzy deweloperzy używają programu Windows Communication Foundation (WCF) do włączania zdalnych wywołań procedur. Usługa WCF była często używana do komunikacji sieciowej ze starszymi wersjami platformy .NET Framework. Usługa WCF jest obecnie traktowana jako starszy protokół, ale pozostaje w powszechnym użyciu w starszych aplikacjach. Dzięki temu, że usługa Azure Relay obsługuje usługę WCF, można jej używać z istniejącymi składnikami .NET Framework, które korzystają z tego standardu, bez konieczności ich ponownego pisania.

Jeśli nie obsługujesz istniejących składników platformy .NET Framework, które korzystają z usługi WCF, używaj połączeń hybrydowych.

Połączenia protokołu WebSocket i połączenia protokołu HTTP

Połączenia hybrydowe mogą korzystać z jednego z następujących protokołów:

  • HTTP: Ten bezstanowy protokół składa się z żądań, takich jak GET i POST, i służy do przesyłania stron internetowych między serwerami internetowymi i przeglądarkami. Zazwyczaj protokół HTTP używa portu TCP 80 lub 443, gdy żądanie jest zabezpieczone za pomocą protokołu Secure Sockets Layer. Ten protokół jest szeroko obsługiwany i łatwo go uwzględnić w kodzie. Jednak ze względu na to, że jest bezstanowy, jest mniej wydajny w przypadku komunikacji trwałej.
  • WebSocket: ten protokół tworzy pełny dwukierunkowy kanał komunikacyjny przez port 80 lub 443, który jest bardziej wydajny niż bezstanowy protokół HTTP. Połączenie protokołu WebSocket jest szczególnie wydajne, gdy komunikacja zawiera wiele komunikatów, a nie tylko jedno żądanie i odpowiedź.

W tym module, ponieważ proces jest prostym żądaniem sprawdzenia środków, po którym następuje pojedyncza odpowiedź, należy użyć połączenia hybrydowego i protokołu HTTP.

Jak działa usługa Azure Relay

Ze względu na to, że zarówno składniki hostowane w chmurze, jak i lokalne, inicjują połączenie z usługą Azure Relay, zapory lokalne nie interweniują. Po ustanowieniu połączenia komunikacja może być wysyłana w obu kierunkach.

Na poniższym diagramie pokazano, jak jest nawiązywane połączenie:

Diagram showing how Azure Relay exchanges messages.

  1. Klient nasłuchujący wysyła żądanie nasłuchiwania do usługi Azure Relay. Moduł równoważenia obciążenia platformy Azure przekierowuje żądanie do jednego z węzłów bramy.
  2. Usługa Azure Relay tworzy przekaźnik w magazynie bramy.
  3. Klient wysyłający wysyła żądanie nawiązania połączenia z usługą nasłuchiwania.
  4. Brama odbierająca żądanie wyszukuje przekaźnik w magazynie bramy.
  5. Brama przekierowuje żądanie połączenia do odpowiedniej bramy wspomnianej w magazynie bramy.
  6. Brama wysyła żądanie do klienta nasłuchującego tej bramy, aby utworzyć tymczasowy kanał do węzła bramy, który znajduje się najbliżej klienta wysyłającego.
  7. Klient nasłuchujący tworzy tymczasowy kanał w bramie znajdującej się najbliżej klienta wysyłającego. Po nawiązaniu połączenia między klientami za pośrednictwem bramy klienci mogą wymieniać między sobą komunikaty.
  8. Brama przekazuje wszelkie komunikaty od klienta nasłuchiwania do klienta wysyłającego.
  9. Brama przesyła dalej komunikaty z klienta wysyłającego do klienta nasłuchującego.

Jak utworzyć przekaźnik

Aby utworzyć przekaźnik, potrzebna jest przestrzeń nazw, która jest unikatowa w domenie servicebus.windows.net. Należy również określić subskrypcję, grupę zasobów i lokalizację dla przekaźnika, która powinna znajdować się w pobliżu większości klientów.

Aby kontrolować działania, które mogą wykonywać klienci po nawiązaniu połączenia, użyj zasad dostępu współużytkowanego. Za pomocą tych zasad możesz zezwalać klientom na wysyłanie komunikatów do przekaźnika lub odczytywanie komunikatów z przekaźnika. Każda zasada dostępu współużytkowanego ma klucz podstawowy i pomocniczy. Aby nawiązać połączenie z przekaźnikiem, każdy klient musi podać jeden z tych kluczy.

Na koniec należy utworzyć połączenie w przestrzeni nazw. Może to być połączenie hybrydowe lub połączenie usługi WCF.