Bii a ṣe ja nipasẹ Ogiriina Nla ti Ilu China (Apá 2)

Hi!

Nikita tun wa pẹlu rẹ, ẹlẹrọ eto lati ile-iṣẹ naa SEMrush. Ati pẹlu nkan yii Mo tẹsiwaju itan naa nipa bawo ni a ṣe wa pẹlu ojutu ojutu kan Chinese ogiriina fun iṣẹ wa semrush.com.

В ti tẹlẹ apakan Mo sọ pé:

  • awọn iṣoro wo ni o waye lẹhin ipinnu ti a ṣe “A nilo lati jẹ ki iṣẹ wa ṣiṣẹ ni Ilu China”
  • Awọn iṣoro wo ni Intanẹẹti Kannada ni?
  • kilode ti o nilo iwe-aṣẹ ICP kan?
  • bawo ati idi ti a fi pinnu lati ṣe idanwo awọn ibusun idanwo wa pẹlu Catchpoint
  • Kini abajade ojutu akọkọ wa ti o da lori Nẹtiwọọki China Cloudflare
  • Bii a ṣe rii kokoro kan ni Cloudflare DNS

Apakan yii jẹ ohun ti o nifẹ julọ, ni ero mi, nitori pe o fojusi awọn imuse imọ-ẹrọ kan pato ti iṣeto. Ati pe a yoo bẹrẹ, tabi dipo tẹsiwaju, pẹlu Alibaba awọsanma.

Alibaba awọsanma

Alibaba awọsanma jẹ olupese awọsanma ti o tobi pupọ, eyiti o ni gbogbo awọn iṣẹ ti o gba laaye lati pe ararẹ ni otitọ olupese awọsanma. O dara pe wọn ni aye lati forukọsilẹ fun awọn olumulo ajeji, ati pe pupọ julọ aaye naa ni itumọ si Gẹẹsi (fun China eyi jẹ igbadun). Ninu awọsanma yii, o le ṣiṣẹ pẹlu ọpọlọpọ awọn agbegbe ti agbaye, China oluile, bakanna bi Asia Oceanic (Hong Kong, Taiwan, bbl).

IPSEC

A bẹrẹ pẹlu ilẹ-aye. Niwọn igba ti aaye idanwo wa wa lori awọsanma Google, a nilo lati “ṣe asopọ” Alibaba Cloud pẹlu GCP, nitorinaa a ṣii atokọ ti awọn ipo nibiti Google wa. Ni akoko yẹn wọn ko sibẹsibẹ ni ile-iṣẹ data tiwọn ni Ilu Họngi Kọngi.
Agbegbe ti o sunmọ julọ ti jade lati jẹ Asia-õrùn1 (Taiwan). Ali yipada lati jẹ agbegbe ti o sunmọ julọ ti oluile China si Taiwan cn-shenzhen (Shenzhen).

Nipasẹ terraform ṣe apejuwe ati gbe gbogbo awọn amayederun ni GCP ati Ali. Oju eefin 100 Mbit/s laarin awọn awọsanma lọ soke fere lesekese. Ni ẹgbẹ Shenzhen ati Taiwan, awọn ẹrọ foju aṣoju aṣoju dide. Ni Shenzhen, ijabọ olumulo ti fopin, ni isunmọ nipasẹ oju eefin kan si Taiwan, ati lati ibẹ o lọ taara si IP ita ti iṣẹ wa ni us-õrùn (USA East ni etikun). Ping laarin awọn ẹrọ foju nipasẹ eefin 24ms, eyi ti o jẹ ko bẹ buburu.

Ni akoko kanna, a gbe agbegbe idanwo kan sinu Alibaba awọsanma DNS. Lẹhin fifi agbegbe si NS Ali, akoko ipinnu dinku lati 470 ms si 50 ms. Ṣaaju eyi, agbegbe naa tun wa lori Cloudlfare.

Ni afiwe si eefin si Asia-õrùn1 dide miiran eefin lati Shenzhen taara si us-õrùn4. Nibẹ ni wọn ṣẹda awọn ẹrọ foju aṣoju diẹ sii ati bẹrẹ lati ṣe idanwo awọn solusan mejeeji, ipa-ọna idanwo ipa-ọna nipa lilo Awọn kuki tabi DNS. Ibujoko idanwo jẹ apejuwe ni ọna kika ni eeya atẹle:

Lairi fun awọn tunnels tan jade lati jẹ bi atẹle:
Ali cn-shenzhen <—> GCP Asia-east1 — 24ms
Ali cn-shenzhen <—> GCP us-east4 — 200ms

Awọn idanwo aṣawakiri Catchpoint royin ilọsiwaju to dara julọ.

Ṣe afiwe awọn abajade idanwo fun awọn ojutu meji:

Ipinnu
Akoko
Media
75 Ogorun
95 Ogorun

Oju awọsanma
86.6
18
30
60

IPsec
99.79
18
21
30

Eyi jẹ data lati ojutu ti o nlo oju eefin IPSEC nipasẹ Asia-õrùn1. Nipasẹ us-east4 awọn esi ti buru, ati pe awọn aṣiṣe diẹ sii wa, nitorina emi kii yoo fun awọn esi.

Da lori awọn abajade idanwo yii ti awọn tunnels meji, ọkan ninu eyiti o ti pari ni agbegbe ti o sunmọ julọ si China, ati ekeji ni opin ipari, o han gbangba pe o ṣe pataki lati “farahan” lati labẹ ogiriina Kannada ni yarayara bi o ti ṣee. ṣee ṣe, ati lẹhinna lo awọn nẹtiwọki yara (awọn olupese CDN, awọn olupese awọsanma, ati bẹbẹ lọ). Ko si iwulo lati gbiyanju lati gba nipasẹ ogiriina naa ki o de opin irin ajo rẹ ni isubu kan. Eyi kii ṣe ọna ti o yara ju.

Ni gbogbogbo, awọn abajade ko buru, sibẹsibẹ, semrush.com ni agbedemeji ti 8.8s, ati 75 Percentile 9.4s (lori idanwo kanna).
Ati ki o to lọ siwaju, Emi yoo fẹ lati ṣe kan kukuru lyrical digression.

Lirical digression

Lẹhin ti olumulo ti tẹ aaye naa www.semrushchina.cn, eyiti o ṣe ipinnu nipasẹ awọn olupin DNS Kannada “yara”, ibeere HTTP lọ nipasẹ ojutu iyara wa. Idahun naa jẹ pada ni ọna kanna, ṣugbọn agbegbe naa jẹ pato ni gbogbo awọn iwe afọwọkọ JS, awọn oju-iwe HTML ati awọn eroja miiran ti oju-iwe wẹẹbu semrush.com fun afikun oro ti o gbọdọ wa ni ti kojọpọ nigbati awọn iwe ti wa ni jigbe. Iyẹn ni, alabara ṣe ipinnu “akọkọ” A-igbasilẹ www.semrushchina.cn ati ki o lọ sinu eefin iyara, yarayara gba esi - oju-iwe HTML kan ti o sọ pe:

  • ṣe igbasilẹ iru ati iru js lati sso.semrush.com,
  • Gba awọn faili CSS lati cdn.semrush.com,
  • ati ki o tun ya diẹ ninu awọn aworan lati dab.semrush.com
  • ati bẹ lori.

Ẹrọ aṣawakiri naa bẹrẹ lati lọ si Intanẹẹti “ita” fun awọn orisun wọnyi, ni akoko kọọkan ti o kọja nipasẹ ogiriina ti o jẹ akoko idahun.

Ṣugbọn idanwo iṣaaju fihan awọn abajade nigbati ko si awọn orisun lori oju-iwe naa semrush.com, nikan semrushchina.cn, ati * .semrushchina.cn pinnu si adirẹsi ti ẹrọ foju ni Shenzhen lati le lẹhinna wọ inu eefin naa.

Nikan ni ọna yii, nipa titari gbogbo awọn ijabọ ti o ṣeeṣe si iwọn nipasẹ ojutu rẹ fun iyara ogiri ogiri Ilu Kannada, o le gba awọn iyara itẹwọgba ati awọn itọkasi wiwa oju opo wẹẹbu, ati awọn abajade otitọ ti awọn idanwo ojutu.
A ṣe eyi laisi satunkọ koodu kan ni ẹgbẹ ọja ẹgbẹ.

Subfilter

Ojutu naa ni a bi ni kete lẹhin ti iṣoro yii ti farahan. A nilo PoC (Ẹri ti Erongba) pe awọn solusan ilaluja ogiriina wa ṣiṣẹ daradara. Lati ṣe eyi, o nilo lati fi ipari si gbogbo awọn ijabọ ojula sinu ojutu yii bi o ti ṣee ṣe. Ati pe a lo subfilter ninu nginx.

Subfilter jẹ module ti o rọrun ti o rọrun ni nginx ti o fun ọ laaye lati yi ila kan pada ninu ara idahun si laini miiran. Nitorinaa a yipada gbogbo awọn iṣẹlẹ semrush.com on semrushchina.cn ni gbogbo idahun.

Ati ... ko ṣiṣẹ nitori a gba akoonu fisinuirindigbindigbin lati awọn ẹhin, nitorina subfilter ko rii laini ti o nilo. Mo ni lati ṣafikun olupin agbegbe miiran si nginx, eyiti o dinku idahun ti o si kọja si olupin agbegbe ti o tẹle, eyiti o nšišẹ tẹlẹ lati rọpo okun, funmorawon, ati fifiranṣẹ si olupin aṣoju atẹle ninu pq.

Bi abajade, nibo ni alabara yoo gba .semrush.com, o gba .semrushchina.cn tí a sì fi ìgbọràn rìn nípa ìpinnu wa.

Bibẹẹkọ, ko to lati yi agbegbe pada ni ọna kan, nitori awọn ẹhin ẹhin tun nireti semrush.com ni awọn ibeere atẹle lati ọdọ alabara. Nitorinaa, lori olupin kanna nibiti a ti ṣe rirọpo ọna kan, ni lilo ikosile deede ti o rọrun a gba subdomain lati ibeere naa, lẹhinna a ṣe. aṣoju-kọja pẹlu oniyipada $ogun, ifihan ninu $subdomain.semrush.com. O le dabi airoju, ṣugbọn o ṣiṣẹ. Ati pe o ṣiṣẹ daradara. Fun awọn ibugbe kọọkan ti o nilo ọgbọn oriṣiriṣi, ṣẹda awọn bulọọki olupin tirẹ ki o ṣe iṣeto lọtọ. Ni isalẹ wa ni awọn atunto nginx kuru fun mimọ ati iṣafihan ero yii.

Awọn ilana atunto atẹle yii gbogbo awọn ibeere lati China si .semrushchina.cn:

    listen 80;

    server_name ~^(?<subdomain>[w-]+).semrushchina.cn$;

    sub_filter '.semrush.com' '.semrushchina.cn';
    sub_filter_last_modified on;
    sub_filter_once off;
    sub_filter_types *;

    gzip on;
    gzip_proxied any;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

    location / {
        proxy_pass http://127.0.0.1:8083;
        proxy_set_header Accept-Encoding "";
        proxy_set_header Host $subdomain.semrush.com;
        proxy_set_header X-Accept-Encoding $http_accept_encoding;
    }
}

Eleyi konfigi proxies si localhost si ibudo 83, ati atunto atẹle n duro de ibẹ:

    listen 127.0.0.1:8083;

    server_name *.semrush.com;

    location / {
        resolver 8.8.8.8 ipv6=off;
        gunzip on;
        proxy_pass https://$host;
        proxy_set_header Accept-Encoding gzip;
    }
}

Mo tun, wọnyi ni o wa cropped configs.

Bẹ yẹn. O le dabi idiju, ṣugbọn o wa ninu awọn ọrọ. Ni otitọ, ohun gbogbo rọrun ju awọn turnips steamed :)

Ipari ti digression

Fun igba diẹ a dun nitori arosọ nipa ja bo IPSEC tunnels ko timo. Ṣugbọn lẹhinna awọn tunnels bẹrẹ si ṣubu. Ni ọpọlọpọ igba ọjọ kan fun iṣẹju diẹ. Diẹ diẹ, ṣugbọn iyẹn ko baamu wa. Niwọn igba ti awọn tunnels mejeeji ti pari ni ẹgbẹ Ali lori olulana kanna, a pinnu pe boya eyi jẹ iṣoro agbegbe kan ati pe a nilo lati gbe agbegbe afẹyinti soke.

Wọn gbe e. Awọn tunnels bẹrẹ lati kuna ni awọn oriṣiriṣi awọn akoko, ṣugbọn ikuna ṣiṣẹ daradara fun wa ni ipele oke ni nginx. Ṣugbọn lẹhinna awọn tunnels bẹrẹ si ṣubu ni iwọn akoko kanna 🙂 Ati 502 ati 504 bẹrẹ lẹẹkansi. Uptime bẹrẹ si buru, nitorina a bẹrẹ lati ṣiṣẹ lori aṣayan pẹlu Alibaba CEN (Awọsanma Enterprise Network).

CEN

CEN - Eyi ni Asopọmọra ti awọn VPC meji lati awọn agbegbe oriṣiriṣi laarin Alibaba Cloud, iyẹn ni, o le sopọ awọn nẹtiwọọki aladani ti eyikeyi awọn agbegbe laarin awọsanma pẹlu ara wọn. Ati pataki julọ: ikanni yii ni o muna to muna SLA. O jẹ iduroṣinṣin pupọ mejeeji ni iyara ati akoko akoko. Ṣugbọn kii ṣe rọrun rara:

  • O nira pupọ lati gba ti o ko ba jẹ ọmọ ilu Kannada tabi nkan ti ofin kan,
  • O nilo lati sanwo fun megabit kọọkan ti bandiwidi ikanni.

Nini anfani lati sopọ Mainland China и okeokun, a ṣẹda CEN laarin awọn agbegbe Ali meji: cn-shenzhen и us-õrùn-1 (osunmọ ojuami si us-east4). Ninu Ali us-õrùn-1 dide miiran foju ẹrọ ki o wa ni ọkan diẹ sii hop.

O wa jade bi eleyi:

Awọn abajade idanwo aṣawakiri wa ni isalẹ:

Ipinnu
Akoko
Media
75 Ogorun
95 Ogorun

Oju awọsanma
86.6
18
30
60

IPsec
99.79
18
21
30

CEN
99.75
16
21
27

Iṣẹ naa dara diẹ sii ju IPSEC lọ. Ṣugbọn nipasẹ IPSEC o le ṣe igbasilẹ ni iyara ti 100 Mbit/s, ati nipasẹ CEN nikan ni iyara 5 Mbit/s ati diẹ sii.

Ndun bi arabara, otun? Darapọ iyara IPSEC ati iduroṣinṣin CEN.

Eyi ni ohun ti a ṣe, gbigba ijabọ nipasẹ mejeeji IPSEC ati CEN ni iṣẹlẹ ti ikuna ti eefin IPSEC. Uptime ti di pupọ ga julọ, ṣugbọn iyara ikojọpọ aaye naa tun fi pupọ silẹ lati fẹ. Lẹhinna Mo fa gbogbo awọn iyika ti a ti lo tẹlẹ ati idanwo, mo pinnu lati gbiyanju lati ṣafikun GCP diẹ si agbegbe yii, eyun GLB.

GLB

GLB Ṣe Agbaye Fifuye Iwontunws.funfun (tabi Google Cloud Load Balancer). O ni anfani pataki fun wa: ni ipo ti CDN ti o ni eyikeyi IP, eyi ti o fun ọ laaye lati ṣe ipa ọna ijabọ si ile-iṣẹ data ti o sunmọ onibara, ki awọn ijabọ yara yara sinu nẹtiwọki yara ti Google ati pe o kere si lọ nipasẹ Intanẹẹti "deede".

Laisi ero lemeji, a dide HTTP/HTTPS LB A fi sori ẹrọ awọn ẹrọ foju wa pẹlu subfilter ni GCP ati bi ẹhin.

Awọn eto pupọ wa:

  • Lo Cloudflare China Network, sugbon akoko yi Oti yẹ ki o pato agbaye IP GLB.
  • Pa awọn onibara ni cn-shenzhen, ati lati ibẹ aṣoju ijabọ taara si GLB.
  • Lọ taara lati China si GLB.
  • Pa awọn onibara ni cn-shenzhen, lati ibẹ aṣoju si Asia-õrùn1 nipasẹ IPSEC (ni us-õrùn4 nipasẹ CEN), lati ibẹ lọ si GLB (rọra, aworan ati alaye yoo wa ni isalẹ)

A ṣe idanwo gbogbo awọn aṣayan wọnyi ati ọpọlọpọ awọn arabara diẹ sii:

  • Cloudflare + GLB

Eto yii ko baamu wa nitori akoko asiko ati awọn aṣiṣe DNS. Ṣugbọn idanwo naa ti ṣe ṣaaju ki o to ṣeto kokoro naa ni ẹgbẹ CF, boya o dara julọ ni bayi (sibẹsibẹ, eyi ko yọkuro awọn akoko akoko HTTP).

  • Ali + GLB

Eto yii tun ko baamu fun wa ni awọn ofin ti akoko, nitori GLB nigbagbogbo ṣubu kuro ni oke nitori ailagbara lati sopọ ni akoko itẹwọgba tabi akoko ipari, nitori fun olupin kan ninu China, adirẹsi GLB wa ni ita, nitorinaa lẹhin Chinese ogiriina. Idan naa ko ṣẹlẹ.

  • GLB nikan

Aṣayan ti o jọra si iṣaaju, nikan ko lo awọn olupin ni Ilu China funrararẹ: ijabọ naa lọ taara si GLB (awọn igbasilẹ DNS ti yipada). Nitorinaa, awọn abajade ko ni itẹlọrun, nitori awọn alabara Ilu Kannada lasan ni lilo awọn iṣẹ ti awọn olupese Intanẹẹti lasan ni ipo ti o buru pupọ pẹlu gbigbe ogiriina ju Ali Cloud.

  • Shenzhen -> (CEN/IPSEC) -> Aṣoju -> GLB

Nibi a pinnu lati lo ohun ti o dara julọ ti gbogbo awọn solusan:

  • iduroṣinṣin ati SLA ẹri lati CEN
  • ga iyara lati IPSEC
  • Nẹtiwọọki “iyara” Google ati eyikeyicast rẹ.

Eto naa dabi iru eyi: ijabọ olumulo ti pari lori ẹrọ foju kan ninu ch-shenzhen. Nginx upstreams ti wa ni tunto nibẹ, diẹ ninu eyiti o tọka si awọn olupin IP ikọkọ ti o wa ni opin miiran ti oju eefin IPSEC, ati diẹ ninu awọn oke ṣiṣan tọka si awọn adirẹsi ikọkọ ti awọn olupin ni apa keji CEN. IPSEC tunto si agbegbe Asia-õrùn1 ni GCP (jẹ agbegbe ti o sunmọ julọ si China ni akoko ti a ṣẹda ojutu. GCP bayi tun ni ifarahan ni Ilu Họngi Kọngi). CEN - si agbegbe us-õrùn1 ni Ali awọsanma.

Lẹhinna ijabọ lati awọn opin mejeeji ni itọsọna si eyikeyi IP GLB, eyini ni, si aaye ti o sunmọ julọ ti Google, o si lọ nipasẹ awọn nẹtiwọki rẹ si agbegbe naa us-õrùn4 ni GCP, ninu eyiti awọn ẹrọ foju rọpo wa (pẹlu subfilter ni nginx).

Ojutu arabara yii, bi a ti nireti, lo anfani ti awọn anfani ti imọ-ẹrọ kọọkan. Ni gbogbogbo, ijabọ n lọ nipasẹ IPSEC ni iyara, ṣugbọn ti awọn iṣoro ba bẹrẹ, a yarayara ati fun iṣẹju diẹ tapa awọn olupin wọnyi lati oke ati firanṣẹ ijabọ nikan nipasẹ CEN titi oju eefin yoo fi duro.

Nipa imuse ojutu 4th lati atokọ loke, a ṣaṣeyọri ohun ti a fẹ ati kini iṣowo ti o nilo fun wa ni aaye yẹn ni akoko.

Awọn abajade idanwo aṣawakiri fun ojutu tuntun ni akawe si awọn ti iṣaaju:

Ipinnu
Akoko
Media
75 Ogorun
95 Ogorun

Oju awọsanma
86.6
18
30
60

IPsec
99.79
18
21
30

CEN
99.75
16
21
27

CEN/IPsec + GLB
99.79
13
16
25

CDN

Ohun gbogbo dara ni ojutu ti a ṣe, ṣugbọn ko si CDN ti o le mu ki awọn ijabọ pọ si ni agbegbe ati paapaa ipele ilu. Ni imọran, eyi yẹ ki o yara aaye fun awọn olumulo ipari nipa lilo awọn ikanni ibaraẹnisọrọ ti o yara ti olupese CDN. Ati pe a ronu nipa rẹ ni gbogbo igba. Ati ni bayi, akoko ti de fun aṣetunṣe atẹle ti iṣẹ akanṣe: wiwa ati idanwo awọn olupese CDN ni Ilu China.

Emi yoo sọ fun ọ nipa eyi ni atẹle, apakan ikẹhin :)

orisun: www.habr.com

Fi ọrọìwòye kun