Publikowanie wewnętrznych interfejsów API dla użytkowników zewnętrznych

Azure API Management
Azure Application Gateway
Azure DevOps
Azure Monitor
Azure Virtual Network

W tym scenariuszu organizacja konsoliduje wiele interfejsów API wewnętrznie przy użyciu usługi Azure API Management wdrożonej w sieci wirtualnej.

Architektura

Diagram architektury przedstawiający pełny cykl życia wewnętrznych interfejsów API używanych przez użytkowników zewnętrznych.

Pobierz plik programu Visio z tą architekturą.

Powyższy diagram obejmuje pełny cykl życia wewnętrznych interfejsów API używanych przez użytkowników zewnętrznych.

Przepływ danych

Dane przepływa w następujący sposób:

  1. Deweloperzy sprawdzają kod w repozytorium GitHub połączonym z agentem potoku ciągłej integracji/ciągłego wdrażania zainstalowanym na maszynie wirtualnej platformy Azure.
  2. Agent wypycha kompilację do aplikacji interfejsu API hostowanej w środowisku App Service Environment modułu równoważenia obciążenia.
  3. Usługa Azure API Management korzysta z powyższych interfejsów API za pośrednictwem nagłówków HOST określonych w zasadach usługi API Management.
  4. Usługa API Management używa nazwy DNS środowiska App Service Environment dla wszystkich interfejsów API.
  5. Usługa Application Gateway uwidacznia portal deweloperów i interfejsów API usługi API Management.
  6. Usługa Azure Prywatna strefa DNS służy do kierowania ruchu wewnętrznie między środowiskiem App Service Environment, usługą API Management i usługą Application Gateway.
  7. Użytkownicy zewnętrzni korzystają z uwidocznionego portalu dla deweloperów, aby korzystać z interfejsów API za pośrednictwem publicznego adresu IP usługi Application Gateway.

Składniki

  • Usługa Azure Virtual Network umożliwia zasobom platformy Azure bezpieczne komunikowanie się ze sobą, Internetem i sieciami lokalnymi.
  • Usługa Azure Prywatna strefa DNS umożliwia rozpoznawanie nazw domen w sieci wirtualnej bez konieczności dodawania niestandardowego rozwiązania DNS.
  • Usługa Azure API Management ułatwia organizacjom publikowanie interfejsów API dla deweloperów zewnętrznych, partnerskich i wewnętrznych w celu korzystania z ich danych i usług.
  • Application Gateway to moduł równoważenia obciążenia ruchu internetowego, który ułatwia zarządzanie ruchem do aplikacji internetowych.
  • Wewnętrzne środowisko App Service Environment modułu równoważenia obciążenia to funkcja usługi aplikacja systemu Azure, która zapewnia w pełni izolowane i dedykowane środowisko do bezpiecznego uruchamiania aplikacji usługi App Service na dużą skalę.
  • Azure DevOps to usługa do zarządzania cyklem projektowania i obejmuje funkcje planowania i zarządzania projektami, zarządzania kodem, kompilowania i wydawania.
  • Application Insights to rozszerzalna usługa zarządzania wydajnością aplikacji (APM) dla deweloperów sieci Web na wielu platformach.
  • Azure Cosmos DB to globalnie rozproszona, wielomodelowa usługa bazy danych firmy Microsoft.

Alternatywy

  • W scenariuszu "lift and shift" platformy Azure wdrożonym w sieci wirtualnej platformy Azure serwery zaplecza mogą być bezpośrednio rozwiązane za pośrednictwem prywatnych adresów IP.
  • Jeśli korzystasz z zasobów lokalnych, wystąpienie usługi API Management może wrócić do usługi wewnętrznej prywatnie za pośrednictwem usługi Azure VPN Gateway i połączenia sieci VPN protokołu INTERNET Protocol Security (IPSec) typu lokacja-lokacja lub usługi ExpressRoute , tworząc hybrydowy scenariusz platformy Azure i środowiska lokalnego.
  • Istniejących lub open source dostawców DNS można użyć zamiast usługi DNS opartej na platformie Azure.
  • Wewnętrzne interfejsy API wdrożone poza platformą Azure mogą nadal korzystać, ujawniając interfejsy API za pośrednictwem usługi API Management.

Szczegóły scenariusza

W tym scenariuszu organizacja hostuje wiele interfejsów API przy użyciu środowiska usługi aplikacja systemu Azure (ILB App Service Environment) i chce skonsolidować te interfejsy API wewnętrznie przy użyciu usługi Azure API Management (APIM) wdrożonej wewnątrz sieci wirtualnej. Wewnętrzne wystąpienie usługi API Management może być również uwidocznione dla użytkowników zewnętrznych, aby umożliwić wykorzystanie pełnego potencjału interfejsów API. Ta zewnętrzna ekspozycja może zostać osiągnięta przy użyciu usługi aplikacja systemu Azure Gateway przekazujących żądania do wewnętrznej usługi API Management, która z kolei korzysta z interfejsów API wdrożonych w środowisku App Service Environment.

  • Internetowe interfejsy API są hostowane za pośrednictwem zabezpieczonego protokołu HTTPS i będą używać certyfikatu TLS.
  • Brama aplikacji jest również skonfigurowana za pośrednictwem portu 443 na potrzeby zabezpieczonych i niezawodnych wywołań wychodzących.
  • Usługa API Management jest skonfigurowana do używania domen niestandardowych przy użyciu certyfikatów TLS.
  • Zapoznaj się z sugerowaną konfiguracją sieci dla środowisk App Service Environment
  • Należy wyraźnie wspomnieć o porcie 3443, który umożliwia usłudze API Management zarządzanie za pośrednictwem witryny Azure Portal lub programu PowerShell.
  • Użyj zasad w usłudze APIM, aby dodać nagłówek HOST dla interfejsu API hostowanego w środowisku App Service Environment. Dzięki temu moduł równoważenia obciążenia środowiska App Service Environment prawidłowo przekaże żądanie.
  • Usługa API Management akceptuje wpis DNS środowiska App Service Environment dla wszystkich aplikacji hostowanych w obszarze App Service Environment. Dodaj zasady usługi APIM, aby jawnie ustawić nagłówek HOST, aby umożliwić modułowi równoważenia obciążenia środowiska App Service Environment rozróżnienie między aplikacjami w środowisku App Service Environment.
  • Rozważ integrację z usługą aplikacja systemu Azure Insights, która udostępnia również metryki za pośrednictwem usługi Azure Monitor na potrzeby monitorowania.
  • Jeśli używasz potoków ciągłej integracji/ciągłego wdrażania do wdrażania wewnętrznych interfejsów API, rozważ utworzenie własnego agenta hostowanego na maszynie wirtualnej wewnątrz sieci wirtualnej.

Potencjalne przypadki użycia

  • Synchronizuj informacje o adresie klienta wewnętrznie po wprowadzeniu zmiany przez klienta.
  • Przyciągaj deweloperów do swojej platformy, ujawniając unikatowe zasoby danych.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

Dostępność

Usługę Azure API Management można wdrożyć jako wdrożenie w wielu regionach w celu zwiększenia dostępności, a także zmniejszyć opóźnienia. Ta funkcja jest dostępna tylko w trybie Premium. Usługa API Management w tym konkretnym scenariuszu korzysta z interfejsów API ze środowisk App Service Environment. Możesz również użyć usługi APIM dla interfejsów API hostowanych w wewnętrznej infrastrukturze lokalnej.

Środowiska App Service Environment mogą używać profilów usługi Traffic Manager do dystrybucji ruchu hostowanego w środowiskach App Service Environment w celu zwiększenia skali i dostępności.

Odporność

Chociaż w tym przykładowym scenariuszu omówiono więcej informacji na temat konfiguracji, interfejsy API hostowane w środowiskach App Service Environment powinny być wystarczająco odporne, aby obsługiwać błędy w żądaniach, które ostatecznie są zarządzane przez usługę API Management i usługę Application Gateway. Rozważ użycie wzorców ponawiania prób i wyłącznika w projekcie interfejsu API. Aby uzyskać ogólne wskazówki dotyczące projektowania odpornych rozwiązań, zobacz Projektowanie odpornych aplikacji na platformie Azure.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Ponieważ poprzedni przykładowy scenariusz jest hostowany całkowicie w sieci wewnętrznej, usługi API Management i App Service Environment są już wdrażane w zabezpieczonej infrastrukturze (Azure Virtual Network). Usługę Application Gateway można zintegrować z Microsoft Defender dla Chmury, aby zapewnić bezproblemowy sposób zapobiegania zagrożeniom, wykrywania ich i reagowania na nie. Ogólne wskazówki dotyczące projektowania bezpiecznych rozwiązań można znaleźć w dokumentacji zabezpieczeń platformy Azure.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Usługa API Management jest oferowana w czterech warstwach: deweloper, podstawowy, standardowy i premium. Szczegółowe wskazówki dotyczące różnic w tych warstwach można znaleźć na stronie Wskazówki dotyczące cen usługi Azure API Management tutaj.

Klienci mogą skalować usługę API Management, dodając i usuwając jednostki. Każda jednostka ma pojemność zależną od jej warstwy.

Uwaga

Warstwę Deweloper można użyć do oceny funkcji usługi API Management. Nie należy używać warstwy Deweloper w środowisku produkcyjnym.

Aby wyświetlić przewidywane koszty i dostosować się do potrzeb związanych z wdrożeniem, możesz zmodyfikować liczbę jednostek skalowania i wystąpień usługi App Service w kalkulatorze cen platformy Azure.

Podobnie można znaleźć wskazówki dotyczące cennika środowiska App Service Environment.

Ceny usługi Application Gateway można skonfigurować w zależności od wymaganej warstwy i zasobów.

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

Skalowalność

Wystąpienia usługi API Management można skalować w poziomie w zależności od wielu czynników, takich jak liczba i szybkość współbieżnych połączeń, rodzaj i liczba skonfigurowanych zasad, rozmiary żądań i odpowiedzi oraz opóźnienia zaplecza w interfejsach API. Opcje skalowania wystąpienia w poziomie są dostępne w warstwach Podstawowa, Standardowa i Premium, ale są ograniczone przez górny limit skalowania w warstwach Podstawowa i Standardowa. Wystąpienia są określane jako jednostki i mogą być skalowane w górę do maksymalnie dwóch jednostek w warstwie Podstawowa, cztery jednostki w warstwie Standardowa i dowolna liczba jednostek w warstwie Premium. Dostępne są również opcje automatycznego skalowania w celu włączenia skalowania w poziomie na podstawie reguł.

Środowiska App Service Environment są przeznaczone do skalowania z limitami opartymi na warstwie cenowej. Aplikacje hostowane w środowiskach App Service Environment można skonfigurować pod kątem skalowania w poziomie (liczby wystąpień) lub skalowania w górę (rozmiar wystąpienia) w zależności od wymagań aplikacji.

aplikacja systemu Azure skalowanie automatyczne bramy jest dostępne jako część jednostki SKU strefowo nadmiarowej we wszystkich globalnych regionach świadczenia usługi Azure. Zobacz publiczną funkcję w wersji zapoznawczej dotyczącą automatycznego skalowania bramy aplikacji.

Wdrażanie tego scenariusza

Wymagania wstępne i założenia

  1. Musisz kupić niestandardową nazwę domeny.
  2. Potrzebujesz certyfikatu TLS (użyliśmy certyfikatu wieloznakowego z usługi Certyfikaty platformy Azure), aby użyć go dla wszystkich naszych domen niestandardowych. Możesz również uzyskać certyfikat z podpisem własnym dla scenariuszy tworzenia testów deweloperskich.
  3. To konkretne wdrożenie używa nazwy domeny contoso.org i wieloznaczny certyfikat TLS dla domeny.
  4. Wdrożenie używa nazw zasobów i przestrzeni adresowych wymienionych w sekcji Wdrażanie. Nazwy zasobów i przestrzenie adresowe można skonfigurować.

Wdrażanie i łączenie elementów

Wdróż na platformie Azure

Należy jeszcze bardziej skonfigurować składniki wdrożone przy użyciu poprzedniego szablonu usługi Resource Manager w następujący sposób:

  1. Sieć wirtualna z następującymi konfiguracjami:

    • Nazwa: ase-internal-vnet
    • Przestrzeń adresowa dla sieci wirtualnej: 10.0.0.0/16
    • Cztery podsieci
      • backendSubnet dla usługi DNS: 10.0.0.0/24
      • apimsubnet Dla wewnętrznej usługi API Management: 10.0.1.0/28
      • asesubnet dla środowiska app service modułu równoważenia obciążenia: 10.0.2.0/24
      • Podsieć VMSubnet dla testowych maszyn wirtualnych i wewnętrznej maszyny wirtualnej hostowanego agenta DevOps: 10.0.3.0/24
  2. Prywatna strefa DNS usługi (publiczna wersja zapoznawcza), ponieważ dodanie usługi DNS wymaga, aby sieć wirtualna byłaby pusta.

    • Aby uzyskać więcej informacji, zapoznaj się z wytycznymi dotyczącymi wdrażania
  3. Środowisko App Service Environment z opcją aseinternal wewnętrznego modułu równoważenia obciążenia (ILB): (DNS: aseinternal.contoso.org). Po zakończeniu wdrażania przekaż certyfikat wieloznaczny dla modułu równoważenia obciążenia

  4. Plan usługi App Service ze środowiskiem App Service Environment jako lokalizacją

  5. Aplikacja interfejsu API (app service dla uproszczenia) — srasprest (adres URL: https://srasprest.contoso.org) — ASP.NET model-view-controller (MVC) oparty na internetowym interfejsie API. Po wdrożeniu skonfiguruj następujące elementy:

    • Aplikacja internetowa do korzystania z certyfikatu TLS
    • Usługa Application Insights do poprzednich aplikacji: api-insights
    • Utwórz usługę Azure Cosmos DB dla internetowych interfejsów API hostowanych wewnętrznie w sieci wirtualnej: noderestapidb
    • Tworzenie wpisów DNS w utworzonej strefie usługi Azure Prywatna strefa DNS
    • Za pomocą usługi Azure Pipelines można skonfigurować agentów na maszynach wirtualnych w celu wdrożenia kodu aplikacji internetowej w sieci wewnętrznej
    • Aby przetestować aplikację interfejsu API wewnętrznie, utwórz testową maszynę wirtualną w podsieci sieci wirtualnej
  6. Tworzenie usługi API Management: apim-internal

  7. Skonfiguruj usługę w celu nawiązania połączenia z wewnętrzną siecią wirtualną w podsieci: apimsubnet. Po zakończeniu wdrażania wykonaj następujące dodatkowe kroki:

    • Konfigurowanie domen niestandardowych dla usług APIM Przy użyciu protokołu TLS
      • Portal interfejsu API (api.contoso.org)
      • Portal deweloperski (portal.contoso.org)
      • W sekcji Interfejsy API skonfiguruj aplikacje środowiska App Service Environment przy użyciu nazwy DNS środowiska App Service Environment dodane zasady nagłówka HOSTA dla aplikacji internetowej
      • Użyj poprzedniej utworzonej testowej maszyny wirtualnej, aby przetestować wewnętrzną usługę API Management w sieci wirtualnej

    Uwaga

    Testowanie interfejsów API USŁUGI APIM z witryny Azure Portal nie będzie działać, ponieważ api.contoso.org nie można publicznie rozwiązać problemu.*

  8. Skonfiguruj bramę aplikacji, aby uzyskać dostęp do usługi interfejsu API: apim-gateway na porcie 80. Dodaj certyfikaty TLS do bramy aplikacji oraz odpowiednie sondy kondycji i ustawienia PROTOKOŁU HTTP. Skonfiguruj również reguły i odbiorniki do używania certyfikatu TLS.

Po pomyślnym ukończeniu powyższych kroków skonfiguruj wpisy DNS w wpisach api.contoso.org CNAME rejestratora sieci Web i portal.contoso.org przy użyciu publicznej nazwy DNS usługi Application Gateway: ase-appgtwy.westus.cloudapp.azure.com. Sprawdź, czy możesz uzyskać dostęp do portalu deweloperskiego z witryny Publiczne i czy możesz przetestować interfejsy API usług APIM przy użyciu witryny Azure Portal.

Uwaga

Nie dobrym rozwiązaniem jest użycie tego samego adresu URL dla wewnętrznych i zewnętrznych punktów końcowych usług APIM.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następującego współautora.

Główny autor:

Inni współautorzy:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Migrowanie aplikacji internetowej przy użyciu usługi Azure API Management