Gå globalt
- 3 minuter
I föregående lektion beskrev vi skalning av beräkning och gjorde den mer tillgänglig i processen. Vi föreslog också att du skulle lägga till Azure Managed Redis för att förbättra prestanda och skala ut Azure SQL databaser via horisontell partitionering.
Nästa steg i takt med att ditt företag växer kan vara att bli globalt. Det finns dock några saker du måste tänka på innan du försöker implementera en helt global arkitektur.
Frågor att ställa
Den första frågan är: Behöver du verkligen bli global?
Det är viktigt att förstå vilken smärta våra kunder har innan de tar på sig en sådan uppgift, så ställ dig några fler frågor:
- Kan du få innehåll närmare dina användare via ett nätverk för innehållsleverans?
- Behöver du verkligen skala det här systemet över två (eller flera) geografiska områden? Behöver till exempel en användare i United States ha exakt samma konto i Storbritannien? Skulle oberoende system vara lämpligare? Det här mönstret är vanligt inom e-handel.
- Vilken konsistens behöver du för databasen om du verkligen behöver ett globalt distribuerat system? Stark enhetlighet över hela världen är svår att uppnå. Tjänster som Cosmos DB upprätthåller stark konsekvent beteende i konfigurationer med flera regioner, men det kommer med betydande kompromisser, inklusive högre latens, minskad tillgänglighet under regionala avbrott och ökad RU-användning per operation.
Datakonsekvens
Låt oss titta lite närmare på problemet med datakonsekvens.
Vid distribuerad databehandling refererar konsekvens till hur uppdaterad och enhetlig datan är i systemets alla repliker. Det finns två primära konsistensmodeller.
Stark konsekvensgaranti ger en garanti för linjäriserbarhet. Läsningarna returnerar garanterat den senaste bekräftade versionen av ett objekt.
Och sedan finns det slutlig konsekvens, tanken att en databas eller ett system så småningom kommer att bli konsekvent över tid. Det finns ingen beställningsgaranti för läsningar. Vid avsaknad av ytterligare skrivningar konvergerar replikerna så småningom.
Tjänster som Cosmos DB erbjuder även mellanliggande konsekvensmodeller, till exempel begränsad föråldring, session och konsekvent prefix, som ger olika balanser mellan prestanda och datas färskhet.
Verktyg för att bli global
Om du upptäcker att du verkligen behöver skala ditt program globalt finns det några Azure tjänster som kan hjälpa dig att uppnå det. Låt oss ta en titt på Azure Traffic Manager och Azure Front Door:
- Azure Traffic Manager är en global DNS-baserad belastningsutjämningstjänst. Den använder DNS- och hälsoavsökningar för att dirigera användarna till den bästa felfria serverdelen baserat på de routningsprinciper som du har definierat. Den här routningen kan baseras på prestanda, plats, resursallokering och så vidare. När en felfri serverdel har identifierats ansluter klienterna alltid direkt till serverdelen.
- Azure Front Door är ett modernt moln-CDN och en global lastbalanserare som erbjuder olika lager 7-belastningsutjämningsfunktioner för dina program. Det ger dynamisk platsacceleration (DSA) tillsammans med global belastningsutjämning med nästan realtidsredundans. Det är en mycket tillgänglig och skalbar tjänst som hanteras fullt ut av Azure.
Azure Front Door är i princip en global HTTP-baserad lastbalanserare. Kunden upprättar en anslutning till Front Door, så Front Door agerar proxy för användarnas begäran. Om det begärda objektet inte finns i cacheminnet identifieras rätt routningsregel. Sedan kontrollerar den hälsoavsökningen för den relevanta serverdelen, och förutsatt att allt är felfritt vidarebefordras användarbegäran till den bästa serverdelen baserat på routningsmetoden.
Eftersom Azure Front Door proxyservrar anslutningen kan du utföra vissa avancerade funktioner som att köra en Web Application Firewall och cachelagring, vilket är användbart för skalning. Ingen av dessa funktioner kan uppnås med Traffic Manager.
Diagrammet visar hur du kan använda båda tillsammans.
Den här konfigurationen använder Traffic Manager för enkel DNS-baserad belastningsutjämning till dina statiska tillgångar i lagringskonton. Den använder också Front Door för sökvägsbaserad routning i ditt webbprogram över App Service och virtuella datorer.