Ako sme prelomili Veľký čínsky firewall (3. časť)

Ahoj!
Všetky dobré príbehy sa raz končia. A náš príbeh o tom, ako sme prišli s riešením, ako rýchlo prejsť čínskym firewallom, nie je výnimkou. Preto sa s vami ponáhľam podeliť o posledný, záverečná časť na túto tému.

V predchádzajúcej časti sme hovorili o mnohých testovacích laviciach, ktoré sme vymysleli a aké výsledky priniesli. A dohodli sme sa, čo by bolo pekné pridať CDN! pre viskozitu do našej schémy.

Poviem vám, ako sme testovali Alibaba Cloud CDN, Tencent Cloud CDN a Akamai a s čím sme skončili. A samozrejme, zhrňme si to.

Ako sme prelomili Veľký čínsky firewall (3. časť)

Alibaba Cloud CDN

Sme hosťovaní na Alibaba Cloud a používame od nich IPSEC a CEN. Bolo by logické najskôr vyskúšať ich riešenia.

Alibaba Cloud má dva druhy produktov, ktoré nám môžu vyhovovať: CDN и DCDN. Prvou možnosťou je klasické CDN pre konkrétnu doménu (subdoménu). Druhá možnosť znamená Dynamická trasa pre CDN (Nazývam to dynamické CDN), dá sa povoliť v režime Full-site (pre domény so zástupnými znakmi), ukladá aj statický obsah do vyrovnávacej pamäte a zrýchľuje dynamický obsah na sebe, to znamená, že dynamika stránky sa načíta aj cez poskytovateľa rýchle siete. Je to pre nás dôležité, pretože naša stránka je v zásade dynamická, používa veľa subdomén a je pohodlnejšie nastaviť CDN raz pre „hviezdičku“ - *.semrushchina.cn.

Tento produkt sme už videli v skorších fázach nášho čínskeho projektu, ale vtedy ešte nefungoval a vývojári sľúbili, že produkt bude čoskoro dostupný pre všetkých zákazníkov. A urobil.

V DCDN môžete:

  • nakonfigurovať ukončenie SSL s vaším certifikátom,
  • umožňujú zrýchlenie dynamického obsahu,
  • flexibilne konfigurovať ukladanie statických súborov do vyrovnávacej pamäte,
  • vyčistiť vyrovnávaciu pamäť,
  • dopredné webové zásuvky,
  • povoliť kompresiu a dokonca aj HTML Beautifier.

Vo všeobecnosti je všetko rovnaké ako u dospelých a veľkých poskytovateľov CDN.

Po zadaní Origin (miesto, kam budú smerovať servery CDN edge), zostáva už len vytvoriť CNAME pre hviezdičku s odkazom na all.semrushchina.cn.w.kunluncan.com (tento záznam CNAME bol prijatý v konzole Alibaba Cloud) a CDN bude fungovať.

Na základe výsledkov testov nám toto CDN veľmi pomohlo. Štatistiky sú uvedené nižšie.

rozhodnutie
Uptime
medián
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

Sú to veľmi dobré výsledky, najmä ak ich porovnáte s tým, aké boli čísla na začiatku. Vedeli sme ale, že test prehliadača americkej verzie našej webovej stránky www.semrush.com beží z USA v priemere za 8.3 s (veľmi približná hodnota). Je čo zlepšovať. Okrem toho existovali aj poskytovatelia CDN, ktorých testovanie bolo zaujímavé.

Takže plynulo prejdeme k ďalšiemu gigantovi na čínskom trhu - Tencent.

Tencentový mrak

Tencent svoj cloud ešte len rozvíja – je to vidieť na malom počte produktov. Pri jeho používaní sme chceli otestovať nielen ich CDN, ale aj ich sieťovú infraštruktúru ako celok:

  • majú niečo podobné ako CEN?
  • Ako pre nich funguje IPSEC? Je to rýchle, aká je doba prevádzkyschopnosti?
  • majú Anycast?

Ako sme prelomili Veľký čínsky firewall (3. časť)

Pozrime sa na tieto otázky oddelene.

Analógový CEN

Tencent má produkt Cloud Connect Network (CCN), čo vám umožní pripojiť VPC z rôznych regiónov vrátane regiónov v Číne a mimo nej. Produkt je teraz v internej beta verzii a musíte si vytvoriť lístok so žiadosťou o pripojenie k nemu. Z podpory sme sa dozvedeli, že globálne účty (nehovoríme o čínskych občanoch alebo právnických osobách) sa nemôžu zúčastniť programu beta testovania a vo všeobecnosti prepojiť región v Číne s regiónom mimo. 1:0 v prospech Ali Cloud

IPsec

Najjužnejším regiónom Tencent je Guangzhou. Zostavili sme tunel a pripojili ho k regiónu Hong Kong v GCP (vtedy bol tento región už dostupný). Súčasne bol vybudovaný aj druhý tunel v Ali Cloud zo Shenzhenu do Hong Kongu. Ukázalo sa, že cez sieť Tencent je latencia do Hong Kongu vo všeobecnosti lepšia (10 ms) ako zo Shenzenu do Hong Kongu do Ali (120 ms - čo?). To však nijako nezrýchlilo prácu stránky zameranej na prácu cez Tencent a tento tunel, čo bolo samo osebe úžasným faktom a opäť dokázalo nasledovné: latencia – pre Čínu to nie je ukazovateľ, ktorý naozaj stojí za to venujte pozornosť pri vývoji riešenia na prechod cez čínsky firewall.

Anycast Internet Acceleration

Ďalším produktom, ktorý vám umožňuje pracovať cez anycast IP je AIA. Nie je však k dispozícii ani pre globálne účty, takže vám o tom nepoviem, ale vedieť, že takýto produkt existuje, môže byť užitočné.

Test CDN však ukázal celkom zaujímavé výsledky. Tencent's CDN nie je možné povoliť na celej lokalite, iba na konkrétnych doménach. Vytvorili sme domény a poslali sme na ne návštevnosť:

Ako sme prelomili Veľký čínsky firewall (3. časť)

Ukázalo sa, že toto CDN má nasledujúcu funkciu: Optimalizácia cezhraničnej dopravy. Táto funkcia by mala znížiť náklady, keď prevádzka prechádza cez čínsky firewall. Ako Pôvod Bola zadaná IP adresa Google GLB (GLB anycast). Chceli sme teda zjednodušiť architektúru projektu.

Výsledky boli veľmi dobré – na úrovni Ali Cloud CDN a na niektorých miestach ešte lepšie. Je to prekvapujúce, pretože ak sú testy úspešné, môžete opustiť významnú časť infraštruktúry, tunely, CEN, virtuálne stroje atď.

Neradovali sme sa dlho, pretože sa objavil problém: testy v Catchpointe zlyhali pre poskytovateľa internetu China Mobile. Z akéhokoľvek miesta sme dostali časový limit cez CDN spoločnosti Tencent. Korešpondencia s technickou podporou k ničomu neviedla. Tento problém sme sa pokúšali vyriešiť asi deň, ale nič nefungovalo.

Bol som v tom čase v Číne, ale nemohol som nájsť verejné Wi-Fi v sieti tohto poskytovateľa, aby som si osobne overil problém. Inak všetko vyzeralo rýchlo a dobre.
Vzhľadom na to, že China Mobile je jedným z troch najväčších operátorov, boli sme však nútení vrátiť prevádzku Ali CDN.
Celkovo však išlo o pomerne zaujímavé riešenie, ktoré si zaslúži dlhšie testovanie a riešenie tohto problému.

Akamai

Posledným poskytovateľom CDN, ktorý sme testovali, bol Akamai. Ide o obrovského poskytovateľa, ktorý má svoju sieť v Číne. Samozrejme, nemohli sme to prekonať.

Ako sme prelomili Veľký čínsky firewall (3. časť)

Hneď od začiatku sme sa s Akamai dohodli na skúšobnej dobe, aby sme si prehodili doménu a videli, ako to bude fungovať na ich sieti. Popíšem výsledok všetkých testov vo forme „Čo sa mi páčilo“ a „Čo sa mi nepáčilo“ a uvediem aj výsledky testu.

Čo sa mi páčilo:

  • Chalani z Akamai boli veľmi nápomocní pri všetkých otázkach a sprevádzali nás vo všetkých fázach testovania. Neustále sme sa snažili niečo na našej strane zlepšovať. Poskytli dobré technické rady.
  • Akamai je asi o 10-15% pomalší ako naše riešenie cez Ali Cloud CDN. Pôsobivé je, že v Origin pre Akamai sme špecifikovali IP adresu GLB, čo znamená, že prevádzka neprešla naším riešením (potenciálne by sme mohli opustiť časť infraštruktúry). Napriek tomu výsledky testov ukázali, že toto riešenie je horšie ako naša súčasná verzia (porovnávacie výsledky nižšie).
  • Testované ako Origin GLB, tak Origin v Číne. Obe možnosti sú približne rovnaké.
  • K dispozícii je Jasná cesta (automatická optimalizácia smerovania). Môžete hostiť testovací objekt na Origin a servery Akamai Edge sa ho pokúsia vyzdvihnúť (bežné GET). Pre tieto požiadavky sa meria rýchlosť a ďalšie metriky, na základe ktorých sieť Akamai optimalizuje trasy tak, aby návštevnosť našej stránky išla rýchlejšie a bolo jasné, že povolenie tejto funkcie malo naozaj silný vplyv na rýchlosť stránky.
  • Verzia konfigurácie vo webovom rozhraní je v pohode. Môžete si porovnať verzie, pozrieť sa na rozdiel. Zobraziť predchádzajúce verzie.
  • Novú verziu môžete spustiť najskôr iba v sieti Akamai Staging – rovnakej sieti ako produkcia, ibaže tento spôsob neovplyvní skutočných používateľov. Na tento test je potrebné sfalšovať záznamy DNS na vašom lokálnom počítači.
  • Veľmi vysoká rýchlosť sťahovania cez ich sieť pre veľké statické súbory a zrejme aj akékoľvek iné súbory. Súbor z „studenej“ vyrovnávacej pamäte sa získava mnohokrát rýchlejšie ako rovnaký súbor z „studenej“ vyrovnávacej pamäte Ali CDN. Z „horúcej“ vyrovnávacej pamäte je už rýchlosť plus-mínus rovnaká.

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

Všimli sme si, že situácia vo vyššie uvedenom príklade závisí od rôznych faktorov. V čase písania tohto bodu som test spustil znova. Výsledky pre obe platformy boli približne rovnaké. To nám hovorí, že internet v Číne sa aj v prípade veľkých operátorov a poskytovateľov cloudu z času na čas správa inak.

K predchádzajúcemu bodu pridám veľké plus pre Akamai: ak Ali vykazuje podobné záblesky vysokého výkonu a veľmi nízkeho výkonu (to platí pre Ali CDN, Ali CEN a Ali IPSEC), potom Akamai zakaždým, bez ohľadu na to ako testujem ich sieť, všetko funguje stabilne.
Akamai má v Číne veľké pokrytie a funguje prostredníctvom mnohých poskytovateľov.

Čo sa mi nepáčilo:

  • Nepáči sa mi webové rozhranie a spôsob, akým funguje - je to také zlé. Ale v podstate si na to zvyknete (pravdepodobne).
  • Výsledky testov sú horšie ako na našej stránke.
  • Počas testov je viac chýb ako na našej stránke (dostupnosť nižšie).
  • V Číne nemáme vlastné servery DNS. Preto existuje veľa chýb v testoch v dôsledku časového limitu riešenia DNS.
  • Neposkytujú svoje rozsahy IP -> neexistuje spôsob, ako zaregistrovať tie správne set_real_ip_from na našich serveroch.

Metriky (~3626 XNUMX spustení; všetky metriky okrem Uptime, v ms; štatistiky za jedno časové obdobie):

Poskytovateľ CDN
medián
75%
95%
Odpoveď
Odpoveď webovej stránky
Uptime
DNS
Pripojiť
Počkajte
Load
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

Distribúcia podľa percentilu (v 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

Záver je takýto: možnosť Akamai je životaschopná, ale neposkytuje rovnakú stabilitu a rýchlosť ako naše vlastné riešenie spojené s Ali CDN.

Malé poznámky

Niektoré momenty neboli zahrnuté do príbehu, ale aj o nich by som rád napísal.

Peking + Tokio a Hong Kong

Ako som povedal vyššie, testovali sme tunel IPSEC do Hong Kongu (HK). Ale testovali sme aj CEN do HK. Stojí to trochu menej a bol som zvedavý, ako to bude fungovať medzi mestami so vzdialenosťou ~100 km. Zaujímavé sa ukázalo, že latencia medzi týmito mestami je o 100 ms vyššia ako v našej pôvodnej verzii (do Taiwanu). Rýchlosť, stabilita bola lepšia aj pre Taiwan. V dôsledku toho sme ponechali HK ako záložnú oblasť IPSEC.

Okrem toho sme sa pokúsili nainštalovať nasledujúcu inštaláciu:

  • ukončenie klientov v Pekingu,
  • IPSEC a CEN do Tokia,
  • v Ali CDN bol ako pôvod uvedený server v Pekingu.

Táto schéma nebola taká stabilná, aj keď z hľadiska rýchlosti vo všeobecnosti nebola horšia ako naše riešenie. Čo sa týka tunela, videl som prerušované poklesy aj pre CEN, ktorý mal byť stabilný. Preto sme sa vrátili k starej schéme a túto inscenáciu rozobrali.

Nižšie sú uvedené štatistiky o latencii medzi rôznymi regiónmi pre rôzne kanály. Možno to niekoho bude zaujímať.

IPsec
Ali cn-Peking <—> GCP Ázia-severovýchod1 – 193 ms
Ali cn-shenzhen <—> GCP Ázia-východ2 – 91 ms
Ali cn-shenzhen <—> GCP us-east4 — 200 ms

CEN
Ali cn-Beijing <—> Ali ap-northeast-1 – 54 ms (!)
Ali cn-shenzhen <—> Ali cn-hongkong – 6 ms (!)
Ali cn-shenzhen <—> Ali us-východ1 — 216 ​​ms

Všeobecné informácie o internete v Číne

Ako doplnok k problémom s internetom popísaným na samom začiatku, v prvej časti článku.

  • Internet v Číne je vo vnútri dosť rýchly.
    • Záver bol urobený na základe testovania verejných Wi-Fi sietí v rôznych lokalitách, kde tieto siete využíva veľké množstvo ľudí.
    • Rýchlosť sťahovania a odosielania na servery v Číne bola približne 20 Mbit/s a 5 – 10 Mbit/s.
    • Rýchlosť na servery mimo Číny je jednoducho mizivá, menej ako 1 Mbit/s.
  • Internet v Číne nie je príliš stabilný.
    • Niekedy sa stránky môžu otvárať rýchlo, niekedy pomaly (v rovnakú dennú dobu v rôznych dňoch), za predpokladu, že sa nezmení konfigurácia. Pozorovali sme to na príklade semrushchina.cn. Môže za to Ali CDN, ktorý tiež funguje tak a onak v závislosti od dennej doby, polohy hviezd atď.
  • Mobilný internet je takmer všade 4G alebo 4G+. Chytiť to v metre, výťahoch – skrátka všade.
  • Je mýtus, že čínski používatelia dôverujú iba doménam v zóne .cn. Dozvedeli sme sa to priamo od používateľov.
    • Môžete vidieť ako http://baidu.cn presmerovanie na www.baidu.com (aj v pevninskej Číne).
  • Mnohé zdroje sú skutočne zablokované. Primitívne: google.com, Facebook, Twitter. Mnohé zdroje Google však fungujú (samozrejme, nie všetky siete Wi-Fi a VPN sa nepoužívajú (to je isté aj na strane smerovača).
  • Mnohé „technické“ domény zablokovaných korporácií tiež fungujú. To znamená, že by ste nemali vždy bezohľadne vystrihnúť všetky Google a iné zdanlivo zablokované zdroje. Musíte hľadať nejaký zoznam zakázaných domén.
  • Majú len troch hlavných internetových operátorov: China Unicom, China Telecom, China Mobile. Existujú ešte menšie, ale ich podiel na trhu je zanedbateľný

Bonus: schéma konečného riešenia

Ako sme prelomili Veľký čínsky firewall (3. časť)

Celkový

Od spustenia projektu uplynul rok. Začali sme tým, že naša stránka vo všeobecnosti odmietala normálne fungovať z Číny a jednoducho GET curl trvalo 5.5 sekundy.

Potom s týmito indikátormi v prvom riešení (Cloudflare):

rozhodnutie
Uptime
medián
75 percentil
95 percentil

CloudFlare
86.6
18s
30s
60s

Nakoniec sme dospeli k nasledujúcim výsledkom (štatistika za posledný mesiac):

rozhodnutie
Uptime
medián
75 percentil
95 percentil

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

Ako vidíte, 100% dostupnosť sa nám zatiaľ nepodarilo dosiahnuť, ale niečo vymyslíme a o výsledkoch vám potom povieme v novom článku :)

Rešpekt tým, ktorí dočítali všetky tri diely až do konca. Dúfam, že vás to všetko zaujalo rovnako ako mňa, keď som to robil.

PS Predchádzajúce diely

Часть 1
Часть 2

Zdroj: hab.com

Pridať komentár