Kako smo probili Veliki kineski zaštitni zid (3. dio)

Zdravo!
Svim dobrim pričama dođe kraj. I naša priča o tome kako smo došli do rješenja da brzo prođemo kineski zaštitni zid nije izuzetak. Zato žurim da sa vama podijelim posljednju, završni dio na ovu temu.

U prethodnom dijelu smo govorili o mnogim testnim stolovima do kojih smo došli i kakve su rezultate dali. I odlučili smo se za ono što bi bilo lijepo dodati CDN! za viskoznost u našu šemu.

Reći ću vam kako smo testirali Alibaba Cloud CDN, Tencent Cloud CDN i Akamai, i šta smo na kraju završili. I naravno, da sumiramo.

Kako smo probili Veliki kineski zaštitni zid (3. dio)

Alibaba Cloud CDN

Hostovani smo na Alibaba Cloud-u i koristimo IPSEC i CEN od njih. Bilo bi logično prvo isprobati njihova rješenja.

Alibaba Cloud ima dvije vrste proizvoda koji nam mogu odgovarati: CDN и DCDN. Prva opcija je klasični CDN za određenu domenu (poddomenu). Druga opcija stoji za Dinamička ruta za CDN (ja ga zovem dinamički CDN), može se omogućiti u Full-site modu (za džoker domene), također kešira statički sadržaj i ubrzava dinamički sadržaj na sebi, odnosno dinamika stranice će se također učitavati preko provajdera brze mreže. Ovo je važno za nas, jer je naša stranica u osnovi dinamična, koristi mnogo poddomena, a zgodnije je postaviti CDN jednom za “zvjezdicu” - *.semrushchina.cn.

Ovaj proizvod smo već vidjeli u ranijim fazama našeg kineskog projekta, ali tada još nije radio, a programeri su obećali da će proizvod uskoro postati dostupan svim kupcima. I jeste.

U DCDN-u možete:

  • konfigurirajte SSL terminaciju s vašim certifikatom,
  • omogućiti ubrzanje dinamičkog sadržaja,
  • fleksibilno konfigurirati keširanje statičkih datoteka,
  • očistiti keš,
  • naprijed web utičnice,
  • omogući kompresiju, pa čak i HTML Beautifier.

Općenito, sve je isto kao i kod odraslih i velikih CDN provajdera.

Nakon što se odredi Origin (mjesto na koje će ići CDN rubni serveri), sve što ostaje je kreirati CNAME za zvjezdicu, pozivajući se na all.semrushchina.cn.w.kunluncan.com (ovaj CNAME je primljen na Alibaba Cloud konzoli) i CDN će raditi.

Na osnovu rezultata testiranja, ovaj CDN nam je puno pomogao. Statistike su prikazane u nastavku.

odluka
Uptime
srednji
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

Ovo su jako dobri rezultati, pogotovo ako ih uporedite sa brojevima na početku. Ali znali smo da test pretraživača američke verzije naše web stranice www.semrush.com traje iz SAD-a u prosjeku za 8.3 s (vrlo približna vrijednost). Ima prostora za napredak. Štaviše, bilo je i CDN provajdera koje je bilo interesantno testirati.

Tako da glatko prelazimo na još jednog giganta na kineskom tržištu - Tencent.

Tencent Cloud

Tencent upravo razvija svoj oblak – to se može vidjeti iz malog broja proizvoda. Dok smo ga koristili, željeli smo testirati ne samo njihov CDN, već i njihovu mrežnu infrastrukturu u cjelini:

  • imaju li nesto slicno CEN-u?
  • Kako za njih radi IPSEC? Da li je brzo, koliko je vrijeme rada?
  • imaju li Anycast?

Kako smo probili Veliki kineski zaštitni zid (3. dio)

Pogledajmo ova pitanja odvojeno.

Analogni CEN

Tencent ima proizvod Cloud Connect Network (CCN), koji vam omogućava da povežete VPC-ove iz različitih regiona, uključujući regione unutar i izvan Kine. Proizvod je sada u internoj beta verziji i potrebno je da kreirate tiket sa zahtevom da se povežete na njega. Iz podrške smo saznali da globalni nalozi (ne govorimo o kineskim državljanima ili pravnim licima) ne mogu učestvovati u programu beta testiranja i generalno povezivati ​​region unutar Kine sa regionom izvan nje. 1-0 u korist Ali Clouda

IPsec

Tencentova najjužnija regija je Guangzhou. Sastavili smo tunel i povezali ga sa regijom Hong Kong u GCP-u (tada je ova regija već postala dostupna). U isto vrijeme podignut je i drugi tunel u Ali Cloudu od Šenžena do Hong Konga. Ispostavilo se da je preko Tencent mreže latencija do Hong Konga općenito bolja (10 ms) nego od Shenzhena do Hong Konga do Alija (120 ms - šta?). Ali to ni na koji način nije ubrzalo rad stranice usmjerene na rad kroz Tencent i ovaj tunel, što je samo po sebi bila nevjerovatna činjenica i još jednom je dokazala sljedeće: latencija - za Kinu to nije pokazatelj koji zaista vrijedi obratiti pažnju prilikom razvoja rješenja za prolazak kineskog firewall-a.

Anycast Internet Acceleration

Još jedan proizvod koji vam omogućava rad putem bilo kojeg IP-a je AIA. Ali nije dostupan ni globalnim nalozima, pa vam neću pričati o tome, ali saznanje da takav proizvod postoji može biti korisno.

Ali CDN test je pokazao neke prilično zanimljive rezultate. Tencentov CDN se ne može omogućiti na cijeloj web lokaciji, samo na određenim domenima. Kreirali smo domene i slali promet na njih:

Kako smo probili Veliki kineski zaštitni zid (3. dio)

Ispostavilo se da ovaj CDN ima sljedeću funkciju: Optimizacija prekograničnog saobraćaja. Ova funkcija bi trebala smanjiti troškove kada promet prolazi kroz kineski zaštitni zid. As Origin Navedena je IP adresa Google GLB-a (GLB anycast). Stoga smo željeli pojednostaviti arhitekturu projekta.

Rezultati su bili vrlo dobri - na nivou Ali Cloud CDN, a na nekim mjestima i bolji. Ovo je iznenađujuće, jer ako su testovi uspješni, možete napustiti značajan dio infrastrukture, tunele, CEN, virtuelne mašine itd.

Nismo se dugo radovali, jer se otkrio problem: testovi u Catchpointu nisu uspjeli za internet provajdera China Mobile. Sa bilo koje lokacije smo primili timeout preko Tencentovog CDN-a. Prepiska sa tehničkom podrškom nije dovela ni do čega. Pokušavali smo da rešimo ovaj problem oko jedan dan, ali ništa nije uspelo.

Bio sam u Kini u tom trenutku, ali nisam mogao pronaći javni Wi-Fi na mreži ovog provajdera da lično provjerim problem. Inače je sve izgledalo brzo i dobro.
Međutim, zbog činjenice da je China Mobile jedan od tri najveća operatera, bili smo primorani da vratimo promet Ali CDN-u.
Ali sve u svemu, ovo je bilo prilično zanimljivo rješenje koje zaslužuje duže testiranje i rješavanje ovog problema.

Akamai

Posljednji CDN provajder koji smo testirali bio je Akamai. Ovo je veliki provajder koji ima svoju mrežu u Kini. Naravno, nismo mogli to preći.

Kako smo probili Veliki kineski zaštitni zid (3. dio)

Od samog početka smo se dogovorili sa Akamaijem za probni period kako bismo mogli promijeniti domenu i vidjeti kako će funkcionirati na njihovoj mreži. Rezultat svih testiranja opisat ću u obliku „Šta mi se svidjelo“ i „Šta mi se nije svidjelo“, a također ću dati rezultate testa.

Šta mi se dopalo:

  • Momci iz Akamaija su bili od velike pomoći u svim pitanjima i pratili su nas u svim fazama testiranja. Stalno smo pokušavali nešto poboljšati sa naše strane. Dali su dobre tehničke savjete.
  • Akamai je oko 10-15% sporiji od našeg rješenja putem Ali Cloud CDN-a. Ono što je impresivno je da smo u Origin-u za Akamai naveli GLB-ovu IP adresu, što znači da promet nije prošao kroz naše rješenje (potencijalno bismo mogli napustiti dio infrastrukture). Ipak, rezultati testiranja su pokazali da je ovo rješenje lošije od naše trenutne verzije (uporedni rezultati ispod).
  • Testirano i Origin GLB i Origin u Kini. Obje opcije su približno iste.
  • Postoje Sure Route (automatska optimizacija rutiranja). Možete ugostiti testni objekat na Origin-u, a Akamai Edge serveri će pokušati da ga pokupe (običan GET). Za ove zahtjeve mjere se brzina i druge metrike na osnovu kojih Akamai mreža optimizira rute tako da promet ide brže za našu stranicu i bilo je jasno da je omogućavanje ove funkcije zaista imalo snažan utjecaj na brzinu stranice.
  • Verzija konfiguracije u web sučelju je super. Možete napraviti usporedbu za verzije, pogledajte diff. Pogledajte prethodne verzije.
  • Novu verziju možete prvo izbaciti samo na Akamai Staging mreži - istoj mreži kao i produkcija, samo što na taj način neće utjecati na stvarne korisnike. Za ovaj test, morate lažirati DNS zapise na vašem lokalnom računalu.
  • Vrlo velika brzina preuzimanja preko njihove mreže za velike statične datoteke, i, očigledno, sve druge datoteke. Datoteka iz "hladne" keš memorije se preuzima mnogo puta brže od iste datoteke iz "hladne" keš memorije Ali CDN-a. Iz "vruće" keš memorije brzina je već ista, plus ili minus.

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

Primijetili smo da situacija u gornjem primjeru ovisi o različitim faktorima. U vrijeme pisanja ove tačke, ponovo sam izvršio test. Rezultati za obje platforme su bili približno isti. To nam govori da se internet u Kini, čak i za velike operatere i cloud provajdere, s vremena na vrijeme ponaša drugačije.

Na prethodnu tačku, dodaću veliki plus za Akamai: ako Ali pokaže slične bljeskove visokih performansi i vrlo niskih performansi (ovo se odnosi na Ali CDN, Ali CEN i Ali IPSEC), onda Akamai, svaki put, bez obzira kako testiram njihovu mrežu, sve radi stabilno.
Akamai ima dosta pokrivenosti u Kini i radi preko mnogih provajdera.

Šta mi se nije dopalo:

  • Ne sviđa mi se web interfejs i način na koji radi - tako je loš. Ali u osnovi se navikneš (vjerovatno).
  • Rezultati testova su lošiji od našeg sajta.
  • Ima više grešaka tokom testova nego na našem sajtu (uptime ispod).
  • Mi nemamo sopstvene DNS servere u Kini. Stoga ima mnogo grešaka u testovima zbog isteka DNS rješavanja.
  • Oni ne daju svoje IP opsege -> ne postoji način da se registruju ispravni set_real_ip_from na našim serverima.

metrika (~3626 pokreta; sve metrike osim vremena rada, u ms; statistika za jedan vremenski period):

CDN provajder
srednji
75%
95%
odgovor
Webpage Response
Uptime
DNS
spojiti
čekajte
opterećenje
SSL

AliCDN
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

Distribucija po procentilu (u ms):

Percentil
Akamai
AliCDN

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

Zaključak je sljedeći: Akamai opcija je održiva, ali ne pruža istu stabilnost i brzinu kao naše vlastito rješenje u kombinaciji s Ali CDN-om.

Male beleške

Neki momenti nisu uključeni u priču, ali bih i ja o njima pisao.

Peking + Tokio i Hong Kong

Kao što sam rekao gore, testirali smo IPSEC tunel do Hong Konga (HK). Ali smo također testirali CEN na HK. Košta malo manje, a ja sam se pitao kako bi to funkcioniralo između gradova sa udaljenosti od ~100 km. Pokazalo se zanimljivim da je latencija između ovih gradova 100ms veća nego u našoj originalnoj verziji (do Tajvana). Brzina, stabilnost takođe su bili bolji za Tajvan. Kao rezultat toga, napustili smo HK kao rezervnu IPSEC regiju.

Pored toga, pokušali smo da instaliramo sledeću instalaciju:

  • raskid klijenata u Pekingu,
  • IPSEC i CEN u Tokio,
  • u Ali CDN server u Pekingu je naveden kao izvor.

Ova shema nije bila toliko stabilna, iako po brzini općenito nije bila inferiorna u odnosu na naše rješenje. Što se tiče tunela, vidio sam povremene padove čak i za CEN, koji je trebao biti stabilan. Stoga smo se vratili na staru šemu i demontirali ovu scenu.

Ispod su statistike o kašnjenju između različitih regija za različite kanale. Možda će neko biti zainteresovan za to.

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

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

Opće informacije o internetu u Kini

Kao dodatak problemima s internetom opisanim na samom početku, u prvom dijelu članka.

  • Internet u Kini je prilično brz unutra.
    • Zaključak je donesen na osnovu testiranja javnih Wi-Fi mreža na različitim lokacijama gdje te mreže koristi veliki broj ljudi.
    • Brzine preuzimanja i uploada na servere unutar Kine bile su oko 20 Mbit/s i 5-10 Mbit/s, respektivno.
    • Brzina do servera izvan Kine je jednostavno mala, manja od 1 Mbit/s.
  • Internet u Kini nije baš stabilan.
    • Ponekad se stranice mogu otvoriti brzo, ponekad sporo (u isto doba dana u različitim danima), pod uslovom da se konfiguracija ne mijenja. To smo uočili na primjeru semrushchina.cn. To se može pripisati Ali CDN-u, koji također radi na ovaj način i to u zavisnosti od doba dana, položaja zvijezda itd.
  • Mobilni internet je skoro svuda 4G ili 4G+. Uhvatite ga u metrou, liftovima - ukratko, svuda.
  • Mit je da kineski korisnici vjeruju samo domenima u .cn zoni. To smo naučili direktno od korisnika.
    • Možete vidjeti kako http://baidu.cn preusmjerite na www.baidu.com (i u kontinentalnoj Kini).
  • Mnogi resursi su zaista blokirani. Primitivno: google.com, Facebook, Twitter. Ali mnogi Google resursi rade (naravno, ne na svim Wi-Fi mrežama i VPN se ne koristi (i na strani rutera, to je sigurno).
  • Mnogi “tehnički” domeni blokiranih korporacija također rade. To znači da ne biste uvijek trebali nepromišljeno isključiti sve Google i druge naizgled blokirane resurse. Morate potražiti neku listu zabranjenih domena.
  • Imaju samo tri glavna internet operatera: China Unicom, China Telecom, China Mobile. Ima ih i manjih, ali njihov tržišni udio je neznatan

Bonus: dijagram konačnog rješenja

Kako smo probili Veliki kineski zaštitni zid (3. dio)

Rezultat

Prošlo je godinu dana od početka projekta. Počeli smo s činjenicom da je naša stranica uglavnom odbijala normalno raditi iz Kine, a jednostavno GET curl je trajao 5.5 sekundi.

Zatim, sa ovim indikatorima u prvom rješenju (Cloudflare):

odluka
Uptime
srednji
75 Percentil
95 Percentil

Cloudflare
86.6
18s
30s
60s

Na kraju smo došli do sljedećih rezultata (statistika za prošli mjesec):

odluka
Uptime
srednji
75 Percentil
95 Percentil

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

Kao što vidite, još nismo uspjeli postići 100% uptime, ali ćemo smisliti nešto, a zatim ćemo vam reći o rezultatima u novom članku :)

Svaka čast onima koji su pročitali sva tri dela do kraja. Nadam se da vam je sve ovo bilo zanimljivo kao i meni kada sam to radio.

PS Prethodni dijelovi

Dio 1
Dio 2

izvor: www.habr.com

Dodajte komentar