Usługa Azure Functions w środowisku hybrydowym

Azure Functions
Azure Monitor
Azure Pipelines
Azure Storage
Azure Virtual Network

Ta architektura referencyjna ilustruje wiele lokalnych gałęzi organizacji, które są rozmieszczone geograficznie. Każda lokalizacja korzysta z aplikacji funkcji platformy Microsoft Azure skonfigurowanej z planem Premium w pobliskim regionie chmury. Deweloperzy w tej architekturze monitorują wszystkie aplikacje funkcji platformy Azure przy użyciu usługi Azure Monitor jako pojedynczego okienka szkła.

Architektura

Diagram przedstawia wiele lokalnych maszyn wirtualnych połączonych z usługą Azure Functions w różnych regionach. Deweloperzy monitorują swoje aplikacje funkcji przy użyciu usługi Azure Monitor.

Pobierz plik programu Visio z tą architekturą.

Składniki

Niniejsza architektura zawiera następujące składniki:

  • Usługa Azure Functions. Azure Functions to bezserwerowa platforma jako usługa (PaaS) na platformie Azure, która uruchamia mały, pojedynczy kod zadań bez konieczności ponownego uruchamiania nowej infrastruktury. Plan usługi Azure Functions w warstwie Premium umożliwia prywatną komunikację z usługą Azure Functions za pośrednictwem sieci wirtualnej.
  • Azure Virtual Network. Sieci wirtualne platformy Azure to sieci prywatne oparte na platformie Azure w chmurze, dzięki czemu zasoby platformy Azure mogą komunikować się ze sobą w bezpieczny sposób. Punkty końcowe usługi sieci wirtualnych platformy Azure zapewniają, że zasoby platformy Azure mogą komunikować się tylko za pośrednictwem bezpiecznej sieci wirtualnej.
  • Sieć lokalna. W tej architekturze organizacja utworzyła bezpieczną sieć prywatną, która łączy różne gałęzie. Ta sieć prywatna jest połączona z sieciami wirtualnymi platformy Azure przy użyciu połączenia lokacja-lokacja .
  • Stacje robocze dla deweloperów. W tej architekturze indywidualni deweloperzy mogą pracować nad kodem usługi Azure Functions w całości w bezpiecznej sieci prywatnej lub z dowolnej lokalizacji zdalnej. W obu scenariuszach deweloperzy mają dostęp do usługi Azure Monitor w celu wykonywania zapytań lub obserwowania metryk i dzienników aplikacji funkcji.

Szczegóły scenariusza

Przykładowe typowe zastosowania tej architektury:

  • Organizacje z wieloma lokalizacjami fizycznymi połączonymi z siecią wirtualną na platformie Azure w celu komunikowania się z usługą Azure Functions.
  • Obciążenia o wysokim wzroście, które używają usługi Azure Functions lokalnie i zapewniają możliwość korzystania z platformy Azure w przypadku nieoczekiwanych wzrostów pracy.

Zalecenia

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

Projektowanie pod kątem architektury bezserwerowej

Tradycyjne aplikacje dla przedsiębiorstw trend w kierunku architektury aplikacji monolitycznej, w której jeden kod "rozwiązanie" uruchamia logikę biznesową całej organizacji. Najlepszym rozwiązaniem jest zaprojektowanie architektury bezserwerowej, w której poszczególne funkcje wykonują pojedyncze zadania. Te pojedyncze zadania są przeznaczone do szybkiego uruchamiania i integrowania się z większymi przepływami pracy.

Architektura bezserwerowa w usłudze Azure Functions ma wiele korzyści, takich jak:

  • Aplikacje mogą być automatycznie skalowane według poszczególnych funkcji biznesowych zamiast skalowania całego rozwiązania. Może to pomóc utrzymać koszty w dół, skalując tylko to, co jest potrzebne dla każdego zadania, aby obsłużyć istniejące obciążenia.
  • Usługa Azure Functions udostępnia powiązania deklaratywne dla wielu usług platformy Azure, zmniejszając ilość kodu, który zespół musi pisać, testować i obsługiwać.
  • Poszczególne funkcje można ponownie użyć, zmniejszając ilość powtarzającego się kodu niezbędnego dla dużych rozwiązań dla przedsiębiorstw.

Uruchamianie usługi Azure Functions w środowisku lokalnym

Możesz zdecydować, że usługa Azure Functions działa lokalnie, a nie na platformie Azure; na przykład:

  • Twój zespół może chcieć uruchomić usługę Azure Functions w ramach istniejącej lokalnej instalacji platformy Kubernetes.
  • Podczas opracowywania zespół może łatwiej opracowywać lokalnie przy użyciu interfejsu wiersza polecenia zamiast edytora w portalu.
  • Funkcje będą uruchamiane lokalnie przy użyciu zestawu narzędzi zainstalowanego na lokalnych maszynach wirtualnych.

Usługę Azure Functions można uruchamiać lokalnie na trzy sposoby:

Łączność sieciowa

Tworzenie aplikacji funkcji przy użyciu planu Premium otwiera możliwość wysoce bezpiecznej łączności między sieciami wirtualnymi platformy Azure, platformą Azure i sieciami lokalnymi oraz sieciami dla każdej gałęzi lokalnej.

Należy użyć połączenia typu lokacja-lokacja lub usługi Azure ExpressRoute między sieciami wirtualnymi platformy Azure i sieciami lokalnymi. Dzięki temu gałęzie lokalne mogą komunikować się z aplikacjami funkcji na platformie Azure przy użyciu punktów końcowych usługi.

Ponadto każda sieć wirtualna na platformie Azure powinna również używać komunikacji równorzędnej sieci wirtualnych w celu umożliwienia komunikacji między poszczególnymi aplikacjami funkcji w różnych regionach.

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.

Skalowalność

  • Kod usługi Azure Functions powinien być zaprojektowany tak, aby można było skalować w poziomie bez końca. Rozważ warunki wyścigu, dzierżawione pliki i inne obciążenia, które mogą spowodować, że jedna funkcja zostanie uruchomiona, aby zablokować inne. Rozważ również napisanie całego kodu usługi Azure Functions, aby był bezstanowy i defensywny w jego projekcie.
  • W przypadku aplikacji funkcji korzystających z kont usługi Azure Storage w wyzwalaczach lub powiązaniach nie używaj tego samego konta, które jest używane do przechowywania metadanych dotyczących aplikacji funkcji i ich przebiegów.

Dostępność

  • Zazwyczaj usługa Azure Functions w planie zużycia może być skalowana w dół do zera wystąpień. Gdy nowe zdarzenie wyzwoli aplikację funkcji, należy utworzyć nowe wystąpienie z uruchomionym kodem. Opóźnienie skojarzone z tym procesem jest określane jako zimny start. Plan usługi Azure Functions w warstwie Premium umożliwia skonfigurowanie wstępnie rozgrzanych wystąpień gotowych do obsługi nowych żądań. Liczbę wstępnie rozgrzanych wystąpień można skonfigurować do minimalnej liczby wystąpień w konfiguracji skalowanej w poziomie.
  • Rozważ posiadanie wielu planów Premium w wielu regionach i użycie usługi Azure Traffic Manager do odpowiedniego kierowania żądań.

Możliwości zarządzania

  • Usługa Azure Functions musi znajdować się w pustej podsieci innej niż inne zasoby platformy Azure. Może to wymagać większego planowania podczas projektowania podsieci dla sieci wirtualnej.
  • Rozważ utworzenie serwerów proxy dla każdego zasobu lokalnego, do którego może być potrzebny dostęp usługa Azure Functions. Może to chronić integralność aplikacji przed wszelkimi nieoczekiwanymi zmianami w sieci lokalnej.
  • Usługa Azure Monitor umożliwia obserwowanie analiz i dzienników usługi Azure Functions w całym rozwiązaniu.

DevOps

  • W idealnym przypadku operacje wdrażania powinny pochodzić z jednego zespołu (Dev lub DevOps), a nie z poszczególnych gałęzi. Rozważ użycie nowoczesnego systemu przepływu pracy, takiego jak azure Pipelines lub GitHub Actions, aby wdrażać aplikacje funkcji w powtarzalny sposób we wszystkich regionach świadczenia usługi Azure i potencjalnie lokalnie.
  • Użyj systemu przepływu pracy, aby zautomatyzować ponowne wdrażanie kodu w usłudze Azure Functions w miarę aktualizowania i oznaczania kodu do wydania.
  • Użyj miejsc wdrożenia, aby przetestować usługę Azure Functions przed ich ostatnim wypchnięciem do środowiska produkcyjnego.

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.

  • Koszty możesz szacować za pomocą kalkulatora cen platformy Azure.
  • Plan usługi Azure Functions Premium jest wymagany w przypadku łączności z siecią wirtualną platformy Azure, dostępu do lokacji prywatnej, punktów końcowych usługi i wstępnie rozgrzanych wystąpień.
  • Plan usługi Azure Functions w warstwie Premium rozlicza się za wystąpienia zamiast użycia. Minimum pojedynczego wystąpienia gwarantuje, że będzie co najmniej pewien miesięczny rachunek, nawet bez przebiegów. Możesz ustawić maksymalną liczbę wystąpień, aby kontrolować koszty obciążeń, które mogą mieć rozmiar.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

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

Następne kroki

Zapoznaj się z następującymi wskazówkami dotyczącymi architektury dla usługi Azure Functions:

Zapoznaj się z następującymi wskazówkami dotyczącymi architektury dla sieci wirtualnych platformy Azure: