En introduktion til Akamai Content Delivery Network

Akamai er en af ​​verdens førende Content Delivery Network (CDN) udbydere. Gennem Akamai Intelligent Platform tilbydes mange produkter, der understøtter ydeevne, tilgængelighed, sikkerhed og indsigt.

Andre CDN'er inkluderer Cloudflare, Fastly, MaxCDN, Incapsula og Rackspace.

Her vil vi se på, hvad et CDN er, derefter nogle detaljer omkring Akamais implementering, herunder:

  • Akamai Intelligent Platform og Edge-servere
  • Akamai Interface og Property Manager
  • Routing ydeevne
  • Caching

Hvad er et CDN?

En brugeranmodning om indhold på det offentlige Internet kan forekomme simpelt ved at oprette forbindelse til den server, der indeholder indholdet ('indholdsoprindelsen') og returnere dette til brugeren, men det er faktisk meget komplekst.

Forbindelsen skal muligvis gå gennem mange internetudbydere (ISP'er), peeringpunkter og datacentre på tværs af konkurrerende netværk og lider under ingen konsekvent tilgængelige ruter.

Mange forskellige enhedstyper og båndbredder kan bruges fra forskellige globale placeringer med forskellige indholdstyper anmodet.

Dette kan føre til svingende hastighed og tilgængelighed, sikkerhedsudfordringer og ringe synlighed af, hvad der sker mellem brugeren og indholdets oprindelse.

En CDN lægger mere kontrol i indholdsudbyderens hænder og hjælper med at forbedre slutbrugeroplevelsen.

Det gør det ved at fungere som et parallelt højtydende netværk og vedligeholde sit eget netværk af stærkt distribuerede servere. Ved at være spredt over mange fysiske og netværksplaceringer, men optimeret som et netværk, findes der mere kontrol og pålidelighed til brugeranmodninger.

Når en virksomhed vokser, har skalering for at imødekomme højere krav til indholdets oprindelse også udfordringer. Vi vil også se på, hvordan CDN-værktøjer kan bruges til at reducere belastningen på oprindelsen, hvilket ikke kun hjælper med at forbedre ydeevnen, men også reducere omkostningerne ved at reducere, hvor høj oprindelsen skal skaleres.

Akamai Intelligent Platform

Akamai opretholder et globalt netværk med mere end 240.000 'kant-servere'. Disse er placeret ved 'kanten' af Internettet så tæt på slutbrugerne som muligt. For at opnå dette er mange kantservere endda placeret direkte i internetudbydere eller i mobildatatårne ​​for at reducere latenstiden mellem tilslutning til en brugers internetudbyder, før de flytter ind i Akamai-netværket, endnu større.

Når en bruger fremsætter en anmodning, kortlægger Akamai dette dynamisk til den nærmeste tilgængelige kantserver. Kantserveren anvender de forretningsregler, som indholdsudbyderen har specificeret, inden den bruger den bedst tilgængelige rute mellem alle andre kantservere i Akamai-netværket til at hente indhold fra oprindelsen. Forretningsregler replikeres på hver kantserver.

Alt tilgængeligt og konfigureret indhold til cache caches derefter på kantserveren til fremtidige anmodninger, der opretter forbindelse til den node. Vi vil se nærmere på dette senere.

Et websted føjes til Akamai ved at tilføje en CNAME-post i DNS, der peger fra værtsnavnet, sig 'community.akamai.com', til et Akamai edge-værtsnavn, 'community.akamai.com.edgekey.net', hvor Akamai kontrollerede edge server mapping tager over for at tildele den bedst tilgængelige kantserver. Hvis du 'graver' et værtsnavn og ser 'edgekey.net', ved du, at Akamai bruges af indholdsudbyderen.

Akamai-grænseflade

Akamai leverer en web-GUI med navnet 'Luna Control Center', flere API'er og en CLI.

Som det ses på fanen Monitor , er mange rapporterings- og analyseværktøjer tilgængelige til at generere indsigt på et CDN-niveau. Logfiler fra kantservere er også tilgængelige efter anmodning.

På fanen Konfigurer vil vi fokusere på at introducere Property Manager og efterlade andre muligheder for et fremtidigt indlæg.

En ejendom , undertiden også kaldet en konfiguration , er den vigtigste måde at kontrollere, hvordan kantservere reagerer på brugeranmodninger. Ejendomme anvender en liste med regler på et sæt værtsnavne , og du kan kun anvende en ejendom ad gangen på et givet værtsnavn. Regler består af kriterier / matchbetingelser og adfærd . Et yderligere eksempel på dette ses senere, når man ser på caching. Hver ejendoms standardregel skal angive en gyldig indholdsudbyderkode ( CP), der skal faktureres og rapporteres for tjenesten. Regler er 'sidste kamp vinder'.

En Property Manager API (og CLI) findes med en stor ordliste over koncepter.

Når du foretager ændringer i en ejendom, oprettes der først en ny version, der gør det muligt at foretage og teste ændringer, mens den tidligere ejendom forbliver aktiv. Den nye version kan først aktiveres på Akamai-iscenesættelsennetværk, som en udvikler kan pege på sin lokale maskine til at køre test mod, inden den aktiveres i produktionen. Produktionsaktivering tager cirka ti minutter at udbrede den nye version globalt til alle kantservere, med en hurtig tilbageførsel, der ruller tilbage inden for få minutter.

Ruteydelse

Ud over at tilbyde en stadigt stigende mængde distribuerede kantservere, for at kunne servere cachelagret indhold så tæt på enhver bruger som muligt, kan ruten til indholdets oprindelse optimeres. I Akamasis tilfælde er dette via SureRoute.

Akamais netværk af servere (en bruger opretter først forbindelse til kantserveren og enhver efterfølgende forælder til den server) overlejrer standardruten til oprindelsen. Standardruten kan passere mellem flere forskellige internetudbydere og netværk, som ikke altid passer godt sammen. Som set ovenfor kan et tabsfrit link (eller anden sådan nedbrydning) betyde, at en ikke-åbenbar rute er den bedste mulighed.

Den bedste rute findes i to trin.

  • For det første kører Akamai-servere løbende sonder mod hinanden og mod en lavere hastighed mod alle Akamai-kunders oprindelse. Disse bruges til at beregne og distribuere en central liste over kandidatruter mellem hver kantserver / oprindelsesparring.
  • For det andet, for at indsnævre disse rå kandidatruter til en enkelt bedste mulighed, placeres et statisk SureRoute-testobjekt af hver kunde i deres specifikke oprindelse med en størrelse, der svarer til deres gennemsnitlige forventede indhold. Løb til at hente dette objekt køres med jævne mellemrum mellem hver kantserver og oprindelsen, så en registrering af det med den laveste latenstid og / eller pakketabrate kan holdes ajour.

Dette betyder, at den hurtigste og mest pålidelige rute på det tidspunkt kan bruges til hver række til en oprindsserver for at nå oprindelsen.

Caching

Cache på en kantserver kan i høj grad reducere ventetiden for slutbrugeren.

Da organisationer skalering af cache kan også blive stadig vigtigere for at reducere belastningen på indholdets oprindelse for både bedre ydeevne og for at reducere omkostningerne.

Som beskrevet i svaret til "Deler Akamai kantservere cachelagret indhold" grupperes kantservere i netværksregioner. Hvis en bestemt kantservers cache ikke er udfyldt, sender den en lokal anmodning til de andre kantservere i dens region, og hvis en peer har indhold, vil den tjene svaret, før den cachelagrer den selv.

Hvis alle lokale peers cacher er tomme (eller uaktuelle), vil anmodningen blive videresendt til kantens moderserver, hvor den samme lokale kontrol finder sted mellem forældrenes jævnaldrende. Hvis der ikke cachelagres noget indhold langs hele ruten, vender det tilbage til oprindelsen og genbefolker cachen med dens svar.

Den anvendte standardcache-nøgle består af værtsnavnet (domæne), sti og forespørgselsstreng. Dette kan ændres for at reducere kardinalitet og / eller give mere kontrol over cache-udrensning. Dette kan kun være ved at inkludere specifikke forespørgselsparametre, så ekskludere ting som produkt-id'er, tilføje værdierne for visse cookies, overskrifter eller brugerdefinerede variabler.

Matchbetingelser (hvis der f.eks. Findes en ' x ' -cookie) kan kombineres med 'bypass-cache' -adfærd for at skabe avancerede scenarier som f.eks. At cache forskelligt indhold til brugere med en session eller for brugere forskellige steder.

En browserudvidelse som ModHeader kan bruges til at se Akamai Pragma Headers til lokal undersøgelse af cache-opførsel.

Afsluttende tanker

Brug af et CDN giver mere kontrol til indholdsudbydere og værktøjer som dem, der er beskrevet ovenfor, giver fordele, der bliver stadig vigtigere, når man arbejder i stor skala.

Mens Akamai-specifikke produkter er blevet diskuteret her, findes der lignende koncepter om at arbejde i stor skala med andre CDN-udbydere.

Andre Akamai-specifikationer kan blive dækket i et fremtidigt indlæg, er du velkommen til at holde øje med eller læse om foreslåede næste emner såsom:

  • Sikkerhedsforbedringer med certifikatstyring og Web Application Firewalls (WAF'er)
  • Billedhåndtering til optimeret billedlevering
  • Cloudlets giver granulær kontrol uden for aktiveringscyklussen for ejendomsadministration med mange typer tilgængelige til forskellige brugssager
  • Global Traffic Management (GTM) til DNS-baseret belastningsafbalancering
  • mPulse til brug af Real User Metrics (RUM) til overvågning af ydeevne

Tak for læsningen?

Du kan også nyde:

  • En begyndervejledning til Amazons Elastic Container Service
  • Sådan tilføjes trinvist Flow til en eksisterende React-app
  • Progressiv forbedring med CSS Grid