Mar a bhris sinn tro Bhalla-teine ​​​​mòr Shìona (pàirt 2)

Hello!

Tha Nikita còmhla riut a-rithist, innleadair siostaman bhon chompanaidh SEMrush. Agus leis an artaigil seo tha mi a’ leantainn leis an sgeulachd mu mar a thàinig sinn suas le fuasgladh obrach Balla-teine ​​​​Sìneach airson ar seirbheis semrush.com.

В pàirt roimhe thuirt mi:

  • dè na duilgheadasan a thig às deidh a’ cho-dhùnadh “Feumaidh sinn toirt air ar seirbheis obrachadh ann an Sìona”
  • Dè na duilgheadasan a th’ aig an eadar-lìn Sìneach?
  • carson a tha feum agad air cead ICP?
  • ciamar agus carson a chuir sinn romhainn na leapannan deuchainn againn a dhearbhadh le Catchpoint
  • dè a bha mar thoradh air a’ chiad fhuasgladh againn stèidhichte air Cloudflare China Network
  • Mar a lorg sinn bug ann an Cloudflare DNS

Is e am pàirt seo am fear as inntinniche, nam bheachd-sa, leis gu bheil e a’ cuimseachadh air buileachadh teignigeach sònraichte airson an àrd-ùrlar. Agus tòisichidh sinn, no an àite sin leanaidh sinn, le Cloud Alibaba.

Cloud Alibaba

Cloud Alibaba na sholaraiche sgòthan meadhanach mòr, aig a bheil a h-uile seirbheis a leigeas leis gu h-onarach a bhith ga ghairm fhèin mar sholaraiche sgòthan. Tha e math gu bheil cothrom aca clàradh airson luchd-cleachdaidh cèin, agus gu bheil a’ mhòr-chuid den làrach air eadar-theangachadh gu Beurla (airson Sìona is e sòghalachd a tha seo). Anns an sgòth seo, faodaidh tu obrachadh le mòran roinnean den t-saoghal, tìr-mòr Shìona, a bharrachd air Oceanic Asia (Hong Kong, Taiwan, msaa).

IPSEC

Thòisich sinn le cruinn-eòlas. Leis gu robh an làrach deuchainn againn suidhichte air Google Cloud, dh'fheumadh sinn "Alibaba Cloud" a cheangal ri GCP, agus mar sin dh'fhosgail sinn liosta de dh'àiteachan anns a bheil Google an làthair. Aig an àm sin cha robh an ionad dàta aca fhèin ann an Hong Kong fhathast.
Thionndaidh a-mach gur e an sgìre as fhaisge asia-ear1 (Taiwan). Thionndaidh Ali a-mach mar an roinn as fhaisge air tìr-mòr Shìona gu Taiwan cn-Shenzhen (Shenzhen).

Le cuideachadh bho terraform mhìnich agus thog e am bun-structar gu lèir ann an GCP agus Ali. Chaidh tunail 100 Mbit/s eadar na sgòthan suas cha mhòr sa bhad. Air taobh Shenzhen agus Taiwan, chaidh innealan brìgheil proxying a thogail. Ann an Shenzhen, tha trafaic luchd-cleachdaidh air a thoirt gu crìch, air a chuir tro thunail gu Taiwan, agus às an sin bidh e a’ dol gu dìreach gu IP taobh a-muigh ar seirbheis ann an us-ear (Costa an Ear na SA). Ping eadar innealan brìgheil tro thunail 24ms, rud nach eil cho dona.

Aig an aon àm, chuir sinn raon deuchainn a-steach Alibaba Cloud DNS. Às deidh an sòn a thiomnadh gu NS Ali, chaidh an ùine fuasglaidh sìos bho 470 ms gu 50 ms. Roimhe seo, bha an sòn cuideachd air Cloudlfare.

Co-shìnte ris an tunail a asia-ear1 thog e tunail eile bho Shenzhen gu dìreach gu us-ear4. An sin chruthaich iad barrachd innealan mas-fhìor neach-ionaid agus thòisich iad a’ dèanamh deuchainn air an dà fhuasgladh, a’ ruith trafaic deuchainn a’ cleachdadh Cookies no DNS. Tha am being deuchainn air a mhìneachadh gu sgeamach anns an fhigear a leanas:

B’ e latency airson tunailean a bhith mar a leanas:
Ali cn-Shenzhen <-> GCP asia-ear1 - 24ms
Ali cn-Shenzhen <-> GCP us-ear4 - 200ms

Dh’aithris deuchainnean brobhsair Catchpoint adhartas fìor mhath.

Dèan coimeas eadar toraidhean deuchainn airson dà fhuasgladh:

co-dhùnadh
Uptime
Meadhanach
75 sa cheud
95 sa cheud

Cloudflare
86.6
18
30
60

IPsec
99.79
18
21
30

Is e seo dàta bho fhuasgladh a bhios a’ cleachdadh tunail IPSEC tro asia-ear1. Tro sinne-ear4 bha na toraidhean na bu mhiosa, agus bha barrachd mhearachdan ann, agus mar sin cha toir mi na toraidhean.

Stèidhichte air toraidhean an deuchainn seo de dhà thunail, aon dhiubh air a thoirt gu crìch anns an roinn as fhaisge air Sìona, agus am fear eile aig a ’cheann-uidhe mu dheireadh, dh’ fhàs e soilleir gu bheil e cudromach “nochdadh” bho bhith fo bhalla-teine ​​​​Shìona cho luath ‘s a ghabhas. comasach, agus an uairsin cleachd lìonraidhean luath (solaraichean CDN, solaraichean sgòthan, msaa). Cha leig thu leas feuchainn ri faighinn tron ​​​​bhalla-teine ​​​​agus faighinn chun cheann-uidhe agad ann an aon thuit. Chan e seo an dòigh as luaithe.

San fharsaingeachd, chan eil na toraidhean dona, ge-tà, tha meadhan de 8.8s, agus 75 Percentile 9.4s (air an aon deuchainn) aig semrush.com.
Agus mus gluais mi air adhart, bu mhath leam geàrr-chunntas liriceach goirid a dhèanamh.

Digression digiar

Às deidh don neach-cleachdaidh a dhol a-steach don làrach www.semrushchina.cn, a rèiticheas tro na frithealaichean DNS Sìneach “luath”, bidh an t-iarrtas HTTP a’ dol tron ​​​​fhuasgladh luath againn. Thèid am freagairt a thilleadh air an aon shlighe, ach tha an àrainn air a shònrachadh anns a h-uile sgriobt JS, duilleag HTML agus eileamaidean eile den duilleag-lìn semrush.com airson goireasan a bharrachd a dh’ fheumar a luchdachadh nuair a thèid an duilleag a thoirt seachad. Is e sin, bidh an neach-dèiligidh a’ fuasgladh a’ chlàr A “prìomh”. www.semrushchina.cn agus a’ dol a-steach don tunail luath, a’ faighinn freagairt gu sgiobalta - duilleag HTML a tha ag ràdh:

  • luchdaich sìos js mar sin bho sso.semrush.com,
  • Faigh na faidhlichean CSS bho cdn.semrush.com,
  • agus cuideachd dealbhan a thogail bho dab.semrush.com
  • agus mar sin air.

Bidh am brabhsair a 'tòiseachadh a' dol chun an eadar-lìn "taobh a-muigh" airson na goireasan sin, gach uair a 'dol tro bhalla-teine ​​​​a bhios ag ithe ùine freagairt.

Ach tha an deuchainn roimhe a 'sealltainn nan toraidhean nuair nach eil goireasan air an duilleag semrush.coma-mhàin semrushchina.cn, agus *.semrushchina.cn a’ fuasgladh seòladh an inneal mas-fhìor ann an Shenzhen gus faighinn a-steach don tunail an uairsin.

Is ann dìreach san dòigh seo, le bhith a’ putadh a h-uile trafaic comasach chun ìre as àirde tron ​​​​fhuasgladh agad airson a bhith a’ dol seachad air balla-teine ​​​​Sìneach gu sgiobalta, an urrainn dhut astaran iomchaidh agus comharran ruigsinneachd làrach-lìn fhaighinn, a bharrachd air toraidhean onarach bho dheuchainnean fuasglaidh.
Rinn sinn seo às aonais deasachadh còd singilte air taobh toraidh na sgioba.

Subfilter

Rugadh am fuasgladh cha mhòr sa bhad às deidh an duilgheadas seo nochdadh. Dh'fheumadh sinn PoC (Dearbhadh Bun-bheachd) gu bheil na fuasglaidhean treòrachaidh balla-teine ​​againn ag obair gu math. Gus seo a dhèanamh, feumaidh tu trafaic na làraich gu lèir a phasgadh a-steach don fhuasgladh seo cho mòr ‘s as urrainn dhut. Agus rinn sinn tagradh subfilter ann an nginx.

Subfilter na mhodal gu math sìmplidh ann an nginx a leigeas leat aon loidhne atharrachadh anns a’ bhuidheann freagairt gu loidhne eile. Mar sin dh'atharraich sinn a h-uile tachartas semrush.com air semrushchina.cn anns a h-uile freagairt.

Agus ... cha do dh'obraich e oir fhuair sinn susbaint teann bho na backends, agus mar sin cha do lorg subfilter an loidhne a bha a dhìth. B’ fheudar dhomh frithealaiche ionadail eile a chuir ri nginx, a rinn dì-dhùmhlachadh air an fhreagairt agus a chuir air adhart chun ath fhrithealaiche ionadail, a bha mar-thà trang ag ath-chur an t-sreang, ga dhlùthadh, agus ga chuir chun ath fhrithealaiche progsaidh san t-seine.

Mar thoradh air an sin, càite am faigheadh ​​​​an neach-dèiligidh .semrush.com, fhuair e .semrushchina.cn agus choisich sinn gu h-umhail tro ar co-dhùnadh.

Ach, chan eil e gu leòr dìreach an raon atharrachadh aon dòigh, oir tha na backends fhathast a’ dùileachadh semrush.com ann an iarrtasan às deidh sin bhon neach-dèiligidh. A rèir sin, air an aon fhrithealaiche far a bheilear a’ dèanamh an àite aon-shligheach, a’ cleachdadh abairt shìmplidh chunbhalach gheibh sinn an subdomain bhon iarrtas, agus an uairsin bidh sinn a’ dèanamh proxy_pass le caochladair $ aoigheachd, air a thaisbeanadh ann an $ subdomain.semrush.com. Is dòcha gu bheil e coltach gu bheil e troimh-chèile, ach tha e ag obair. Agus tha e ag obair gu math. Airson raointean fa leth a dh’ fheumas diofar loidsig, dìreach cruthaich na blocaichean frithealaiche agad fhèin agus dèan rèiteachadh air leth. Gu h-ìosal tha configs nginx giorraichte airson an sgeama seo a shoilleireachadh agus a thaisbeanadh.

Bidh an rèiteachadh a leanas a’ pròiseasadh gach iarrtas bho Shìona gu .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;
    }
}

Tha an rèiteachadh seo a' toirt taic do localhost gu port 83, agus tha an rèiteachadh a leanas a’ feitheamh an sin:

    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;
    }
}

Bidh mi ag ath-aithris, is e configs bàrr a tha seo.

Mar sin. Is dòcha gu bheil e a’ coimhead iom-fhillte, ach tha e ann am faclan. Gu dearbh, tha a h-uile dad nas sìmplidh na snèapan le smùid :)

Deireadh digression

Airson greis bha sinn toilichte leis nach deach an uirsgeul mu bhith a’ tuiteam tunailean IPSEC a dhearbhadh. Ach an uairsin thòisich na tunailean a 'tuiteam. Grunn thursan san latha airson beagan mhionaidean. Beagan, ach cha robh sin a’ freagairt oirnn. Leis gun deach an dà thunail a thoirt gu crìch air taobh Ali air an aon router, cho-dhùin sinn gur dòcha gur e duilgheadas roinneil a bha seo agus dh'fheumadh sinn an roinn cùl-taic a thogail.

Thog iad suas e. Thòisich na tunailean a’ fàiligeadh aig diofar amannan, ach dh’ obraich an fhàiligeadh gu math dhuinn aig an ìre shuas an abhainn ann an nginx. Ach an uairsin thòisich na tunailean a 'tuiteam timcheall air an aon àm 🙂 Agus thòisich 502 agus 504 a-rithist. Thòisich Uptime a 'dol sìos, agus mar sin thòisich sinn ag obair air an roghainn le Alibaba CEN (Lìonra Iomairt Cloud).

na chois

na chois - is e seo ceangal dà VPC bho dhiofar roinnean taobh a-staigh Alibaba Cloud, is e sin, faodaidh tu lìonraidhean prìobhaideach de roinnean sam bith san sgòth a cheangal ri chèile. Agus as cudromaiche: tha an sianal seo gu math teann SLA. Tha e gu math seasmhach an dà chuid ann an luaths agus uptime. Ach chan eil e a-riamh cho sìmplidh:

  • tha e gu math duilich fhaighinn mura h-eil thu nad shaoranaich Sìneach no nad bhuidheann laghail,
  • Feumaidh tu pàigheadh ​​​​airson gach megabit de leud-bann seanail.

A’ faighinn cothrom ceangal a dhèanamh Tìr-mòr Sìna и Thall-thairis, chruthaich sinn CEN eadar dà roinn Ali: cn-Shenzhen и us-ear-1 (an t-àite as fhaisge oirnn-ear4). Ann an Ali us-ear-1 thog e inneal brìgheil eile gus am bi fear eile ann hop.

Thionndaidh e a-mach mar seo:

Tha toraidhean deuchainn a’ bhrobhsair gu h-ìosal:

co-dhùnadh
Uptime
Meadhanach
75 sa cheud
95 sa cheud

Cloudflare
86.6
18
30
60

IPsec
99.79
18
21
30

na chois
99.75
16
21
27

Tha an coileanadh beagan nas fheàrr na IPSEC. Ach tro IPSEC faodaidh tu luchdachadh sìos aig astar 100 Mbit/s, agus tro CEN a-mhàin aig astar 5 Mbit/s agus barrachd.

Tha e coltach ri hybrid, ceart? Cuir còmhla astar IPSEC agus seasmhachd CEN.

Is e seo a rinn sinn, a’ ceadachadh trafaic tro gach cuid IPSEC agus CEN ma dh’ fhàillig an tunail IPSEC. Tha uptime air fàs mòran nas àirde, ach tha astar luchdachadh na làraich fhathast a’ fàgail mòran ri bhith air a mhiannachadh. An uairsin tharraing mi a h-uile cuairt a bha sinn air a chleachdadh agus a dhearbhadh mu thràth, agus cho-dhùin mi feuchainn ri beagan a bharrachd GCP a chuir ris a’ chuairt seo, is e sin cap.

cap

cap A bheil Cothromaiche luchdan cruinne (no Google Cloud Load Balancer). Tha buannachd chudromach aige dhuinne: ann an co-theacs CDN tha e aige IP sam bith, a leigeas leat trafaic a chuir chun ionad dàta as fhaisge air an neach-dèiligidh, gus am bi trafaic a’ faighinn a-steach gu lìonra luath Google gu sgiobalta agus nas lugha a ’dol tron ​​​​eadar-lìn“ cunbhalach ”.

Gun a bhith a 'smaoineachadh dà uair, thog sinn HTTP/HTTPS LB Chuir sinn a-steach na h-innealan brìgheil againn le subfilter ann an GCP agus mar backend.

Bha grunn sgeamaichean ann:

  • Airson a chleachdadh Lìonra Sìona Cloudflare, ach an turas seo bu chòir dha Origin cruinne a shònrachadh IP GLB.
  • Cuir crìoch air teachdaichean aig cn-Shenzhen, agus às an sin neach-ionaid an trafaic gu dìreach gu cap.
  • Rach gu dìreach bho Shìona gu cap.
  • Cuir crìoch air teachdaichean aig cn-Shenzhen, às an sin neach-ionaid gu asia-ear1 tro IPSEC (a-steach us-ear4 tro CEN), às an sin rachaibh gu GLB (gu socair, bidh dealbh agus mìneachadh gu h-ìosal)

Rinn sinn deuchainn air na roghainnean sin uile agus grunn eile tar-chinealach:

  • Cloudflare + GLB

Cha robh an sgeama seo freagarrach dhuinn mar thoradh air uptime agus mearachdan DNS. Ach chaidh an deuchainn a dhèanamh mus deach am biast a shuidheachadh air taobh CF, is dòcha gu bheil e nas fheàrr a-nis (ge-tà, chan eil seo a’ dùnadh a-mach amannan HTTP).

  • Ali + GLB

Cha robh an sgeama seo cuideachd a’ freagairt oirnn a thaobh uptime, leis gu tric bhiodh GLB a’ tuiteam a-mach às an t-sruth air sgàth cho neo-chomasach ‘s a tha e ceangal a dhèanamh ann an ùine iomchaidh no ùine a-muigh, oir airson frithealaiche taobh a-staigh Sìona, tha an seòladh GLB fhathast taobh a-muigh, agus mar sin air cùl an Balla-teine ​​​​Sìneach. Cha do thachair an draoidheachd.

  • GLB a-mhàin

Roghainn coltach ris an fhear roimhe, a-mhàin cha do chleachd e frithealaichean ann an Sìona fhèin: chaidh an trafaic gu dìreach gu GLB (chaidh na clàran DNS atharrachadh). Mar sin, cha robh na toraidhean riarachail, leis gu bheil suidheachadh mòran nas miosa aig teachdaichean àbhaisteach Sìneach a tha a ’cleachdadh seirbheisean solaraichean eadar-lìn àbhaisteach le bhith a’ dol seachad air a ’bhalla-teine ​​​​na Ali Cloud.

  • Shenzhen -> (CEN/IPSEC) -> Neach-ionaid -> GLB

An seo chuir sinn romhainn na fuasglaidhean as fheàrr a chleachdadh:

  • seasmhachd agus SLA cinnteach bho CEN
  • astar àrd bho IPSEC
  • Lìonra “luath” aig Google agus a chraoladh sam bith.

Tha an sgeama a’ coimhead rudeigin mar seo: tha trafaic luchd-cleachdaidh air a thoirt gu crìch air inneal brìgheil ann an ch-sheinneag. Tha sruthan suas Nginx air an rèiteachadh an sin, cuid dhiubh a’ comharrachadh frithealaichean IP prìobhaideach a tha suidhichte aig ceann eile tunail IPSEC, agus tha cuid de shruthan suas a’ comharrachadh seòlaidhean prìobhaideach luchd-frithealaidh air taobh eile an CEN. IPSEC air a rèiteachadh don roinn asia-ear1 ann an GCP (b’ e seo an roinn as fhaisge air Sìona aig an àm a chaidh am fuasgladh a chruthachadh. Tha làthaireachd aig GCP a-nis ann an Hong Kong). CEN - gu sgìre us-ear1 ann an Ali Cloud.

An uairsin chaidh trafaic bhon dà cheann a stiùireadh gu anycast IP GLB, is e sin, chun an àite as fhaisge air làthaireachd Google, agus chaidh e tro na lìonraidhean aige chun roinn us-ear4 ann an GCP, anns an robh innealan brìgheil ùra (le subfilter ann an nginx).

Ghabh am fuasgladh tar-chinealach seo, mar a bha sinn an dùil, buannachd bho bhuannachdan gach teicneòlais. San fharsaingeachd, bidh trafaic a’ dol tro IPSEC luath, ach ma thòisicheas duilgheadasan, bidh sinn gu sgiobalta agus airson beagan mhionaidean a’ breabadh na frithealaichean sin a-mach às an abhainn shuas agus a’ cur trafaic tro CEN a-mhàin gus an socraicheadh ​​an tunail.

Le bhith a’ buileachadh an 4mh fuasgladh bhon liosta gu h-àrd, choilean sinn na bha sinn ag iarraidh agus na bha a dhìth air a’ ghnìomhachas bhuainn aig an àm sin.

Toraidhean deuchainn brabhsair airson an fhuasglaidh ùr an taca ris an fheadhainn a bh’ ann roimhe:

co-dhùnadh
Uptime
Meadhanach
75 sa cheud
95 sa cheud

Cloudflare
86.6
18
30
60

IPsec
99.79
18
21
30

na chois
99.75
16
21
27

CEN/IPsec + GLB
99.79
13
16
25

CDN

Tha a h-uile dad math anns an fhuasgladh a chuir sinn an gnìomh, ach chan eil CDN ann a dh’ fhaodadh trafaic a luathachadh aig ìre roinneil agus eadhon baile-mòr. Ann an teòiridh, bu chòir dha seo an làrach a luathachadh airson luchd-cleachdaidh deireannach le bhith a’ cleachdadh seanalan conaltraidh luath an t-solaraiche CDN. Agus bha sinn a’ smaoineachadh mu dheidhinn fad na h-ùine. Agus a-nis, tha an t-àm ann airson an ath chuairt den phròiseact: a’ lorg agus a’ dèanamh deuchainn air solaraichean CDN ann an Sìona.

Agus innsidh mi dhut mu dheidhinn seo anns an ath phàirt mu dheireadh :)

Source: www.habr.com

Cuir beachd ann