Apptjänst med flera nivåer med tjänstslutpunkt

App Service
Virtual Network

Alla webbprogram som har utvecklats och distribuerats mellan fler än ett lager kallas för ett webbprogram med flera nivåer. Nivåerna delar in programmet i två eller flera komponenter som kan utvecklas och köras separat. Enkelt uttryckt är ett webbprogram med flera nivåer ett frontend-webbprogram som anropar ett eller flera API-program bakom sig. Den här referensarkitekturen visar hur du använder tjänstslutpunkter för säker kommunikation mellan apptjänster i en miljö med flera nivåer.

Genom att använda tjänstslutpunkter kan du styra inkommande åtkomst till DIN API-app. Du kan ange att alla åtkomstorer måste finnas i undernät som du väljer. Begränsningen kan anges i API-appen eller på klientsidan med regler för att tillåta och neka på nivån för virtuellt nätverk och undernät.

Anteckning

Även om den här artikeln fokuserar på användningen av tjänstslutpunkter är andra aspekter av arkitekturen, till exempel Azure App Service och integrering av virtuella nätverk, mycket tillämpliga.

Potentiella användningsfall

Den här arkitekturen kan passa dessa användningsfall:

  • Lösningar med två tjänster som kräver åtkomstbegränsningar
  • Finans- och sjukvårdsprogram som kräver privata anslutningar till en API-app för backend-anslutningar

Arkitektur

Arkitektur för en flernivåapp.

Ladda ned en Visio-fil med den här arkitekturen.

Här är trafikflödet och den grundläggande konfigurationen av arkitekturen:

  1. Begäranden dirigeras från Internet till en frontend-app.
  2. Integreringsfunktionen för virtuella nätverk i App Service dirigerar all utgående kommunikation från frontend-apparna till integreringsundernätet. Mer information om integrering av virtuella nätverk finns i Integrera din app med ett virtuellt Azure-nätverk.
  3. API-appen har tjänstslutpunkter som begränsar inkommande kommunikation– de tillåter endast kommunikation från klientappar i integreringsundernätet. Mer information om tjänstslutpunkter finns i Virtual Network tjänstslutpunkter.
  4. API-appen kan inte nås från det offentliga Internet. Endast interna komponenter, eller komponenter som är anslutna till det virtuella nätverket, kan nå API-appen.
  5. En resursgrupp är en container som innehåller relaterade resurser för en Azure-lösning. Resurserna kan vara virtuella datorer, virtuella nätverk, lagringskonton, webbappar, databaser och databasservrar. Det kan vara praktiskt att gruppera resurser som har samma livscykel, så att du enkelt kan distribuera, uppdatera och ta bort dem som en grupp. Mer information finns i Vad är en resursgrupp?

Komponenter

  • Azure Virtual Network är ett säkert privat nätverk i molnet. Den ansluter virtuella datorer till varandra, till Internet och till lokala nätverk.
  • Azure App Service är en helt hanterad tjänst för att skapa, distribuera och skala webbappar. Du kan skapa appar med hjälp av .NET, .NET Core, Node.js, Java, Python eller PHP. Appar kan köras i containrar eller på Windows eller Linux. Integreringsfunktionen för virtuella nätverk i App Service kan ge din app åtkomst till resurser i eller via ett virtuellt nätverk. Mer information finns i Integrera din app med ett virtuellt Azure-nätverk.
  • Azure Private Link ger privat åtkomst till tjänster som finns på Azure-plattformen och behåller dina data i Microsoft-nätverket.

Alternativ

  • Du kan distribuera både frontend-appen och API-appen i samma Azure App Service-miljön och göra frontend-appen direkt tillgänglig för Internet med hjälp av en programgateway. Information om App Service miljöer finns i Introduktion till App Service miljöer.

  • En annan metod är att distribuera frontend-appen i multitenant-tjänsten och API-appen i en App Service-miljön. Du kan också vara värd för både frontend-appen och API-appen i multitenant-tjänsten.

  • Det finns andra sätt att skydda dina webbappar, till exempel:

    • App-tilldelade adresser
    • Åtkomstbegränsningar
    • Azure Private Link

    Mer information finns i App Service nätverksfunktioner.

Fördelar

  • Den här arkitekturen är ett sätt att skapa ett webbprogram med flera nivåer som har en säker API-backend. Trafik till DIN API-app kommer endast från undernätet i webbappen på frontend-sidan.
  • Tjänstslutpunkter är mer prisvärda, snabbare och enklare att konfigurera jämfört med App Service miljöer. Det finns inget sätt för en App Service-webbapp att ansluta till ett virtuellt nätverk utan App Service-miljön, vilket är dyrt.
  • Tjänstslutpunkter fungerar bra i mindre skala eftersom du enkelt kan aktivera tjänstslutpunkter för API-appen i undernätet för klientintegrering.
  • Att Private Link ökar komplexiteten eftersom det finns två undernät. Den privata anslutningen är också en resurs på den översta nivån som lägger till hanteringskostnader.

Överväganden

Tjänstslutpunkter skyddar API-apparna från att användas av något annat än klientappar. Frontend-appar skyddas dock inte från andra frontend-appar.

Tillgänglighet

  • Ett system kan inte ha hög tillgänglig information om det inte är tillförlitligt. Tekniker för att öka tillförlitligheten finns i Tillförlitlighetsmönster.

Skalbarhet

  • Prestandaeffektivitet är möjligheten för din arbetsbelastning att skala för att uppfylla kraven på den på ett effektivt sätt. Tänk på prestandaeffektivitetsmönstren när du utformar och skapar ditt molnprogram. Mer information finns i Prestandaeffektivitetsmönster.
  • Lär dig mer om att skala en grundläggande webbapp i Skala App Service-appen. Läs de andra artiklarna i samma avsnitt för att få idéer om andra arkitekturer.
  • Mer information om prestandaeffektivitet finns i checklista för prestandaeffektivitet.

Prissättning

Använd Priskalkylatorn för Azure för att beräkna kostnader.

Några aspekter som påverkar kostnaden för en implementering är:

  • Lösningens skalbarhet – hur väl den stöder ändringar i efterfrågan.
  • Om lösningen körs kontinuerligt eller tillfälligt.
  • Valda tjänstnivåer.

Nästa steg