Kuidas me lÔhkusime Suurt Hiina Tuli(Tule) (osa 3)

Tere!
Igas headruvad head lood lĂ”ppevad. Ja meie lugu sellest, kuidas me leiutasime Hiina tulemĂŒĂŒri kiire lĂ€bimise lahenduse, ei ole erand. SeetĂ”ttu kiirustan jagama teiega viimast, lĂ”petavat osa sellel teemal.

Eelmises osas rÀÀkisime paljusid meie loodud teststandardeid ja milliseid tulemusi need andsid. Ja me peatume sellel, et oleks tore lisada CDN! meie skeemi elavdamiseks.

RÀÀgin teile, kuidas me testisime Alibaba Cloud CDN-i, Tencent Cloud CDN-i ja Akamai-d ning millele lÔpuks otsustasime. Ja loomulikult teeme kokkuvÔtte.

Kuidas me lÔhkusime Suurt Hiina Tuli(Tule) (osa 3)

Alibaba Cloud CDN

Me oleme hostitud Alibaba Cloudis, kasutame IPSEC-i ja CEN-i samalt. SeetÔttu on mÔistlik esmalt proovida nende lahendusi.

Alibaba Cloudil on kaks tĂŒĂŒpi toodet, mis vĂ”iksid meile sobida: CDN ja DCDN. Esimene variant on klassikaline CDN konkreetse domeeni (alamdomeeni) jaoks. Teine variant deĆĄifreeritakse kui Dynamic Route for CDN (ma kutsun seda dĂŒnaamiliseks CDN-iks), seda saab aktiveerida Full-site reĆŸiimis (wildcard domeenide jaoks), see salvestab staatikat ja kiirendab dĂŒnaamilist sisu, see tĂ€hendab, et ka lehe dĂŒnaamika laaditakse tasemel kiirete vĂ”rgu pakkumise kaudu. See on meie jaoks oluline, kuna meie veebisait on peamiselt dĂŒnaamiline, seal on kasutusel palju alamdomeene ja on mugavam seadistada CDN kord ĂŒhe korra „tĂ€he” jaoks — *.semrushchina.cn.

Oleme seda toodet varem meie Hiina projekti etappides nĂ€inud, kuid siis ei töötanud see veel ja arendajad lubasid, et toode on kohe kĂ”ikidele klientidele kergesti kergesti kĂ€tte saadav. Ja see on nĂŒĂŒd kergesti kergesti kĂ€tte saadav.

DCDN-is saab:

  • seada SSL-terminatsiooni oma sertifikaadiga,
  • aktiveerida dĂŒnaamilise sisu kiirenduse,
  • paindlikult seadistada staatiliste failide vahemĂ€lu,
  • teha vahemĂ€lu puhastamine,
  • edastada veebipĂ”hised sokid,
  • aktiveerida kompressioon ja isegi HTML ilustaja.

ÜhesĂ”naga, kĂ”ik nagu suurte ja tĂ”siste CDN-teenuse pakkujate juures.

PÀrast seda, kui Origin (koht, kuhu CDN-i serva serverid lÀhevad) on mÀÀratud, jÀÀb alles luua CNAME tÀhe jaoks, mis suunab all.semrushchina.cn.w.kunluncan.com (see CNAME saadi Alibaba Cloudi konsoolist), ja CDN hakkab töötama.

Testide tulemuste kohaselt aitas see CDN meid vÀga. Statistika on toodud allpool.

Lahendus
Aeg
Mediaan
75. percentiil
95. percentiil

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

Need to ensure the content fits the target audience. That's a great result, especially compared to the initial figures. However, we knew that the browser test of the American version of our website www.semrush.com averages about 8.3s from the US (a very close estimate). There's still room for improvement. Additionally, there were CDN providers we were interested in testing.

This smoothly leads us to another giant in the Chinese market — Tencent.

Tencent Cloud

Tencent is still developing its cloud — this is evident from the limited number of products. During our usage, we wanted to test not only their CDN but also their overall network infrastructure:

  • do they have something similar to CEN?
  • how does IPSEC work for them? Is it fast, what’s the uptime?
  • do they have Anycast?

Kuidas me lÔhkusime Suurt Hiina Tuli(Tule) (osa 3)

Let's break down these questions separately.

CEN Analog

Tencent has a product Cloud Connect Network (CCN), which allows connecting VPCs from different regions, both within China and externally. The product is currently in internal beta, and a ticket must be created to request access. From support, we learned that global accounts (not related to Chinese citizens or legal entities) cannot participate in the beta testing program and, in general, cannot connect a region inside China to a region outside. 1-0 in favor of Ali Cloud.

IPSEC

The southernmost region for Tencent is — Guangzhou. We set up a tunnel and connected it with the Hong Kong region in GCP (at that time this region had already become available). We also simultaneously raised a second tunnel in Ali Cloud from Shenzhen to Hong Kong. It turned out that the latency through Tencent’s network to Hong Kong is generally better (10ms) than from Shenzhen to Hong Kong in Ali (120ms — what?). However, this did not speed up the website's operation routed through Tencent and this tunnel, which in itself was an astonishing fact and once again proved the following: latency — for China, this is not a metric that really deserves attention during the development of a solution for passing through the Chinese firewall.

Anycast Internet Acceleration

Another product that allows functioning through anycast IP — AIA. However, it is also unavailable to global accounts, so I won't elaborate on it, but knowing that such a product exists may be useful.

However, the CDN test showed quite interesting results. Tencent’s CDN cannot be enabled for the full site, only for specific domains. We set up domains and directed traffic to them:

Kuidas me lÔhkusime Suurt Hiina Tuli(Tule) (osa 3)

It turned out that this CDN has such a function: PiiriĂŒlese Liikluse Optimeerimine. See funktsioon peaks vĂ€hendama kulusid, kui liiklus lĂ€bib Hiina tulemĂŒĂŒri. NĂ€iteks Origin oli mĂ€rkida Google'i GLB (GLB anycast) IP-aadress. SeelĂ€bi soovisime lihtsustada projekti arhitektuuri.

Tulemused olid vĂ€ga head — Ali Cloud CDNi tasemel ja kohati isegi paremad. See on ĂŒllatav, kuna testide eduka tulemuse korral vĂ”iks osad infrastruktuuri, tunnelite, CEN-i, virtuaalmasinate jne osadest loobuda.

Meie rÔÔm ei kestnud kaua, kuna ilmnes probleem: testid Catchpoints kukkusid lĂ€bi interneti teenuse pakkuja China Mobile jaoks. KĂ”igest asukohast saime aega vĂ€lja CDN Tencentiga. Kirjavahetus tehnilise toega ei viinud kuhugi. Umbes ööpĂ€eva ĂŒritasime seda probleemi lahendada, kuid ei saanud midagi korda.

Olin sel hetkel Hiinas, kuid ei suutnud leida avalikku Wi-Fi-d selle teenusepakkuja vÔrgus, et veenduda probleemis isiklikult. Muud nÀisid kÔik kiired ja head.
Kuid kuna China Mobile on ĂŒks kolmest suurimast operaatorist, olime sunnitud liikluse tagasi suunama Ali CDN-i.
Kuid kokkuvĂ”ttes oli see ĂŒsna huvitav lahendus, mis vÀÀrib pikemat testimist ja selle probleemi tĂ”rkeotsingut.

Akamai

Viimane CDN-teenuse pakkuja, keda testisime, on Akamai. See on suur teenusepakkuja, kellel on oma vĂ”rk Hiinas. Loomulikult ei saanud me temast ĂŒle vaadata.

Kuidas me lÔhkusime Suurt Hiina Tuli(Tule) (osa 3)

Alates algusest leppisime Akamaiga kokku testiperioodis, et saaksime domeeni vahetada ja nĂ€ha, kuidas see nende vĂ”rgus töötab. KĂ”ik testimise tulemused kirjeldan ma osas “Mida meeldis” ja “Mida ei meeldinud”, samuti annan testide tulemused.

Mida meeldis:

  • Akamai töötajad aitasid meid vĂ€ga kĂ”igis kĂŒsimustes ja toetasid meid kĂ”ikidel testimise etappidel. Nad pĂŒĂŒdsid pidevalt paremini teha oma poole pealt. Andsid hĂ€id tehnilisi nĂ”uandeid.
  • Akamai töötab umbes 10-15% aeglasemalt kui meie lahendus Ali Cloud CDN kaudu. Muljetavaldav on see, et Akamai jaoks mÀÀrasime originaali IP-aadressi GLB, st liiklus ei lĂ€inud meie lahenduse lĂ€bi (potentsiaalselt oleks vĂ”imalik loobuda osast infrastruktuurist). Kuid siiski nĂ€itas testide tulemused, et see lahendus on halvem kui meie praegune variant (vĂ”rdlevad tulemused allpool).
  • Testiti nii GLB originaali kui ka originaali Hiinas. MĂ”lemad variandid olid enam-vĂ€hem samad.
  • Jah Sure Route (automaatne marsruutimise optimeerimine). Saate paigutada katseobjekti Originisse ning Akamai Edge serverid proovivad selle kĂ€tte saada (tavaline GET). Nende pĂ€ringute jaoks mÔÔdetakse kiirus ja muud mÔÔdikud, mille pĂ”hjal Akamai vĂ”rgustik optimeerib marsruute, et liiklus meie saidile kulgeks kiiremini ja oleks selgelt nĂ€ha, et selle funktsiooni kasutuselevĂ”tt on tĂ”eliselt mĂ”jutanud saidi laadimise kiirust.
  • Konfiguratsiooni versioonimine veebiliideses on suurepĂ€rane. Saate teha versioonide vahel vĂ”rreldes, vaadata erinevusi. Vaadata eelnevaid versioone.
  • Saate uusi versioone alustada esmalt ainult Akamai Staging vĂ”rgus — see on samasugune vĂ”rk nagu tootmisvĂ”rk, kuid see tee ei mĂ”juta reaalset kasutajat. Selle testi jaoks on vajalik DNS-kirjete petmine kohalikul masinal.
  • Eriti kiire laadimiskiirus nende vĂ”rgu kaudu suure staatika ja tĂ”enĂ€oliselt ka teiste failide jaoks. Fail kĂŒlmast vahemĂ€lust saadakse mitu korda kiiremini kui sama fail Ali CDN kĂŒlmast vahemĂ€lust. Kuumast vahemĂ€lust on kiirus enam-vĂ€hem sama.

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  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
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/s

Akamai 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  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
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/s

Oleme mÀrganud, et eelneva nÀite olukord sÔltub erinevatest teguritest. Selle punkti kirjutamise hetkel tegin testi veel kord. MÔlema platvormi tulemused osutusid enam-vÀhem sarnaseks. See nÀitab meile, et Hiinas kÀitub internet isegi suurte operaatorite ja pilveteenuse pakkujate seas aeg-ajalt erinevalt.

Lisadesin eelmainitud punktile suure plussina Akamai kohta: kui Ali puhul on nĂ€htavad sellised kĂ”rge jĂ”udluse ja vĂ€ga madala latentsusega tĂŒkid (see kehtib nii Ali CDN, Ali CEN kui ka Ali IPSEC kohta), siis Akamai puhul, iga kord, kui ma nende vĂ”rku testin, töötab kĂ”ik stabiilselt.
Akamai'l on tÔepoolest suur katvus Hiinas ja nad töötavad paljude teenusepakkujatega.

Mida me ei meeldi:

  • Ma ei meeldi veebiliides ega töökorraldus — need on nullid. Kuid pĂ”himĂ”tteliselt harjub Ă€ra (ilmselt).
  • Testide tulemused on halvemad kui meie omal platvormil.
  • Vigu testide kĂ€igus on rohkem kui meie platvormil (ĂŒlevaatus on madalam).
  • Hiinas ei ole oma DNS-servereid. SeetĂ”ttu on testides palju vigu, kuna DNS-i lahendamise aeg on ĂŒletas.
  • Ei paku oma IP-aadresse -> ei ole vĂ”imalik kirja panna korrektseid set_real_ip_from meie serverites.

Metrika (~3626 testi; kĂ”ik metoodikad, vĂ€lja arvatud ĂŒlevus, on ms; statistika ĂŒhes ajavahemikus):

CDN teenusepakkuja
Mediaan
75%
95%
Vastus
Veebilehe vastus
Aeg
DNS
Ühenda
Oota
Laadi
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

Jaotamine percentiili jÀrgi (ms):

Percentiil
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

KokkuvÔtteks: Akamai variant on elujÔuline, kuid ei anna sama stabiilsuse ja kiiruse nÀitajaid, nagu meie enda lahendus koos Ali CDN-iga.

VÀikesed mÀrkmed

MÔned punktid ei mahtunud jutustusse, kuid soovisin neist ka kirjutada.

Pekingi + Tokyo ja Hongkong

Nagu ma juba eespool mainisin, testisime IPSEC tunnelit Hongkongi (HK) suunal. Kuid testisime ka CENi HK suunal. See on veidi odavam ja oli huvitav nÀha, kuidas see töötab linnade vahel, mille kaugus on ~100 km. Huvitav oli, et latentsus nende linnade vahel on 100 ms kÔrgem kui meie algvariandi puhul (Taiwani suunal). Kiirus ja stabiilsus oli samuti parem Taiwani puhul. LÔpuks jÀtsime HK backup IPSEC piirkonnaks.

Lisaks proovisime ĂŒles seada sellise paigalduse:

  • klientide lĂ”petamine Pekingis,
  • IPSEC ja CEN Tokyo suunal,
  • Ali CDN-is anti Pekingi server originaalserveriks.

See skeem polnud nii stabiilne, kuigi kiiruselt ei jÀÀnud meie lahendusest maha. Mis puudutab tunnelit, siis nÀgin perioodilisi katkeid isegi CEN-i puhul, mis pidi olema stabiilne. SeetÔttu naasime vana skeemi juurde ja lagundasime selle st stage.

Allpool on statistika latentsuse kohta erinevate piirkondade vahel erinevate kanalite kaudu. VÔib-olla on see kellelegi huvitav.

IPsec
Ali cn-beijing GCP asia-northeast1 — 193 ms
Ali cn-shenzhen GCP asia-east2 — 91 ms
Ali cn-shenzhen GCP us-east4 — 200ms

CEN
Ali cn-beijing Ali ap-northeast-1 — 54 ms (!)
Ali cn-shenzhen Ali cn-hongkong — 6 ms (!)
Ali cn-shenzhen <—> Ali us-east1 — 216ms

Ülevaade internetist Hiinas

Lisaks artikli alguses kirjeldatud internetiprobleemidele.

  • Internet Hiinas töötab siseriiklikult ĂŒsna kiiresti.
    • JĂ€reldus on tehtud avalike Wi-Fi vĂ”rkude testimise pĂ”hjal erinevates asukohtades, kus neid vĂ”rgus kasutab palju inimesi.
    • Siseriiklike serverite allalaadimis- ja ĂŒleslaadimiskiirus oli umbes 20 Mbit/s ja 5-10 Mbit/s vastavalt.
    • Kiirus vĂ€liskanalites on lihtsalt minimaalne, vĂ€hem kui 1 Mbit/s.
  • Internet Hiinas ei ole eriti stabiilne.
    • MĂ”nikord avanevad veebilehed kiiresti, mĂ”nikord aeglaselt (sama aja jooksul eri pĂ€evadel), tingimusel et seadistused ei muutu. Oleme seda tĂ€heldanud nĂ€iteks semrushchina.cn nĂ€itel. Seda vĂ”ib seostada Ali CDN-iga, mis töötab samuti perioodiliselt kiiruselt, sĂ”ltuvalt pĂ€evast, tĂ€htede asendist jne.
  • Mobiilne internet on praktiliselt igal pool 4G vĂ”i 4G+. Signaal on olemas metroos, liftides — lĂŒhidalt, pea igal pool.
  • Kuna Hiina kasutajad usuvad ainult .cn domeenidesse — on mĂŒĂŒt. Oleme seda otse kasutajatelt vĂ€lja uurinud.
    • Saab nĂ€ha, kuidas http://baidu.cn redirectib www.baidu.com (tĂ”epoolest ka mandri-Hiinas).
  • Paljud ressursid on tĂ”epoolest blokeeritud. Lihtsalt: google.com, Facebook, Twitter. Kuid paljud Google'i ressursid töötavad (muidugi mitte kĂ”ikides Wi-Fi vĂ”rkudes ning VPN ei ole sel juhul kasutamisel (ka ruuteri poolel, see on kindel).
  • Paljud blokeeritud ettevĂ”tete "tehnilised" domeenid töötavad samuti. See tĂ€hendab, et kĂ”iki Google'i ja muid nĂ€iliselt blokeeritud ressursse ei pruugi valimatult eemaldada. Tuleb otsida mĂ”ni keelatud domeenide nimekiri.
  • Neil on vaid kolm peamist internetiteenuse pakkujat: China Unicom, China Telecom, China Mobile. On ka mĂ”ned vĂ€iksemad, kuid nende osakaal turul on ebaoluline.

Boonus: lÔplik lahenduste skeem

Kuidas me lÔhkusime Suurt Hiina Tuli(Tule) (osa 3)

KokkuvÔte

Aasta on möödunud projekti kÀivitamisest. Alustasime sellest, et meie veebisait keeldus Hiinas normaalselt töötamast, GET curliga kestsid laadimised 5,5 sekundit.

Siis, neid nÀitajaid esimesel lahendusel (Cloudflare):

Lahendus
Aeg
Mediaan
75. percentiil
95. percentiil

Cloudflare
86.6
18s
30s
60s

JÔudsime selliste tulemusteni (eelmise kuu statistika):

Lahendus
Aeg
Mediaan
75. percentiil
95. percentiil

Ali CDN + CEN/IPsec + GLB
99.86
8.8s
9.5s
13.7s

Kuidas nÀha, 100% tööaega pole veel saavutatud, kuid me midagi vÀlja mÔtleme ja siis rÀÀgime teile tulemustest uues artiklis :)

Kes, kes luges kĂ”ik kolm osa lĂ”puni — respekte. Loodan, et see oli teile sama huvitav kui mulle, kui ma seda tegin.

P.S. Eelnevad osad

Osa 1
Osa 2

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster