Testowanie prywatnych punktów końcowych przez wdrożenie testowania obciążenia platformy Azure w sieci wirtualnej platformy Azure
Z tego artykułu dowiesz się, jak testować prywatne punkty końcowe aplikacji przy użyciu usługi Azure Load Testing. Utworzysz zasób usługi Azure Load Testing i włączysz go do generowania obciążenia z poziomu sieci wirtualnej (iniekcja sieci wirtualnej).
Ta funkcja umożliwia realizowanie następujących scenariuszy użycia:
- Generowanie obciążenia dla punktu końcowego wdrożonego w sieci wirtualnej platformy Azure.
- Generowanie obciążenia dla publicznego punktu końcowego z ograniczeniami dostępu, takimi jak ograniczanie adresów IP klientów.
- Generowanie obciążenia dla usługi lokalnej, która nie jest publicznie dostępna i jest połączona z platformą Azure za pośrednictwem usługi ExpressRoute.
Dowiedz się więcej na temat scenariuszy wdrażania testowania obciążenia platformy Azure w sieci wirtualnej.
Poniższy diagram zawiera omówienie techniczne:
Po uruchomieniu testu obciążeniowego usługa Azure Load Testing wprowadza następujące zasoby platformy Azure w sieci wirtualnej zawierającej punkt końcowy aplikacji:
- Maszyny wirtualne aparatu testowego. Te maszyny wirtualne wywołują punkt końcowy aplikacji podczas testu obciążeniowego.
- Publiczny adres IP.
- Sieciowa grupa zabezpieczeń.
- Usługa Azure Load Balancer.
Te zasoby są efemeryczne i istnieją tylko wtedy, gdy test obciążeniowy jest uruchomiony. Jeśli masz ograniczenia dotyczące wdrażania publicznego adresu IP, modułu równoważenia obciążenia platformy Azure lub sieciowej grupy zabezpieczeń w podsieci, możesz wyłączyć wdrażanie tych zasobów. Aby uzyskać więcej informacji, zobacz Konfigurowanie testu obciążeniowego.
Jeśli ograniczysz dostęp do sieci wirtualnej, musisz skonfigurować sieć wirtualną, aby umożliwić komunikację między tymi testami obciążeniowymi platformy Azure i wstrzykniętymi maszynami wirtualnymi.
Wymagania wstępne
- Twoje konto platformy Azure ma rolę Współautor sieci lub rolę nadrzędną tej roli w sieci wirtualnej. Aby zweryfikować swoje uprawnienia, zobacz Sprawdzanie dostępu użytkownika do zasobów platformy Azure.
- Podsieć używana na potrzeby testowania obciążenia platformy Azure musi mieć wystarczającą liczbę nieprzypisanych adresów IP, aby pomieścić liczbę aparatów testów obciążeniowych na potrzeby testu. Dowiedz się więcej na temat konfigurowania testu pod kątem obciążenia na dużą skalę.
- Podsieć nie powinna być delegowana do żadnej innej usługi platformy Azure. Na przykład nie powinno być delegowane do usługi Azure Container Instances (ACI). Dowiedz się więcej o delegowaniu podsieci.
- Podsieć nie powinna mieć włączonego protokołu IPv6. Testowanie obciążenia platformy Azure nie obsługuje podsieci z obsługą protokołu IPv6. Dowiedz się więcej o [IPv6 dla usługi Azure Virtual Network]. (/azure/virtual-network/ip-services/ipv6-overview)
- Interfejs wiersza polecenia platformy Azure w wersji 2.2.0 lub nowszej (jeśli używasz ciągłej integracji/ciągłego wdrażania). Uruchom polecenie
az --version
, aby znaleźć wersję zainstalowaną na komputerze. Jeśli musisz zainstalować lub uaktualnić interfejs wiersza polecenia platformy Azure, zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure.
Konfigurowanie sieci wirtualnej
Aby przetestować prywatne punkty końcowe, należy połączyć testowanie obciążenia platformy Azure z siecią wirtualną platformy Azure. Sieć wirtualna powinna mieć co najmniej jedną podsieć i zezwalać na ruch wychodzący do usługi Azure Load Testing.
Jeśli nie masz jeszcze sieci wirtualnej, wykonaj następujące kroki, aby utworzyć sieć wirtualną platformy Azure w witrynie Azure Portal.
Ważne
Sieć wirtualna musi znajdować się w tej samej subskrypcji i tym samym regionie co zasób testowania obciążenia.
Tworzenie podsieci
Podczas wdrażania testowania obciążenia platformy Azure w sieci wirtualnej zaleca się używanie oddzielnych podsieci na potrzeby testowania obciążenia platformy Azure i punktu końcowego aplikacji. Takie podejście umożliwia skonfigurowanie zasad dostępu do ruchu sieciowego specjalnie dla każdego celu. Dowiedz się więcej o dodawaniu podsieci do sieci wirtualnej.
(Opcjonalnie) Konfigurowanie reguł ruchu
Testowanie obciążenia platformy Azure wymaga, aby wstrzyknięte maszyny wirtualne w sieci wirtualnej mogły uzyskiwać dostęp wychodzący do usługi Azure Load Testing. Domyślnie podczas tworzenia sieci wirtualnej dostęp wychodzący jest już dozwolony.
Jeśli planujesz jeszcze bardziej ograniczyć dostęp do sieci wirtualnej za pomocą sieciowej grupy zabezpieczeń lub jeśli masz już sieciową grupę zabezpieczeń, musisz skonfigurować regułę zabezpieczeń ruchu wychodzącego, aby zezwolić na ruch z maszyn wirtualnych aparatu testowego do usługi Testowania obciążenia platformy Azure.
Aby skonfigurować dostęp wychodzący na potrzeby testowania obciążenia platformy Azure:
Zaloguj się w witrynie Azure Portal.
Przejdź do sieciowej grupy zabezpieczeń.
Jeśli nie masz jeszcze sieciowej grupy zabezpieczeń, wykonaj następujące kroki, aby utworzyć sieciową grupę zabezpieczeń.
Utwórz sieciową grupę zabezpieczeń w tym samym regionie co sieć wirtualna, a następnie skojarz ją z podsiecią.
Wybierz pozycję Reguły zabezpieczeń dla ruchu wychodzącego w obszarze nawigacji po lewej stronie.
Wybierz pozycję + Dodaj, aby dodać nową regułę zabezpieczeń dla ruchu wychodzącego. Wprowadź następujące informacje, aby utworzyć nową regułę.
Pole Wartość Source Dowolne Zakresy portów źródłowych * Lokalizacja docelowa Dowolne Zakresy portów docelowych * Nazwa/nazwisko azure-load-testing-outbound Opis Służy do różnych operacji związanych z organizowaniem testów obciążeniowych. Wybierz pozycję Dodaj , aby dodać regułę zabezpieczeń dla ruchu wychodzącego do sieciowej grupy zabezpieczeń.
Konfigurowanie skryptu testu obciążeniowego
Maszyny wirtualne aparatu testowego, które uruchamiają skrypt JMeter, są wstrzykiwane do sieci wirtualnej zawierającej punkt końcowy aplikacji. Teraz możesz odwoływać się bezpośrednio do punktu końcowego w pliku JMX przy użyciu prywatnego adresu IP lub użyć rozpoznawania nazw w sieci.
Na przykład w przypadku punktu końcowego z adresem IP 10.179.0.7 w sieci wirtualnej z zakresem podsieci 10.179.0.0/18 plik JMX może zawierać następujące informacje:
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Internal service homepage" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Service homepage" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">10.179.0.7</stringProp>
<stringProp name="HTTPSampler.port">8081</stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
</HTTPSamplerProxy>
Konfigurowanie testu obciążeniowego
Aby uwzględnić prywatnie hostowane punkty końcowe w teście obciążeniowym, należy skonfigurować ustawienia sieci wirtualnej dla testu obciążeniowego. Ustawienia sieci wirtualnej można skonfigurować w witrynie Azure Portal lub określić w pliku konfiguracji testu YAML dla potoków ciągłej integracji/ciągłego wdrażania.
Ważne
Podczas wdrażania testowania obciążenia platformy Azure w sieci wirtualnej zostaną naliczone dodatkowe opłaty. Testowanie obciążenia platformy Azure wdraża usługę Azure Load Balancer i publiczny adres IP w ramach subskrypcji i może być kosztem wygenerowanego ruchu. Aby uzyskać więcej informacji, zobacz informacje o cenach sieci wirtualnej.
Konfigurowanie sieci wirtualnej w witrynie Azure Portal
Ustawienia konfiguracji sieci wirtualnej można określić w kreatorze tworzenia/aktualizowania testów obciążeniowych.
Zaloguj się do witryny Azure Portal przy użyciu poświadczeń subskrypcji platformy Azure.
Przejdź do zasobu usługi Azure Load Testing i wybierz pozycję Testy w okienku po lewej stronie.
Otwórz kreatora tworzenia/aktualizacji testu obciążeniowego na jeden z dwóch sposobów:
Wybierz pozycję + Utwórz > skrypt JMeter, jeśli chcesz utworzyć nowy test.
Wybierz istniejący test z listy, a następnie wybierz pozycję Edytuj.
Na karcie Ładowanie wybierz pozycję Tryb ruchu prywatnego, a następnie wybierz sieć wirtualną i podsieć.
Jeśli masz wiele podsieci w sieci wirtualnej, upewnij się, że wybrano podsieć, która będzie hostować wstrzyknięte maszyny wirtualne aparatu testowego.
Ważne
Upewnij się, że masz wystarczające uprawnienia do zarządzania sieciami wirtualnymi. Wymagana jest rola Współautor sieci.
(Opcjonalnie) Sprawdź opcję Wyłącz wdrożenie publicznego adresu IP, jeśli nie chcesz wdrażać publicznego adresu IP, modułu równoważenia obciążenia i sieciowej grupy zabezpieczeń w podsieci.
Po wybraniu tej opcji upewnij się, że istnieje alternatywny mechanizm, taki jak usługa Azure NAT Gateway, usługa Azure Firewall lub wirtualne urządzenie sieciowe (WUS), aby włączyć routing ruchu wychodzącego z podsieci.
Przejrzyj lub wypełnij informacje o teście obciążeniowym. Wykonaj następujące kroki, aby utworzyć test lub zarządzać nim.
Wybierz pozycję Przejrzyj i utwórz , a następnie pozycję Utwórz (lub Zastosuj) podczas aktualizowania istniejącego testu.
Po uruchomieniu testu obciążeniowego usługa Azure Load Testing wprowadza maszyny wirtualne aparatu testowego w sieci wirtualnej i podsieci. Skrypt testowy może teraz uzyskać dostęp do prywatnego punktu końcowego aplikacji hostowanej w sieci wirtualnej.
Konfigurowanie sieci wirtualnej dla potoków ciągłej integracji/ciągłego wdrażania
Aby skonfigurować test obciążeniowy przy użyciu ustawień sieci wirtualnej, zaktualizuj plik konfiguracji testu YAML.
Otwórz terminal i użyj interfejsu wiersza polecenia platformy Azure, aby zalogować się do subskrypcji platformy Azure:
az login az account set --subscription <your-Azure-Subscription-ID>
Pobierz identyfikator podsieci i skopiuj wynikowej wartości:
az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
Otwórz plik konfiguracji testu YAML w ulubionym edytorze.
subnetId
Dodaj właściwość do pliku konfiguracji i podaj skopiowany wcześniej identyfikator podsieci:version: v0.1 testName: SampleTest testPlan: SampleTest.jmx description: 'Load test the website home page' engineInstances: 1 subnetId: <your-subnet-id> publicIPDisabled: False
Opcjonalnie możesz ustawić
publicIPDisabled
właściwość naTrue
. Aby uzyskać więcej informacji na temat konfiguracji YAML, zobacz dokumentację dotyczącą konfiguracji testowej YAML.Ważne
Upewnij się, że masz wystarczające uprawnienia do zarządzania sieciami wirtualnymi. Wymagana jest rola Współautor sieci.
Zapisz plik konfiguracji YAML i zatwierdź zmiany w repozytorium kodu źródłowego.
Po wyzwoleniu przepływu pracy ciągłej integracji/ciągłego wdrażania test obciążeniowy zostanie uruchomiony i będzie mógł teraz uzyskać dostęp do prywatnego punktu końcowego aplikacji hostowanej w sieci wirtualnej.
Rozwiązywanie problemów
Aby rozwiązać problemy z tworzeniem i uruchamianiem testów obciążeniowych dla prywatnych punktów końcowych, zobacz , jak rozwiązywać problemy z testami prywatnego punktu końcowego.
Następne kroki
- Dowiedz się więcej na temat scenariuszy wdrażania testowania obciążenia platformy Azure w sieci wirtualnej.
- Dowiedz się, jak rozwiązywać problemy z prywatnymi testami punktów końcowych.