Udostępnij za pośrednictwem


Podstawowa integracja przedsiębiorstwa w Azure

Tożsamość Microsoft Entra
Usługa Azure API Management
Usługa DNS platformy Azure
Azure Logic Apps
Azure Monitor

Ta architektura referencyjna używa Azure Integration Services do organizowania wywołań systemów zaplecza przedsiębiorstwa. Systemy zaplecza mogą obejmować systemy oprogramowania jako usługi (SaaS), usługi Azure lub istniejące usługi internetowe w przedsiębiorstwie. Usługi Integration Services obejmują kilka składników, w tym Azure Logic Apps, Azure API Management, Azure Service Bus, Azure Event Grid, Azure Functions i Azure Data Factory. Ta podstawowa architektura używa tylko usług Logic Apps i API Management.

Architektura

Diagram architektury przedstawiający prostą integrację przedsiębiorstwa.

Pobierz plik Visio tej architektury.

Przepływ danych

Poniższy przepływ danych odpowiada poprzedniemu diagramowi:

  1. Aplikacja jest klientem, który po uwierzytelnieniu za pomocą Microsoft Entra ID wywołuje bramę API. Aplikacja może być aplikacją internetową, aplikacją mobilną lub dowolnym innym klientem, który wysyła żądania HTTP.

  2. Microsoft Entra ID uwierzytelnia aplikację kliencą. Aplikacja kliencka uzyskuje token dostępu z Microsoft Entra ID i dołącza go do żądania do bramy interfejsu API.

  3. Usługa API Management składa się z dwóch powiązanych składników:

    • Brama API akceptuje wywołania HTTP z aplikacji klienckiej, weryfikuje token z Microsoft Entra ID i przekazuje żądanie do usługi zaplecza. Brama interfejsu API może również przekształcać żądania i odpowiedzi oraz buforować odpowiedzi.

    • Deweloperzy używają portalu deweloperów do odnajdywania interfejsów API i korzystania z nich. Portal dla deweloperów można dostosować tak, aby był zgodny z marką organizacji.

  4. Aplikacje logiki orkiestrują wywołania usług zaplecza. Różne zdarzenia mogą wyzwalać aplikacje logiki, a aplikacje logiki mogą wywoływać różne usługi. W tej architekturze usługa Logic Apps wywołuje usługi zaplecza i zapewnia łączność za pośrednictwem łączników, co zmniejsza zapotrzebowanie na kod niestandardowy.

  5. Usługi zaplecza mogą być dowolną aplikacją usługową lub biznesową (LOB), na przykład bazą danych, usługą internetową lub aplikacją SaaS. Mogą być hostowane w Azure lub lokalnie.

Składniki

  • Integration Services to kolekcja usług, których można używać do integrowania aplikacji, danych i procesów. To rozwiązanie korzysta z dwóch z tych usług:

    • Logic Apps to bezserwerowa platforma do tworzenia przepływów pracy przedsiębiorstwa, które integrują aplikacje, dane i usługi. W tej architekturze usługa Logic Apps ułatwia integrację opartą na komunikatach między systemami, organizuje wywołania usług zaplecza i zapewnia łączność za pośrednictwem łączników. Takie podejście zmniejsza zapotrzebowanie na kod niestandardowy.

    • USŁUGA API Management to zarządzana usługa do publikowania wykazów interfejsów API HTTP. Możesz go użyć do promowania ponownego użycia i łatwego odnajdywania API oraz wdrożenia bramy API do obsługi żądań API. Usługa API Management udostępnia również portal dla deweloperów, który umożliwia klientom odnajdywanie interfejsów API i interakcję z nimi. W tej architekturze usługa API Management udostępnia fasadę usług zaplecza, które zapewniają klientom spójny interfejs. Zapewnia również możliwości, takie jak ograniczanie szybkości, uwierzytelnianie i buforowanie do usług zaplecza.

  • Azure DNS jest usługą hostingu dla domen systemu nazw domen (DNS). W tej architekturze Azure DNS hostuje publiczne rekordy DNS dla usługi API Management. W przypadku hostowania DNS klienci rozpoznają nazwę DNS na adres IP usługi API Management.

  • Microsoft Entra ID to oparta na chmurze usługa zarządzania tożsamościami i dostępem. Pracownicy przedsiębiorstwa mogą uzyskiwać dostęp do zasobów zewnętrznych i wewnętrznych przy użyciu Microsoft Entra ID. W tej architekturze Microsoft Entra ID zabezpiecza usługę API Management przy użyciu OAuth 2.0 i portalu deweloperów przy użyciu Microsoft Entra External ID.

  • Azure Key Vault to usługa w chmurze do bezpiecznego przechowywania wpisów tajnych, kluczy szyfrowania i certyfikatów oraz zarządzania nimi. W tej architekturze Key Vault zapewnia scentralizowany magazyn danych poufnych dla usług Logic Apps i API Management.

Szczegóły scenariusza

Integration Services to zbiór usług, których można używać do integrowania aplikacji, danych i procesów dla przedsiębiorstwa. Ta architektura używa usługi Logic Apps do organizowania przepływów pracy i usługi API Management w celu tworzenia wykazów interfejsów API.

W tej architekturze tworzysz złożone interfejsy API, importując aplikacje logiczne jako interfejsy API. Istniejące usługi internetowe można również zaimportować, importując specyfikacje interfejsu OpenAPI (Swagger) lub importując interfejsy API protokołu SOAP ze specyfikacji języka WSDL (Web Services Description Language).

Brama interfejsu API ułatwia oddzielenie klientów front-endowych od zaplecza. Może na przykład ponownie napisać adresy URL lub przekształcić żądania, zanim dotrą do zaplecza. Obsługuje również zagadnienia przekrojowe, takie jak uwierzytelnianie, obsługa współdzielenia zasobów między źródłami (CORS) i buforowanie odpowiedzi.

Potencjalne przypadki użycia

Ta architektura jest wystarczająca w przypadku podstawowych scenariuszy integracji, w których synchroniczne wywołania usług zaplecza wyzwalają przepływ pracy. Bardziej zaawansowana architektura wykorzystująca kolejki i zdarzenia opiera się na tej podstawowej architekturze. Aby zapewnić większą niezawodność i skalowalność, użyj kolejek komunikatów i zdarzeń, aby rozdzielić systemy zaplecza.

Zalecenia

Poniższe zalecenia można zastosować do większości scenariuszy. Należy się do nich stosować, jeśli nie ma konkretnych wymagań, które byłyby z nimi sprzeczne.

API Management

Usługa API Management ma osiem warstw. Te warstwy zapewniają produkcyjną umowę dotyczącą poziomu usług (SLA) i obsługę skalowania horyzontalnego w regionie Azure.

Nie zalecamy warstwy zużycia usługi API Management dla tego rozwiązania. Nie obsługuje on portalu deweloperów ani integracji Microsoft Entra, której wymaga ta architektura.

Warstwa Deweloper jest przeznaczona specjalnie dla środowisk nieprodukcyjnych i nie jest zalecana w przypadku obciążeń produkcyjnych.

Usługa API Management mierzy pojemność przepływności w jednostkach. Każda warstwa cenowa ma maksymalne skalowanie poziome. Warstwa Premium obsługuje skalowanie poziome w wielu regionach Azure. Wybierz warstwę na podstawie zestawu funkcji i poziomu wymaganej przepływności. Aby uzyskać więcej informacji, zapoznaj się z następującymi artykułami:

Każde wystąpienie usługi API Management ma domyślną nazwę domeny, która jest poddomeną azure-api.nettypu , na przykład contoso.azure-api.net. Rozważ skonfigurowanie domeny niestandardowej dla organizacji.

Aplikacje logiki

Usługa Logic Apps działa najlepiej w scenariuszach, które nie wymagają niskiej latencji odpowiedzi, takich jak wywołania asynchroniczne lub wywołania interfejsu API z umiarkowanym czasem wykonywania. Jeśli wymagane jest małe opóźnienie, na przykład w wywołaniu blokującym interfejs użytkownika, użyj innej technologii. Na przykład użyj usługi Functions lub internetowego interfejsu API wdrożonego w Azure App Service. Użyj usługi API Management, aby udostępnić interfejs API użytkownikom API.

Region

Aby zminimalizować opóźnienie sieci, umieść usługi API Management i Logic Apps w tym samym regionie. Ogólnie rzecz biorąc, wybierz region, który znajduje się najbliżej Twoich użytkowników lub usług zaplecza.

Kwestie wymagające rozważenia

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

Niezawodność

Niezawodność pomaga zapewnić, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Design review checklist for Reliability(Lista kontrolna dotycząca niezawodności).

Przejrzyj umowy SLA dla każdej usługi.

Jeśli wdrożysz warstwę Premium usługi API Management w co najmniej dwóch regionach, usługa API Management kwalifikuje się do uzyskania wyższej umowy SLA. Aby uzyskać więcej informacji, zobacz Cennik usługi API Management.

Kopie zapasowe

Regularnie wykonuj kopię zapasową konfiguracji usługi API Management. Wbudowana funkcja tworzenia i przywracania kopii zapasowych jest dostępna tylko w klasycznych warstwach Developer, Basic, Standard i Premium. Warstwa Zużycie i warstwy w wersji 2 nie obsługują tej warstwy. W przypadku wdrożeń w wersji 2 należy przyjąć podejście infrastruktury jako kodu (IaC), aby zapewnić możliwość odzyskiwania. Przechowuj pliki kopii zapasowej w lokalizacji lub regionie Azure odmiennym niż region, w którym wdrażasz usługę. Na podstawie celu czasu odzyskiwania (RTO) wybierz strategię odzyskiwania danych po awarii (DR):

  • W przypadku zdarzenia odzyskiwania po awarii, zaoferuj nowe wystąpienie usługi API Management, przywróć kopię zapasową do nowego wystąpienia i przekieruj rekordy DNS.

  • Zachowaj pasywne wystąpienie usługi API Management w innym regionie Azure. Regularnie przywracaj kopie zapasowe do tego wystąpienia, aby utrzymać je zsynchronizowane z aktywną usługą. Aby przywrócić usługę podczas zdarzenia odzyskiwania po awarii, wystarczy ponownie wskazać rekordy DNS. Takie podejście wiąże się z dodatkowymi kosztami, ponieważ płacisz za wystąpienie pasywne, ale skraca czas odzyskiwania.

W przypadku usługi Logic Apps zalecamy podejście konfiguracji jako kodu (CAC) do tworzenia kopii zapasowych i przywracania. Aplikacje logiki są bezserwerowe, dzięki czemu można szybko utworzyć je ponownie na podstawie szablonów IaC. Zapisz szablony w kontroli źródła i zintegruj szablony z procesem ciągłej integracji i ciągłego wdrażania (CI/CD). W przypadku wydarzenia DR wdróż szablon do nowego regionu.

Jeśli wdrożysz aplikację logiki w innym regionie, zaktualizuj konfigurację w usłudze API Management. Właściwość interfejsu API Backend można zaktualizować przy użyciu skryptu programu PowerShell.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nieprawidłowym użyciem cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotyczącazabezpieczeń.

Ta lista nie obejmuje wszystkich najlepszych rozwiązań w zakresie zabezpieczeń. Następujące zagadnienia dotyczące zabezpieczeń mają zastosowanie do tej architektury:

  • Ogranicz dostęp do punktów końcowych usługi Logic Apps tylko do adresu IP usługi API Management. W warstwach klasycznych (innych niż v2) usługa API Management ma stały publiczny adres IP. Jeśli używasz warstwy w wersji 2, nie podano statycznego adresu IP. W takim przypadku należy rozważyć alternatywne podejścia, takie jak domena niestandardowa z Azure DNS dla ograniczeń dostępu opartych na adresach IP. Aby uzyskać więcej informacji, zobacz Ograniczanie przychodzących adresów IP.

  • Użyj Azure RBAC (kontroli dostępu opartej na rolach), aby upewnić się, że użytkownicy mają odpowiednie poziomy dostępu.

  • Zabezpieczanie publicznych punktów końcowych interfejsu API w usłudze API Management przy użyciu protokołu OAuth lub OpenID Connect (OIDC). Aby zabezpieczyć publiczne punkty końcowe interfejsu API, skonfiguruj dostawcę tożsamości i dodaj zasady weryfikacji tokenu internetowego JSON (JWT). Aby uzyskać więcej informacji, zobacz Protect an API by using OAuth 2.0 with Microsoft Entra ID and API Management (Ochrona interfejsu API przy użyciu protokołu OAuth 2.0 z usługami Microsoft Entra ID i API Management.

  • Nawiąż połączenie z usługami zaplecza w usłudze API Management, używając certyfikatów wzajemnego uwierzytelniania.

  • Wymuszanie protokołu HTTPS na interfejsach API usługi API Management.

Przechowywanie wpisów tajnych

Nigdy nie ewidencjonuj haseł, kluczy dostępu ani parametrów połączenia w systemie kontroli kodu źródłowego. Jeśli te wartości są wymagane, należy zabezpieczyć je i wdrożyć przy użyciu odpowiednich technik.

Jeśli aplikacja logiki współpracuje z danymi poufnymi, zobacz Bezpieczny dostęp i dane dla przepływów pracy w usłudze Logic Apps.

Usługa API Management zarządza sekretami za pomocą obiektów nazywanych nazwanymi wartościami lub właściwościami. Te obiekty bezpiecznie przechowują wartości, do których można uzyskać dostęp za pośrednictwem zasad usługi API Management. Aby uzyskać więcej informacji, zobacz Używanie nazwanych wartości w zasadach usługi API Management.

Użyj Key Vault do centralnego przechowywania haseł, kluczy interfejsu API, parametrów połączenia i certyfikatów oraz zarządzania nimi. Key Vault zapewnia zabezpieczony, zaszyfrowany magazyn tajemnic z precyzyjną kontrolą dostępu i rejestrowaniem dzienników kontroli. Usługa Logic Apps może pobierać wpisy tajne z Key Vault przy użyciu tożsamości zarządzanych lub wbudowanego łącznika Key Vault, a usługa API Management o nazwach wartości obsługuje bezpośrednie odwołania do wpisów tajnych Key Vault. Takie podejście zapewnia wrażliwą konfigurację poza kodem aplikacji i szablonami wdrażania. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące platformy Well-Architected Framework dotyczące ochrony tajemnic aplikacji.

Optymalizacja kosztów

Optymalizacja kosztów koncentruje się na sposobach zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dlaoptymalizacji kosztów.

Aby oszacować koszty, użyj kalkulatora cen Azure.

API Management

Azure pobiera opłaty za wszystkie wystąpienia usługi API Management podczas ich działania. Jeśli skalujesz w górę i nie potrzebujesz tego poziomu wydajności przez cały czas, skaluj w dół ręcznie lub skonfiguruj skalowanie automatyczne.

Aplikacje logiki

Plan Zużycia usługi Logic Apps używa bezserwerowego modelu rozliczeniowego do obliczania kosztów na podstawie wykonań akcji i łączników. Jeśli używasz usługi Logic Apps Standard (z jedną dzierżawą), plan hostingu określa koszty. Aby uzyskać więcej informacji, zobacz Cennik usługi Logic Apps.

Doskonałość operacyjna

Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i utrzymują jej działanie w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca doskonałości operacyjnej.

DevOps

Utwórz oddzielne grupy zasobów dla środowisk produkcyjnych i deweloperskich/testowych. Oddzielne grupy zasobów ułatwiają zarządzanie wdrożeniami, usuwanie wdrożeń testowych i przypisywanie praw dostępu.

Podczas przypisywania zasobów do grup zasobów należy wziąć pod uwagę następujące czynniki:

  • Cykl życia: Ogólnie rzecz biorąc, umieść zasoby, które mają ten sam cykl życia w tej samej grupie zasobów.

  • Access: Aby zastosować zasady dostępu do zasobów w grupie, możesz użyć Azure RBAC.

  • Rozliczenia: Możesz wyświetlić skumulowane koszty dla grupy zasobów.

  • Warstwa cenowa usługi API Management: Użyj warstwy Deweloper dla środowisk deweloperskich/testowych. Aby zminimalizować koszty podczas przedprodukcji, wdróż replikę środowiska produkcyjnego, uruchom testy i wyłącz replikę.

Wdrożenie

Użyj szablonów ARM, aby wdrożyć zasoby Azure i postępować zgodnie z procesem IaC. Przy użyciu usług Azure DevOps lub innych rozwiązań ciągłej integracji/ciągłego wdrażania, szablony ułatwiają automatyzowanie wdrożeń.

Etapowanie

Rozważ przemieszczanie obciążeń, co oznacza, że wdrażasz je na różnych etapach i uruchamiasz walidacje na każdym etapie, zanim przejdziesz do następnego etapu. Jeśli używasz tego podejścia, możesz wypchnąć aktualizacje do środowisk produkcyjnych w sposób wysoce kontrolowany i zminimalizować nieprzewidziane problemy z wdrażaniem. Użyj wdrożenia blue-green lub wydań kanaryjskich, aby zaktualizować środowiska produkcyjne na żywo. Rozważ dobrą strategię wycofywania w przypadku niepowodzenia wdrożenia. Możesz na przykład automatycznie ponownie wdrożyć wcześniejsze, pomyślne wdrożenie z historii wdrożenia. Parametr flagi --rollback-on-error w poleceniu az deployment group create Azure CLI może automatycznie ponownie wdrożyć wcześniejsze pomyślne wdrożenie z historii wdrożenia, jeśli bieżące wdrożenie zakończy się niepowodzeniem.

Izolacja obciążeń

Umieść usługę API Management i wszystkie poszczególne aplikacje logiki we własnych oddzielnych szablonach IaC. Przy użyciu oddzielnych szablonów można przechowywać zasoby w systemach kontroli źródła. Szablony można wdrażać razem lub indywidualnie w ramach procesu ciągłej integracji i ciągłego wdrażania (CI/CD).

Wersje

Za każdym razem, gdy zmieniasz konfigurację aplikacji logiki lub wdrażasz aktualizację za pomocą szablonu usługi ARM, Azure przechowuje kopię tej wersji i wszystkich wersji z historią uruchamiania. Za pomocą tych wersji można śledzić zmiany historyczne lub wypromować wersję jako bieżącą konfigurację aplikacji Logic. Na przykład możesz przywrócić aplikację Logic Apps do poprzedniej wersji.

Usługa API Management obsługuje dwa odrębne, ale uzupełniające pojęcia dotyczące przechowywania wersji:

  • Wersje pozwalają użytkownikom interfejsu API wybierać wersje API w oparciu o ich potrzeby, takie jak v1, v2, wersja testowa lub wersja produkcyjna.

  • Dzięki poprawkom administratorzy interfejsu API mogą wprowadzać niełamające się zmiany w interfejsie API i wdrażać te zmiany wraz z dziennikiem zmian w celu informowania użytkowników interfejsu API.

Możesz wprowadzić poprawkę w środowisku deweloperskim i wdrożyć tę zmianę w innych środowiskach przy użyciu szablonów ARM. Aby uzyskać więcej informacji, zobacz Publikowanie wielu wersji interfejsu API.

Możesz również użyć poprawek do przetestowania interfejsu API przed wprowadzeniem zmian bieżących i dostępnych dla użytkowników. Nie zalecamy tej metody testowania obciążenia ani testowania integracji. Zamiast tego użyj oddzielnych środowisk testowych lub przedprodukcyjnych.

Diagnostyka i monitorowanie

Użyj Azure Monitor do monitorowania operacji w usługach API Management i Logic Apps. Azure Monitor zawiera informacje na podstawie metryk skonfigurowanych dla każdej usługi i jest domyślnie włączona. Aby uzyskać więcej informacji, zapoznaj się z następującymi artykułami:

Każda usługa ma również następujące opcje:

  • W celu przeprowadzenia głębszej analizy i tworzenia pulpitów nawigacyjnych, wyślij dzienniki usługi Logic Apps do Log Analytics.

  • W przypadku monitorowania metodyki DevOps skonfiguruj usługę Azure Application Insights dla usługi API Management.

  • Usługa API Management obsługuje szablon rozwiązania Power BI na potrzeby niestandardowej analizy interfejsu API. Możesz użyć tego szablonu rozwiązania do utworzenia własnego rozwiązania analitycznego. Power BI udostępnia raporty użytkownikom biznesowym.

Wydajność

Wydajność odnosi się do możliwości skalowania obciążenia w celu efektywnego zaspokojenia wymagań użytkowników. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu pod kątem wydajności.

Aby zwiększyć skalowalność usługi API Management, dodaj zasady buforowania tam, gdzie to właściwe. Buforowanie pomaga również zmniejszyć obciążenie systemów zaplecza.

Aby zapewnić większą pojemność, możesz skalować poziomy Podstawowa, Standardowa i Premium w usłudze API Management w jednym regionie Azure. Aby przeanalizować użycie usługi, wybierz pozycję Metryka pojemności w menu Metryki , a następnie odpowiednio przeprowadź skalowanie w górę lub w dół. Zastosowanie procesu uaktualniania lub skalowania może potrwać od 15 do 45 minut.

Zalecenia dotyczące skalowania usługi API Management:

  • Podczas skalowania należy wziąć pod uwagę wzorce ruchu. Klienci, którzy mają bardziej niestabilne wzorce ruchu, potrzebują większej pojemności.

  • Spójna pojemność większa niż 66% może wskazywać na konieczność skalowania w górę.

  • Spójna pojemność mniejsza niż 20% może wskazywać na możliwość skalowania w dół.

  • Przed włączeniem obciążenia w środowisku produkcyjnym zawsze przetestuj usługę API Management z reprezentatywnym obciążeniem.

W warstwie Premium można zwiększać lub zmniejszać skalę wystąpienia usługi API Management w różnych regionach platformy Azure. Ta konfiguracja sprawia, że usługa API Management kwalifikuje się do wyższej umowy SLA. Usługi można również udostępniać w pobliżu użytkowników w wielu regionach.

Model bezserwerowy usługi Logic Apps eliminuje konieczność zaplanowanie przez administratorów skalowalności usługi. Usługa jest skalowana automatycznie w celu spełnienia wymagań.

Współautorzy

Microsoft aktualizuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główny autor:

  • Karl Rissland | Inżynier rozwiązań, Azure sztucznej inteligencji i aplikacji

Inny współautor:

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

Następne kroki