Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Pobierz plik Visio tej architektury.
Przepływ danych
Poniższy przepływ danych odpowiada poprzedniemu diagramowi:
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.
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.
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.
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.
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:
- Porównanie warstw usługi API Management oparte na funkcjach
- API Management — cennik
- Pojemność instancji API Management
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
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:
- Monitorowanie opublikowanych interfejsów API
- Monitorowanie stanu, konfigurowanie rejestrowania diagnostycznego i włączanie alertów dla usługi Logic Apps
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:
- Pooya Tolouei | Architekt rozwiązań w chmurze
Aby wyświetlić profile LinkedIn niepublikacyjnych, zaloguj się do LinkedIn.