Dela via


Alternativ för belastningsutjämning

Termen belastningsutjämning avser fördelningen av bearbetning över flera beräkningsresurser. Du utför belastningsutjämning för att optimera resursanvändningen, maximera dataflödet, minimera svarstiden och undvika överbelastning av någon enskild resurs. Belastningsutjämning kan också förbättra tillgängligheten genom att dela en arbetsbelastning mellan redundanta databehandlingsresurser.

Azure tillhandahåller olika belastningsutjämningstjänster som du kan använda för att distribuera dina arbetsbelastningar över flera beräkningsresurser. Dessa tjänster omfattar Azure API Management, Azure Application Gateway, Azure Front Door, Azure Load Balancer och Azure Traffic Manager.

Den här artikeln beskriver överväganden som hjälper dig att fastställa en lämplig belastningsutjämningslösning för din arbetsbelastnings behov.

Azure-lastbalanseringstjänster

Följande huvudsakliga tjänster och tjänster för belastningsutjämning med belastningsutjämningsfunktioner är tillgängliga i Azure:

  • API Management är en hanterad tjänst som du kan använda för att publicera, skydda, transformera, underhålla och övervaka HTTP(S) API:er. Den tillhandahåller en gateway för dina API:er och kan konfigureras för att utjämna trafik mellan noder i en angiven lastbalanserad back-end pool. Du kan välja mellan tre olika belastningsutjämningsmetoder: resursallokering, viktad och prioritetsbaserad.

    Viktigt!

    API Management är inte en traditionell lastbalanserare för generell användning. Den är särskilt utformad för HTTP-API:er och dess belastningsutjämningsfunktioner är valfria i dess bredare API-hanteringsfunktioner. API Management ingår i den här artikeln för fullständighet eftersom det ger belastningsutjämningsfunktioner för specifika API-värdtopologier. Det primära syftet är dock API Gateway-funktioner i stället för belastningsutjämning.

  • Application Gateway är en proxylastbalanserare. Den tillhandahåller funktionalitet för applikationsleveranskontroll som en hanterad tjänst. Det erbjuder olika layer-7-belastningsutjämning, routning, TLS-avlastning och brandväggsfunktioner för webbprogram. Som en avslutande lastbalanserare erbjuder den även Layer-4-belastningsutjämning för TCP- och TLS-protokoll. Använd Application Gateway för att överföra trafik från offentligt nätverksutrymme till dina webbservrar som finns i ett privat nätverksutrymme i en region.

  • Azure Front Door är ett nätverk för programleverans som ger global belastningsutjämning och webbplatsacceleration för webbprogram. Den innehåller Layer-7-funktioner för ditt program, till exempel SSL-avlastning (Secure Sockets Layer), sökvägsbaserad routning, snabb redundans och cachelagring för att förbättra prestanda och hög tillgänglighet.

  • Load Balancer är en Layer-4-tjänst som hanterar inkommande och utgående trafik över alla UDP-protokoll (User Datagram Protocol) och TCP-protokoll (Transmission Control Protocol). Den är utformad för hög prestanda och ultralåg svarstid. Den är byggd för att hantera miljontals begäranden per sekund samtidigt som du ser till att din lösning är mycket tillgänglig. Load Balancer är zonredundant, vilket säkerställer hög tillgänglighet mellan tillgänglighetszoner. Den stöder både en regional distributionstopologi och en topologi mellan regioner.

  • Traffic Manager är en DNS-baserad trafiklastbalanserare (Domain Name System) som gör att du kan distribuera trafik optimalt till tjänster i globala Azure-regioner, samtidigt som den ger hög tillgänglighet och svarstider. Eftersom Traffic Manager är en DNS-baserad belastningsutjämningstjänst, lastbalanseras den endast på domännivå. Av den anledningen kan den inte utföra failover lika snabbt som Azure Front Door. DNS-cachelagring och system som ignorerar TTL-värden (time-to-live) för DNS orsakar ofta den här fördröjningen.

Anmärkning

Klustringstekniker, till exempel Azure Container Apps eller Azure Kubernetes Service (AKS), innehåller konstruktioner för belastningsutjämning. Dessa konstruktioner fungerar främst inom ramen för sin egen klustergräns. De dirigerar trafik till tillgängliga programinstanser baserat på beredskaps- och hälsoavsökningar. Den här artikeln beskriver inte dessa alternativ för belastningsutjämning.

Tjänstkategoriseringar

Azures belastningsutjämningstjänster kan kategoriseras efter två dimensioner: globala jämfört med regionala och HTTP(S) jämfört med icke-HTTP(S).

Global kontra regional

  • Global: Dessa belastningsutjämningstjänster distribuerar trafik mellan regionala serverdelar, moln eller lokala hybridtjänster. De tillhandahåller ett enda kontrollplan som dirigerar användartrafik till tillgängliga serverdelar globalt. Dessa tjänster reagerar på ändringar i tjänstens tillförlitlighet eller prestanda för att maximera tillgänglighet och prestanda. Du kan se dem som system som utför belastningsutjämning mellan applikationsstämplar, slutpunkter eller skalningsenheter som är värdar i olika regioner eller geografiska områden.

  • Regional: Dessa belastningsutjämningstjänster distribuerar trafik i virtuella nätverk mellan virtuella datorer (VM) eller zonindela och zonredundanta tjänstslutpunkter inom en region. Du kan se dem som system som belastningsutjämning mellan virtuella datorer, containrar eller kluster i en region i ett virtuellt nätverk.

HTTP(S) jämfört med icke-HTTP(S)

  • HTTP(S): Dessa lastbalanseringstjänster är Layer-7-lastbalanserare som endast accepterar HTTP(S)-trafik. De är utformade för webbprogram eller andra HTTP-slutpunkter. Funktionerna omfattar SSL-avlastning, brandvägg för webbprogram, sökvägsbaserad belastningsutjämning och sessionstillhörighet.

  • Icke-HTTP(S): Dessa lastbalanseringstjänster omfattar Layer-4 TCP- och UDP-tjänster eller DNS-baserade belastningsutjämningstjänster.

I följande tabell sammanfattas Azures belastningsutjämningstjänster.

Tjänster Globalt eller regionalt Rekommenderad trafik
API Management Regional eller global ENDAST HTTP(S) API:er
Application Gateway Regionell HTTP(S), TCP och TLS
Azure Front Door-tjänsten Global HTTP(S)
Lastbalanserare Regional eller global Non-HTTP(S)
Trafikchef Global Non-HTTP(S)

Anmärkning

Traffic Manager och Load Balancer kan distribuera vilken trafiktyp som helst, inklusive HTTP(S). Dessa tjänster tillhandahåller dock inte Layer-7-funktioner. Till skillnad från Load Balancer hanterar Traffic Manager inte trafiken direkt. Traffic Manager använder DNS för att dirigera klienter till lämpliga slutpunkter.

Välj en belastningsutjämningslösning för ditt scenario

Tänk på följande faktorer när du väljer en belastningsutjämningslösning:

  • Trafiktyp: Avgör om det är ett HTTP(S)-webbprogram och om det är offentligt eller ett privat program.

  • Globalt kontra regionalt: Klargöra om du behöver belastningsutjämna virtuella datorer eller containrar i ett enda virtuellt nätverk, skalningsenheter för belastningsutjämnare eller distributioner mellan regioner eller båda.

  • Tillgänglighet: Granska serviceavtalet (SLA).

  • Kostnad: Ta hänsyn till kostnaden för själva tjänsten samt driftskostnaderna för att hantera en lösning som bygger på den tjänsten. Mer information finns i Priser för Azure.

  • Funktioner och gränser: Identifiera de funktioner som stöds av varje tjänst och tillämpliga tjänstgränser.

Följande flödesdiagram hjälper dig att välja en belastningsutjämningslösning för ditt program. Flödesdiagrammet vägleder dig genom en uppsättning viktiga beslutskriterier för att nå en rekommendation.

Tips/Råd

Du kan använda Microsoft Copilot i Azure för att hjälpa dig genom det här beslutet, ungefär som det flödesdiagram som beskrivs här. Mer information finns i Arbeta med Azure Load Balancer med Microsoft Copilot i Azure.

Varje program har unika krav som inte samlas in i enkla beslutsträd. Behandla det här flödesdiagrammet eller Copilot-rekommendationen som utgångspunkt. Utför sedan en mer detaljerad utvärdering.

Diagram som visar ett beslutsträd för belastningsutjämning i Azure.

Bilden visar ett förgrenat flödesschema där varje sökväg leder till en belastningsutjämningslösning. Den första sökvägen börjar vid webbprogram (HTTP/HTTPs), pekar på Internetuppkopplade program via Nej-pilen och sedan till Load Balancer via en annan Nej-pil. Den andra sökvägen börjar vid webbapplikation (HTTP/HTTPS), pekar på internetuppkopplad applikation via Nej-pilen, pekar på Global/distribuerad i flera regioner via Ja-pilen och sedan till Load Balancer via pilen Nej. Den tredje sökvägen börjar vid webbprogram (HTTP/HTTPs), pekar på Internetuppkopplade program via pilen Nej, pekar på Global/distribuerad i flera regioner via ja-pilen och sedan till Traffic Manager och Load Balancer via ja-pilen. Den fjärde sökvägen börjar vid webbapplikation (HTTP/HTTPS), pekar på Internetanslutna applikationer via Ja-pilen, till Endast värd för API:er via No-pilen, till API-hantering via Ja-pilen. Den femte sökvägen börjar vid webbapplikation (HTTP/HTTPs), pekar på internetkonfronterande applikation via ja-pilen, till endast API-värdtjänster via nej-pilen, till Application Gateway via nej-pilen. Den sjätte sökvägen börjar vid webbprogram (HTTP/HTTPs), pekar på Internetuppkopplade program via ja-pilen, till Globala/distribuerade flera regioner via ja-pilen, till Behöver du SSL-avlastning eller bearbetning på programnivå per begäran till Azure Front Door och Application Gateway via ja-pilen. Den sjunde sökvägen börjar vid webbapplikationer (HTTP/HTTPS), pekar på Internetuppkopplade program via ja-pilen, till Globala/applikationer distribuerade över flera regioner via ja-pilen, till "Behöver du SSL-avlastning eller processning på applikationsnivå per förfrågan", till Azure Front Door och API Management via pilen Endast API:er. Den åttonde sökvägen börjar vid webbapplikation (HTTP/HTTPS), pekar på Internetanslutna applikationer via ja-pilen, till Globala/distribuerade flera regioner via ja-pilen, till Krävs SSL-avlastning eller bearbetning på applikationsnivå per begäran, till Hosting – PaaS, IaaS, AKS via nej-pilen, till Azure Front Door via PaaS-pilen. Den nionde sökvägen börjar vid webbprogram (HTTP/HTTPS), pekar på Internetuppkopplade program via ja-pilen, till Globala/distribuerade flera regioner via ja-pilen, till Om du behöver SSL-avlastning eller bearbetning på applikationsnivå per begäran, till Hosting – PaaS, IaaS, AKS via nej-pilen, till Azure Front Door och Application Gateway-ingresskontrollanten via AKS-pilen. Den tionde sökvägen börjar vid webbapplikation (HTTP/HTTPs), pekar på Internetuppkopplade applikationer via ja-pilen, till Globala/distribuerade flera regioner via ja-pilen, till Behöver du SSL-avlastning eller bearbetning på applikationsnivå per begäran, till Hosting - PaaS, IaaS, AKS via nej-pilen, till Azure Front Door och Load Balancer via IaaS VMs-pilen. Den elfte sökvägen börjar vid webbapplikation (HTTP/HTTPs), pekar på internetuppkopplade applikationer via Ja-pilen, till globalt/distribuerat till flera regioner via Ja-pilen, till Krävs prestandaacceleration via Nej-pilen, till Application Gateway via Nej-pilen. Den tolfte sökvägen startar vid webbapplikation (HTTP/HTTPs), pekar på Internetuppkopplad applikation via Ja-pilen, till globalt/distribuerat över flera regioner via Ja-pilen, till Kräver du prestandaacceleration via Nej-pilen, till Kräver du SSL-avlastning eller applikationslagerbehandling per begäran via Ja-pilen, till Azure Front Door och Application Gateway via Ja-pilen. Den trettonde sökvägen börjar vid webbapplikation (HTTP/HTTPs), pekar på internetexponerad applikation via Ja-pilen, till Global/distribuerad flera regioner via Ja-pilen, till Kräver du prestandaacceleration via nej-pilen, till Behöver du SSL-avlastning eller bearbetning på applikationsnivå per begäran via Ja-pilen, till Azure Front Door och API Management via Endast API:er-pilen. Den fjortonde sökvägen börjar vid webbapplikation (HTTP/HTTPs), pekar på Internetuppkopplade applikationer via Ja-pilen, till Global/distribuerad till flera regioner via Ja-pilen, till Behöver du prestandaacceleration via Nej-pilen, till Application Gateway via Nej-pilen. Den femtonde sökvägen börjar vid Webbapplikation (HTTP/HTTPS), pekar på Internetuppkopplad applikation via Ja-pilen, till Global/distribuerad över flera regioner via Ja-pilen, till Kräver du prestandaacceleration via Nej-pilen, till Application Gateway och API Management via pilen Endast APIer.

När din arbetsbelastning innehåller flera tjänster som kräver belastningsutjämning utvärderar du varje tjänst individuellt. En effektiv konfiguration använder ofta mer än en typ av belastningsutjämningslösning. Du kan införliva dessa lösningar på olika platser i arbetsbelastningens arkitektur för att hantera unika funktioner eller roller.

Definitions

  • Webbprogram (HTTP/HTTPS) refererar till ett program som kräver minst en av följande funktioner:

    • Fattar ett routningsbeslut för Layer-7-data, till exempel en URL-sökväg
    • Stöder inspektion av kommunikationsnyttolasten, till exempel en HTTP-begärandetext
    • Hanterar TLS-funktionalitet
  • Icke-HTTP(S)-program refererar till ett program som behöver stöd för Layer 4 (TCP eller UDP-protokoll) eller TLS-protokoll (Transport Layer Security). Både Azure Load Balancer och Azure Application Gateway tillhandahåller funktioner för att hantera sådan trafik. Deras funktioner och beteenden skiljer sig dock åt, enligt beskrivningen i den här jämförelseartikeln.

  • Internetuppkopplad app refererar till ett program som är offentligt tillgängligt från Internet. Som bästa praxis tillämpar programägare restriktiva åtkomstprinciper eller skyddar programmet genom att konfigurera erbjudanden som brandvägg för webbprogram och distribuerat denial-of-service-skydd.

  • Global eller distribuerad i flera regioner innebär att lastbalanseraren ska ha ett enda kontrollplan med hög tillgänglighet som dirigerar trafik till offentliga slutpunkter i ditt globalt distribuerade program. Den här konfigurationen kan ha stöd för antingen aktiva eller aktiva-passiva topologier mellan regioner.

    Anmärkning

    Du kan använda en regional tjänst, till exempel Application Gateway, för att belastningsutjämna över serverdelar som sträcker sig över flera regioner och styra routning via ett enda kontrollplan. Det fungerar genom att använda en privat länk mellan regioner, global peering för virtuella nätverk eller till och med offentliga IP-adresser för tjänster i andra regioner.

    Det här scenariot är inte den primära punkten i det här beslutet.

    Att använda en regional resurs som en router för globalt distribuerade serverdelar introducerar en regional enskild felpunkt. Det medför också extra svarstid eftersom trafiken tvingas genom en region innan den går till en annan och sedan tillbaka igen.

  • PaaS (Platform as a Service) tillhandahåller en hanterad värdmiljö där du kan distribuera ditt program utan att behöva hantera virtuella datorer eller nätverksresurser. I det här fallet refererar PaaS till tjänster som tillhandahåller integrerad belastningsutjämning i en region. Mer information finns i Välj en beräkningstjänst för skalbarhet.

  • Med AKS kan du distribuera och hantera containerbaserade program. AKS tillhandahåller serverlösa Kubernetes, en integrerad ci/CD-upplevelse (kontinuerlig integrering och kontinuerlig leverans) och säkerhet och styrning i företagsklass. Mer information finns i AKS-arkitekturdesign.

  • Infrastruktur som en tjänst (IaaS) är ett beräkningsalternativ där du etablerar de virtuella datorer som du behöver, tillsammans med associerade nätverks- och lagringskomponenter. IaaS-program kräver intern belastningsutjämning i ett virtuellt nätverk med hjälp av Load Balancer.

  • Bearbetning på programnivå avser särskild routning i ett virtuellt nätverk. Exempel är sökvägsbaserad routning mellan virtuella datorer eller VM-skalningsuppsättningar. Mer information finns i Distribuera en Application Gateway bakom Azure Front Door.

  • Endast API:er syftar på behovet av att belastningsutjämna HTTP(S)-API:er som inte är webbapplikationer. I det här fallet, om din arbetsbelastning redan använder API Management för dess gateway-funktioner, kan du överväga dess valfria belastningsbalanseringsfunktion för att dirigera trafik över API-backends som inte redan är belastningsbalanserade via en annan mekanism. Om din arbetsbelastning inte använder API Management ska du inte använda den enbart för belastningsutjämning.

  • Prestandaacceleration avser funktioner som påskyndar webbåtkomst. Prestandaacceleration kan uppnås genom att använda nätverk för innehållsleverans eller optimerad ingress för snabbare klientanslutning till målnätverket. Azure Front Door stöder både innehållsleveransnätverk och Anycast-trafikacceleration. Du kan dra nytta av båda funktionerna med eller utan Application Gateway i arkitekturen.

Andra överväganden

Varje belastningsutjämningstjänst har också kapacitetsstöd eller implementeringsinformation som du bör överväga. Här följer några exempel som kan vara relevanta för ditt belastningsutjämningsscenario:

  • Stöd för WebSockets
  • Stöd för server skickade händelser
  • HTTP/2-stöd (både ta emot och fortsätta till serverdelsnoder)
  • Stöd för sticky-sessioner
  • Övervakningsmekanism för serverdelsnodens hälsotillstånd
  • Användarupplevelse eller fördröjning mellan identifiering av en nod med feltillstånd och dess borttagning från routelogiken.

Avlastningsfunktioner till lastbalanseraren

Med vissa alternativ för belastningsutjämning i Azure kan du avlasta funktioner från serverdelsnoderna till lastbalanseraren. De här alternativen implementerar Gateway Offloading-molndesignmönstret. Application Gateway kan till exempel avlasta TLS, så att arbetsbelastningens offentliga certifikat hanteras på en plats i stället för mellan serverdelsnoder. API Management kan konfigureras för att avlasta vissa grundläggande auktoriseringsproblem, till exempel validering av anspråk i JSON-webbtoken (JWT) åtkomsttoken. Om du avlastar övergripande problem kan du minska logikens komplexitet i dina serverdelar och förbättra deras prestanda.

Exempel

I följande tabell visas olika artiklar baserat på de belastningsutjämningstjänster som används i lösningen.

Tjänster Artikel Beskrivning
Lastbalanserare Belastningsutjämna virtuella datorer mellan tillgänglighetszoner Belastningsutjämna virtuella datorer i tillgänglighetszoner för att skydda dina appar och data från ett osannolikt fel eller förlust av ett helt datacenter. Med zonredundans kan en eller flera tillgänglighetszoner misslyckas och datasökvägen överlever så länge en zon i regionen förblir felfri.
Trafikchef Webbprogram med flera nivåer som skapats för hög tillgänglighet och haveriberedskap Distribuera elastiska program med flera nivåer som skapats för hög tillgänglighet och haveriberedskap. Om den primära regionen blir otillgänglig redundansväxlar Traffic Manager över till den sekundära regionen.
Application Gateway och API Management API Management-arkitektur för landningszoner Använd Application Gateway för att avlasta brandväggen för webbprogram och TLS. Använd API Management för att belastningsutjämning mellan API-serverdelar.
Traffic Manager och Application Gateway Belastningsutjämning för flera regioner med Traffic Manager och Application Gateway Lär dig hur du hanterar webbarbetsbelastningar och distribuerar motståndskraftiga program i flera Azure-regioner för att uppnå hög tillgänglighet och en robust infrastruktur för haveriberedskap.

Nästa steg