Hej!
Alla bra berÀttelser har ett slut. Och vÄr berÀttelse om hur vi utvecklade en lösning för att snabbt passera den Kinesiska brandvÀggen Àr inget undantag. DÀrför vill jag dela med mig av den sista delen, slutordet om detta Àmne.
I den föregÄende delen berÀttade vi om mÄnga testmiljöer som vi skapade, och vilka resultat de gav. Vi kom fram till att det skulle vara bra att lÀgga till CDN! för att förbÀttra vÄr lösning.
Jag kommer att berÀtta för er hur vi testade Alibaba Cloud CDN, Tencent Cloud CDN och Akamai, och vilken vi till slut valde. SjÀlvklart kommer vi ocksÄ att sammanfatta.

Alibaba Cloud CDN
Vi Àr vÀrd hos Alibaba Cloud, och anvÀnder IPSec och CEN frÄn dem. Det Àr logiskt att först prova deras lösningar.
Alibaba Cloud har tvĂ„ typer av produkter som kan passa oss: CDN och DCDN. Det första alternativet Ă€r en klassisk CDN för en specifik domĂ€n (subdomĂ€n). Det andra alternativet stĂ„r för Dynamic Route for CDN (jag kallar det dynamisk CDN), som kan aktiveras i Full-site-lĂ€ge (för wildcard-domĂ€ner), det cachar ocksĂ„ statiskt innehĂ„ll och accelererar dynamiskt innehĂ„ll, vilket innebĂ€r att dynamiken pĂ„ sidan ocksĂ„ laddas via leverantörens snabba nĂ€tverk. Detta Ă€r viktigt för oss, eftersom vĂ„r webbplats Ă€r mestadels dynamisk, med mĂ„nga subdomĂ€ner, och det Ă€r enklare att konfigurera CDN en gĂ„ng för "stjĂ€rnan" â *.semrushchina.cn.
Vi har redan sett denna produkt i tidigare skeden av vÄrt kinesiska projekt, men dÄ fungerade den inte Ànnu, och utvecklarna lovade att produkten snart skulle bli tillgÀnglig för alla kunder. Och den Àr hÀr nu.
I DCDN kan man:
- konfigurera SSL-terminering med sitt eget certifikat,
- aktivera acceleration av dynamiskt innehÄll,
- flexibelt konfigurera caching av statiska filer,
- utföra cache purge,
- stötta webb-sockets,
- aktivera komprimering och till och med HTML Beautifier.
Kort sagt, allt som hos stora och etablerade CDN-leverantörer.
NÀr origin (den plats dit CDN edge-servrar kommer att gÄ) Àr angiven, ÄterstÄr det att skapa en CNAME för stjÀrnan som refererar till all.semrushchina.cn.w.kunluncan.com (denna CNAME erhölls i Alibaba Cloud-konsolen), och CDN kommer att fungera.
Enligt testresultaten har denna CDN verkligen hjÀlpt oss. Statistiken anges nedan.
Lösning
TillgÀnglighet
Median
75 Percentil
95 Percentil
Cloudflare
86.6
18s
30s
60s
IPsec
99.79
18s
21s
30s
CEN
99.75
16s
21s
27s
CEN/IPsec + GLB
99.79
13s
16s
25s
Ali CDN + CEN/IPsec + GLB
99.75
10s
12.8s
17.3s
Det hÀr Àr riktigt bra resultat, sÀrskilt om man jÀmför med de siffror vi hade i början. Men vi visste att den amerikanska versionen av vÄrt webbtjÀnst www.semrush.com presterar i genomsnitt 8,3 sekunder i en webblÀsartest (ett mycket approximativt vÀrde). Det finns fortfarande rum för förbÀttring. Dessutom fanns det CDN-leverantörer som var intressanta att testa.
SĂ„ vi gĂ„r smidigt över till en annan jĂ€tte pĂ„ den kinesiska marknaden â Tencent.
Tencent Cloud
Tencent utvecklar fortfarande sitt moln â detta syns pĂ„ det begrĂ€nsade antalet produkter. Under vĂ„r anvĂ€ndning ville vi inte bara testa deras CDN, utan ocksĂ„ deras nĂ€tverksinfrastruktur i stort:
- har de nÄgot liknande CEN?
- hur fungerar deras IPSEC? Ăr det snabbt, vad Ă€r uptiden?
- har de Anycast?

Vi gÄr igenom dessa frÄgor en i taget.
CEN-liknande
Tencent har en produkt Cloud Connect Network (), som möjliggör anslutningar mellan VPC:er frÄn olika regioner, inklusive regioner bÄde inom och utanför Kina. Produkterna Àr för nÀrvarande i intern beta och man mÄste skapa en ticket för att be om anslutning. FrÄn supporten fick vi veta att globala konton (varken kinesiska medborgare eller juridiska personer) inte kan delta i beta-programmet och överhuvudtaget koppla en region inom Kina med en region utanför. 1-0 till fördel för Ali Cloud.
IPSEC
Den sydligaste regionen hos Tencent Ă€r â Guangzhou. Vi byggde en tunnel och anslöt den till Hongkong-regionen i GCP (vid den tidpunkten var denna region redan tillgĂ€nglig). Vi reste Ă€ven en andra tunnel i Ali Cloud frĂ„n Shenzhen till Hongkong samtidigt. Det visade sig att latensen via Tencent-nĂ€tverket till Hongkong överlag var bĂ€ttre (10 ms) Ă€n frĂ„n Shenzhen till Hongkong i Ali (120 ms â vad?). Men detta pĂ„verkade inte hastigheten pĂ„ webbplatsen, som var instĂ€lld för att fungera över Tencent och denna tunnel, vilket i sig var en förvĂ„nande insikt och bekrĂ€ftade följande: latens â Ă€r inte en indikator som man verkligen bör uppmĂ€rksamma under utvecklingen av en lösning för att passera den kinesiska brandvĂ€ggen.
Anycast Internet Acceleration
En annan produkt som möjliggör arbete via anycast IP â . Men den Ă€r ocksĂ„ otillgĂ€nglig för globala konton, sĂ„ jag kan inte berĂ€tta om den, men att veta att en sĂ„dan produkt finns kan vara anvĂ€ndbart.
Men testet av CDN visade ganska intressanta resultat. CDNet hos Tencent kan inte aktiveras för full webbplats, endast för specifika domÀner. Vi registrerade domÀner och dirigerade trafik till dem:

Det visade sig att denna CDN har följande funktion: Optimering av grÀnsöverskridande trafik. Denna funktion ska minska kostnaderna för trafik som passerar genom den kinesiska firewallen. Som Origin angavs IP-adressen av Googles GLB (GLB anycast). PÄ sÄ sÀtt ville vi förenkla projektarkitekturen.
Resultaten var mycket bra â i nivĂ„ med Ali Cloud CDN, och ibland till och med bĂ€ttre. Detta Ă€r anmĂ€rkningsvĂ€rt eftersom vi vid framgĂ„ngsrika tester kan avstĂ„ frĂ„n en betydande del av infrastrukturen, tunnlar, CEN, virtuella maskiner etc.
Vi blev glada för kort, dÄ ett problem uppstod: testerna i Catchpoint misslyckades för internetleverantören China Mobile. FrÄn alla platser fick vi timeout genom Tencent CDN. Kommunikationsutbytet med teknisk support ledde ingenstans. Under cirka ett dygn försökte vi lösa problemet, men utan framgÄng.
Jag befann mig i Kina vid den tidpunkten, men kunde inte hitta offentlig Wi-Fi i denna leverantörs nÀtverk för att personligen verifiera problemet. I övrigt sÄg allt snabbt och bra ut.
Men pÄ grund av att operatören China Mobile Àr en av de tre största operatörerna, var vi tvungna att Äterföra trafiken till Ali CDN.
Men överlag var detta en ganska intressant lösning som förtjÀnar mer lÄngvarig testning och felsökning av detta problem.
Akamai
Den senaste CDN-leverantören vi testade var Akamai. Detta Àr en stor leverantör som har sitt eget nÀtverk i Kina. SjÀlvklart kunde vi inte förbise det.

FrÄn början kom vi överens med Akamai om en testperiod sÄ att vi kunde byta domÀn och se hur det skulle fungera i deras nÀtverk. Resultatet av hela testningen kommer jag att beskriva i form av "Vad jag gillade" och "Vad jag inte gillade", samt ge resultaten frÄn testen.
Vad jag gillade:
- Folk frÄn Akamai var mycket hjÀlpsamma med alla frÄgor och stödde oss genom hela testningsprocessen. De försökte stÀndigt förbÀttra nÄgot pÄ sin sida. De gav bra tekniska rÄd.
- Akamai fungerar cirka 10-15% lÄngsammare Àn vÄr lösning via Ali Cloud CDN. Det Àr imponerande att vi angav IP-adressen till GLB för Akamai, det vill sÀga trafiken gick inte genom vÄr lösning (potentiellt kan vi avstÄ frÄn en del av infrastrukturen). Men resultaten frÄn testerna visade trots allt att detta alternativ var sÀmre Àn vÄr nuvarande lösning (jÀmförande resultat nedan).
- BÄde Origin GLB och Origin i Kina testades. BÄda alternativen Àr ungefÀr lika.
- Det finns SÀker rutt (automatisk ruttoptimering). Du kan placera en testobjekt pÄ Origin, och Akamai Edge-servrarna kommer att försöka hÀmta den (vanligt GET). För dessa förfrÄgningar mÀts hastighet och andra metrik, utifrÄn vilket Akamai-nÀtverket optimerar rutterna sÄ att trafiken gÄr snabbare för vÄr webbplats och det Àr tydligt att aktiveringen av denna funktion verkligen har stor inverkan pÄ webbplatsens prestanda.
- Versionshantering av konfigurationen i webbgrĂ€nssnittet â det Ă€r fantastiskt. Du kan göra en jĂ€mförelse mellan versionar, se diff. Titta pĂ„ tidigare versioner.
- Du kan först rulla ut en ny version endast pĂ„ Staging-nĂ€tverket av Akamai â ett nĂ€tverk som Ă€r identiskt med produktionen, men den vĂ€gen pĂ„verkar inte verkliga anvĂ€ndare. För detta test mĂ„ste DNS-poster spoofas pĂ„ den lokala maskinen.
- Mycket snabb laddningstid via deras nÀtverk för stora statiska filer, och uppenbarligen Àven för andra filer. En fil frÄn "kall" cache hÀmtas mÄnga gÄnger snabbare Àn samma fil frÄn Ali CDNs "kalla" cache. FrÄn "het" cache Àr hastigheten redan ungefÀr densamma.
Ali CDN-test:
root@shenzhen1:~# curl -o /dev/null -w@curl_time https://en.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212
% Total % Received % Xferd Genomsnittlig hastighet Tid Tid Tid Aktuell
Dload Uppladdning Totalt Spent Left Hastighet
100 5757k 0 5757k 0 0 513k 0 --:--:-- 0:00:11 --:--:-- 526k
time_namelookup: 0.004286
time_connect: 0.030107
time_appconnect: 0.117525
time_pretransfer: 0.117606
time_redirect: 0.000000
time_starttransfer: 0.840348
----------
time_total: 11.208119
----------
size_download: 5895467 Bytes
speed_download: 525999.000B/sAkamai-test:
root@shenzhen1:~# curl -o /dev/null -w@curl_time https://www.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212
% Total % Received % Xferd Genomsnittlig hastighet Tid Tid Tid Aktuell
Dload Uppladdning Totalt Spent Left Hastighet
100 5757k 0 5757k 0 0 1824k 0 --:--:-- 0:00:03 --:--:-- 1825k
time_namelookup: 0.509005
time_connect: 0.528261
time_appconnect: 0.577235
time_pretransfer: 0.577324
time_redirect: 0.000000
time_starttransfer: 1.327013
----------
time_total: 3.154850
----------
size_download: 5895467 Bytes
speed_download: 1868699.000B/sVi har mÀrkt att situationen i exemplet ovan beror pÄ olika faktorer. Vid tidpunkten för skrivandet av detta avsnitt genomförde jag testet igen. Resultaten för bÄda plattformar visade sig vara ungefÀr desamma. Detta tyder pÄ att internet i Kina, Àven för stora operatörer och molnleverantörer, ibland beter sig pÄ olika sÀtt.
Ett stort plus med Akamai i förhÄllande till föregÄende punkt: om Ali visar sÄdana sken av hög prestanda och mycket lÄg (detta gÀller bÄde Ali CDN, Ali CEN och Ali IPSEC), sÄ fungerar Akamai varje gÄng, oavsett hur jag testar deras nÀtverk, stabilt.
Akamai har verkligen en stor tÀckning i Kina och arbetar genom mÄnga leverantörer.
Vad jag inte gillade:
- Jag gillar inte webbgrĂ€nssnittet och hur det fungerar â det Ă€r ganska uselt. Men man vĂ€njer sig (förmodligen).
- Testresultaten Àr sÀmre Àn vÄr plattform.
- Det finns fler fel vid testerna Àn pÄ vÄr plattform (uptime Àr lÀgre).
- Det finns inga egna DNS-servrar i Kina. DÀrför mÄnga fel i testerna pÄ grund av DNS resolve timeout.
- De tillhandahÄller inte sina IP-ranges -> ingen möjlighet att ange korrekt set_real_ip_from pÄ vÄra servrar.
MÀtningar (~3626 körningar; alla mÀtningar utom Uptime i ms; statistik för en tidsperiod):
CDN-leverantör
Median
75%
95%
Response
Webbsidans svar
TillgÀnglighet
DNS
Anslut
VĂ€nta
Ladda
SSL
Ali CDN
9195
10749
17489
1,715
10,745
99.531
57
17
927
479
200
Akamai
9783
11887
19888
2,352
11,550
98.980
424
91
1408
381
50
Fördelning per percentil (i ms):
Percentil
Akamai
Ali CDN
10
7,092
6,942
20
7,775
7,583
30
8,446
8,092
40
9,146
8,596
50
9,783
9,195
60
10,497
9,770
70
11,371
10,383
80
12,670
11,255
90
15,882
13,165
100
91,592
91,596
Slutsatsen Àr denna: alternativet med Akamai Àr livskraftigt, men ger inte samma stabilitets- och hastighetsnivÄer som vÄr egen lösning tillsammans med Ali CDN.
SmÄ noteringar
Vissa aspekter kom inte med i berÀttelsen, men jag ville ocksÄ skriva om dem.
Peking + Tokyo och Hongkong
Som jag nÀmnde ovan testade vi IPSEC-tunneln till Hongkong (HK). Men vi testade ocksÄ CEN till HK. Det Àr nÄgot billigare, och det var intressant att se hur det skulle fungera mellan stÀder med ett avstÄnd pÄ ~100 km. Det intressanta var att latensen mellan dessa stÀder var 100 ms högre Àn i vÄr ursprungliga lösning (till Taiwan). Hastighet och stabilitet var ocksÄ bÀttre för Taiwan. I slutÀndan valde vi att hÄlla HK som en backup IPSEC-region.
Dessutom testade vi att sÀtta upp en sÄdan installation:
- terminering av kunder i Peking,
- IPSEC och CEN till Tokyo,
- dÀr Ali CDN angavs som origin server i Peking.
Denna konfiguration var inte lika stabil, Àven om den övergripande hastigheten inte var sÀmre Àn vÄr lösning. NÀr det gÀllde tunneln sÄg jag periodiska avbrott Àven för CEN, som skulle varit stabil. DÀrför gick vi tillbaka till den gamla lösningen och avbröt denna uppstÀllning.
Nedan visas statistiken över latens mellan olika regioner via olika kanaler. Kanske Àr den intressant för nÄgon.
IPsec
Ali cn-beijing GCP asia-northeast1 â 193ms
Ali cn-shenzhen GCP asia-east2 â 91ms
Ali cn-shenzhen GCP us-east4 â 200ms
CEN
Ali cn-beijing Ali ap-northeast-1 â 54ms (!)
Ali cn-shenzhen Ali cn-hongkong â 6ms (!)
Ali cn-shenzhen Ali us-east1 â 216 ms
AllmÀn information om internet i Kina
Som ett tillÀgg till problemen med internet, som beskrivs i början, i den första delen av artikeln.
- Internet i Kina fungerar ganska snabbt inrikes.
- Uttalandet baseras pÄ testning av offentliga Wi-Fi-nÀtverk pÄ olika platser dÀr dessa nÀtverk anvÀnds av ett stort antal personer.
- Nedladdnings- och uppladdningshastigheten till servrar inuti Kina var cirka 20 Mbit/s och 5-10 Mbit/s respektive.
- Hastigheten till servrar utanför Kina Àr minimal, mindre Àn 1 Mbit/s.
- Internet i Kina Àr inte sÀrskilt stabilt.
- Ibland kan webbplatser laddas snabbt, ibland lÄngsamt (vid samma tid pÄ dagen under olika dagar), förutsatt att konfigurationen inte Àndras. Det har observerats med exemplet semrushchina.cn. Detta kan tillskrivas Ali CDN, som ocksÄ fungerar olika beroende pÄ tid pÄ dagen, stjÀrnornas position, osv.
- Mobilinternet Ă€r nĂ€stan överallt 4G eller 4G+. Det fungerar i tunnelbanan, hissar â kort sagt, överallt.
- Att kinesiska anvÀndare bara tror pÄ domÀner i zonen .cn Àr en myt. Vi har fÄtt detta bekrÀftat direkt av anvÀndare.
- Man kan se hur redirectar till www.baidu.com (Ă€ven i mainland China).
- MÄnga resurser Àr verkligen blockerade. Enkla exempel: google.com, Facebook, Twitter. Men mÄnga Google-resurser fungerar (naturligtvis inte pÄ alla Wi-Fi och VPN anvÀnds inte (pÄ router-sidan ocksÄ, det Àr sÀkert).
- MÄnga "tekniska" domÀner för blockerade företag fungerar ocksÄ. Det betyder att man inte alltid ska utan att tÀnka radera alla Google- och andra resurs som verkar blockerade. Man bör leta efter en lista över blockerade domÀner.
- De har endast tre huvudsakliga internetleverantörer: China Unicom, China Telecom, China Mobile. Det finns Àven mindre, men deras marknadsandel Àr obetydlig.
Bonus: den slutgiltiga lösningsschemat

Resultat
Det har gÄtt ett Är sedan projektets start. Vi började med att vÄr webbplats överhuvudtaget vÀgrade fungera normalt frÄn Kina, och en enkel GET curl tog 5,5 sekunder.
Sedan, utifrÄn dessa resultat vid första lösningen (Cloudflare):
Lösning
TillgÀnglighet
Median
75 Percentil
95 Percentil
Cloudflare
86.6
18s
30s
60s
Vi kom i slutÀndan fram till sÄdana resultat (statistik för den senaste mÄnaden):
Lösning
TillgÀnglighet
Median
75 Percentil
95 Percentil
Ali CDN + CEN/IPsec + GLB
99.86
8,8 s
9,5 s
13,7 s
Som man kan se, har det inte lyckats att nÄ 100% drifttid Àn, men vi ska hitta pÄ nÄgot, och sedan berÀttar vi för er om resultaten i en ny artikel :)
Respekt till den som har lÀst hela tre delar. Jag hoppas att ni fann detta lika intressant som jag gjorde nÀr jag skapade det.
P.S. Tidigare delar
KĂ€lla: habr.com
