Qrator filtering network configuration system

Qrator filtering network configuration system

TL; DR: Tlhaloso ea meralo ea meralo ea bareki-server ea sistimi ea rona ea kahare ea taolo ea tlhophiso ea marang-rang, QControl. E ipapisitse le melaoana e 'meli ea lipalangoang e sebetsang le melaetsa e pakiloeng ea gzip ntle le khatello lipakeng tsa li-endpoints. Li-routers tse ajoang le li-endpoints li fumana lintlafatso tsa tlhophiso, 'me protocol ka boeona e lumella ho kengoa ha li-relay tsa mahareng tsa lehae. Tsamaiso e hahiloe holim'a molao-motheo bekapo e fapaneng ("e tsitsitseng morao tjena", e hlalositsoeng ka tlase) 'me e sebelisa puo ea lipotso ea JMESpath hammoho le mochine oa templating oa Jinja ho fana ka lifaele tsa tlhophiso.

Qrator Labs e sebelisa marang-rang a phokotso ea tlhaselo lefatšeng ka bophara. Marang-rang a rona a sebetsa ho latela molao-motheo oa anycast, 'me li-subnet li bapatsoa ka BGP. Ho ba BGP anycast network e fumanehang libakeng tse 'maloa tsa Lefatše, re ka sebetsana le ho sefa sephethephethe se seng molaong haufi le mantlha a Marang-rang - Basebelisi ba Tier-1.

Ka lehlakoreng le leng, ho ba marang-rang a arolelanoang ka libaka ha ho bonolo. Puisano pakeng tsa lintlha tsa marang-rang tsa boteng ke ea bohlokoa bakeng sa mofani oa litšebeletso tsa ts'ireletso hore a be le tlhophiso e tsitsitseng ea li-node tsohle tsa marang-rang, ho li ntlafatsa ka nako e loketseng. Ka hona, e le ho fana ka boemo bo phahameng ka ho fetesisa ba ts'ebeletso ea mantlha ho moreki, re ne re hloka ho fumana mokhoa oa ho hokahanya data ea tlhophiso ka nepo lik'honthinenteng.

Tshimolohong Lentswe le ne le le teng. Ka potlako e ile ea fetoha protocol ea puisano e hlokang ntlafatso.


Lejoe la motheo la boteng ba QControl, 'me ka nako e ts'oanang lebaka le ka sehloohong la ho sebelisa nako e ngata le lisebelisoa ho haha ​​​​protocol ea mofuta ona, ke tlhokahalo ea ho fumana mohloli o le mong o nang le matla oa ho hlophisa le, qetellong, ho lumellana le lintlha tsa rona tsa ho ba teng. ka eona. Polokelo ka boeona e ne e le e 'ngoe ea litlhoko tse' maloa nakong ea nts'etsopele ea QControl. Ho feta moo, re ne re boetse re hloka ho kopanngoa le lits'ebeletso tse teng le tse reriloeng libakeng tsa boteng (POP), mekhoa e bohlale (le e ka khonehang) bakeng sa ho netefatsa lintlha, hammoho le taolo ea phihlello. Ntle le sena, re ne re boetse re batla ho laola sistimi e joalo ka ho sebelisa litaelo ho fapana le ho etsa liphetoho ho lifaele. Pele ho QControl, data e ne e romelloa libakeng tsa boteng hoo e ka bang ka letsoho. Haeba e 'ngoe ea lintlha tsa boteng e ne e le sieo' me re lebala ho e ntlafatsa hamorao, tlhophiso e ne e tla qetella e sa lumellane 'me re tla tlameha ho senya nako ho e tsosolosa le ho sebetsa.

Ka lebaka leo, re ile ra tla ka morero o latelang:
Qrator filtering network configuration system
Seva ea tlhophiso e ikarabella bakeng sa netefatso le polokelo ea data; router e na le lintlha tse 'maloa tse amohelang le ho phatlalatsa lintlafatso tsa tlhophiso ho tsoa ho bareki le lihlopha tsa ts'ehetso ho ea ho seva, le ho tloha ho seva ho ea libakeng tsa boteng.

Boleng ba khokahano ea Marang-rang bo ntse bo fapana haholo lefatšeng ka bophara - ho hlakisa ntlha ena, ha re shebeng MTR e bonolo ho tloha Prague, Czech Republic ho ea Singapore le Hong Kong.

Qrator filtering network configuration system
MTR ho tloha Prague ho ea Singapore

Qrator filtering network configuration system
Ho joalo le ho Hong Kong

High latency e bolela lebelo le tlase. Ho phaella moo, ho na le tahlehelo ea liphutheloana. Bophara ba kanale ha bo lefelle bothata bona, bo lokelang ho nahanoa ka linako tsohle ha ho etsoa litsamaiso tse arolelanoang.

Tlhophiso e felletseng ea sebaka sa ho ba teng ke palo e kholo ea data e lokelang ho romelloa ho baamoheli ba bangata ka likhokahano tse sa tšepahaleng. Ka lehlohonolo, le hoja tlhophiso e fetoha khafetsa, e etsahala ka mekhahlelo e nyane.

Moralo o tsitsitseng

Re ka re ho aha marang-rang a ajoang ho latela molao-motheo oa lintlafatso tse ntseng li eketseha ke tharollo e hlakileng. Empa ho na le mathata a mangata ka diffs. Re hloka ho boloka liphapang tsohle lipakeng tsa litšupiso, hape re khone ho li romella hape haeba motho a fositse karolo ea data. Sebaka se seng le se seng se tlameha ho li sebelisa ka tatellano e hlakileng. Ka tloaelo, tabeng ea libaka tse 'maloa, ts'ebetso e joalo e ka nka nako e telele. Motho ea amohelang o tlameha ho boela a khone ho kopa likarolo tse sieo, 'me, ha e le hantle, karolo e bohareng e tlameha ho arabela kopo e joalo ka nepo, e romela feela lintlha tse sieo.

Ka lebaka leo, re fihletse tharollo e khahlisang - re na le lekhalo le le leng feela la litšupiso, le tsitsitseng, ha re le bitse le tsitsitse, 'me ke phapang e le' ngoe feela bakeng sa eona - ea morao-rao. E 'ngoe le e' ngoe ea morao tjena e itšetlehile ka setaleng sa ho qetela se hlahisitsoeng 'me se lekane ho tsosolosa data ea tlhophiso. Hang ha e sa tsoa fihla moo e eang teng, ea khale ha e sa hlokahala.

Ho setseng feela ke ho romella tlhophiso e ncha e tsitsitseng nako le nako, mohlala hobane haufinyane e se e le kholo haholo. Ntho ea bohlokoa hape mona ke hore re romela lintlafatso tsena kaofela ka mokhoa oa khaso / multicast, ntle le ho tšoenyeha ka batho ba amohelang batho ka bomong le bokhoni ba bona ba ho kopanya likotoana tsa data. Ha re se re na le bonnete ba hore motho e mong le e mong o na le setala se nepahetseng, re romella tse ncha feela. Na ho loketse ho hlakisa hore na sena se sebetsa? E sebetsa. E tsitsitseng e bolokiloe ho seva sa tlhophiso le baamoheli, haufinyane e entsoe ha ho hlokahala.

Mehaho ea lipalangoang tsa maemo a mabeli

Hobaneng re hahile lipalangoang tsa rona maemong a mabeli? Karabo e bonolo haholo - re ne re batla ho qhekella tsela ho tloha ho logic ea boemo bo holimo, re khothatsoa ke mohlala oa OSI ka lipalangoang le likarolo tsa ts'ebeliso. Re sebelisitse Thrift bakeng sa karolo ea protocol ea lipalangoang, le fomate ea serialization ea msgpack bakeng sa sebopeho sa maemo a holimo sa melaetsa ea taolo. Ke ka lebaka lena router (e etsang li-multicast/broadcast/relay) e sa shebelle ka har'a msgpack, e sa phutholle kapa ho paka litaba ka morao, 'me e fetisetsa data pele feela.

Thrift (ho tsoa ho Senyesemane - "thrift", e bitsoa [θrift]) ke puo e hlalosang sebopeho se sebelisoang ho hlalosa le ho theha litšebeletso bakeng sa lipuo tse fapaneng tsa lenaneo. Ke moralo oa li-call tsa remote process (RPC). E kopanya liphaephe tsa software tse nang le enjine ea ho hlahisa khoutu ho nts'etsapele lits'ebeletso tse sebetsang hantle kapa tse fokolang le ha bonolo lipakeng tsa lipuo.

Re khethile moralo oa Thrift ka lebaka la RPC le tšehetso ea lipuo tse ngata. Joalo ka tloaelo, likarolo tse bonolo e ne e le moreki le seva. Leha ho le joalo, router e ile ea fetoha linate tse thata ho senya, karolo e 'ngoe ka lebaka la ho hloka tharollo e lokiselitsoeng nakong ea tsoelo-pele ea rona.

Qrator filtering network configuration systemHo na le likhetho tse ling, joalo ka protobuf / gRPC, leha ho le joalo, ha re qala projeke ea rona, gRPC e ne e le ncha haholo 'me ha rea ​​ka ra iteta sefuba ho e palama.

Ehlile, re ne re ka (ha e le hantle re ka be re) ra iketsetsa baesekele ea rona. Ho ka ba bonolo ho theha protocol ea seo re se hlokang hobane meralo ea bareki-server e batla e otlolohile ho e sebelisa ha e bapisoa le ho aha router ho Thrift. Ka tsela e 'ngoe kapa e' ngoe, ho na le leeme la setso mabapi le liprothokholo tse ingoletseng le ts'ebetsong ea lilaebrari tse tsebahalang (ka lebaka le letle); ho feta moo, nakong ea lipuisano potso e lula e hlaha: "Re tla fetisetsa see joang lipuong tse ling?" Kahoo hang-hang re ile ra lahla khopolo ea baesekele.

Msgpack e tšoana le JSON, empa e potlakile ebile e nyane. Ke mokhoa oa ho kopanya data oa binary o lumellang data ho fapanyetsanoa pakeng tsa lipuo tse ngata.

Boemong ba pele re na le Thrift e nang le tlhaiso-leseling e hlokahalang bakeng sa router ho fetisa molaetsa. Boemong ba bobeli ho na le meaho ea liphutheloana tsa msgpack.

Re khethile msgpack hobane e potlakile ebile e kopane ho feta JSON. Empa ho bohlokoa le ho feta, e tšehetsa mefuta ea data e tloaelehileng, e re lumellang ho sebelisa likarolo tse pholileng tse kang ho fetisa li-binary tse tala kapa lintho tse khethehileng tse bontšang ho ba sieo ha data, e neng e le ea bohlokoa bakeng sa morero oa rona oa "haufinyane-o tsitsitseng".

JMESPath
JMESPath ke puo ea lipotso ea JSON.
Sena ke sona seo tlhaloso eo re e fumanang ho tsoa litokomaneng tsa semmuso tsa JMESPath e shebahala joalo, empa ha e le hantle, e etsa ho fetang moo. JMESPath e u lumella ho batla le ho sefa lifate tse nyane ka har'a sebopeho sa sefate se sa reroang, 'me u sebelise liphetoho ho data ka fofa. E boetse e u lumella ho kenya li-filters tse khethehileng le mekhoa ea ho fetola data. Le hoja, ehlile, e hloka boiteko ba boko ho utloisisa.

Jinja
Bakeng sa bareki ba bang, re hloka ho fetola tlhophiso hore e be faele - kahoo re sebelisa enjene ea template mme Jinja ke khetho e hlakileng. Ka thuso ea eona, re hlahisa faele ea tlhophiso ho tsoa template le data e amohetsoeng sebakeng seo u eang ho sona.

Ho hlahisa faele ea tlhophiso, re hloka kopo ea JMESPath, template bakeng sa sebaka sa faele ho FS, le template bakeng sa config ka boeona. Hape ke mohopolo o motle mothating ona ho hlakisa litumello tsa faele. Sena sohle se kopantsoe ka katleho faeleng e le 'ngoe - pele template ea tlhophiso e qala, re beha hlooho ka sebopeho sa YAML se hlalosang tse ling kaofela.

Ka mohlala:

---
selector: "[@][[email protected]._meta.version == `42`] | items([0].fft_config || `{}`)"
destination_filename: "fft/{{ match[0] }}.json"
file_mode: 0644
reload_daemons: [fft] ...
{{ dict(match[1]) | json(indent=2, sort_keys=True) }}

Bakeng sa ho etsa faele ea tlhophiso bakeng sa ts'ebeletso e ncha, re kenya feela faele e ncha ea template. Ha ho na liphetoho ho khoutu ea mohloli kapa software ho lintlha tsa boteng tse hlokahalang.

Ke eng e fetohileng haesale QControl e qala ho sebetsa? Ntho ea pele le ea bohlokoa ka ho fetisisa ke ho fana ka mokhoa o tsitsitseng le o ka tšeptjoang oa lisebelisoa tsa tlhophiso ho li-node tsohle tsa marang-rang. Ea bobeli ke ho fumana sesebelisoa se matla sa ho hlahloba tlhophiso le ho etsa liphetoho ho eona ke sehlopha sa rona sa ts'ehetso, hammoho le bareki ba ts'ebeletso.

Re khonne ho etsa sena sohle re sebelisa leano la ntlafatso la morao-rao ho nolofatsa puisano lipakeng tsa seva ea tlhophiso le baamoheli ba tlhophiso. Ho sebelisa protocol ea mekhahlelo e 'meli ho ts'ehetsa mokhoa o ikemetseng oa ho tsamaisa data. E atlehile ho kopanya enjine ea tlhahiso ea tlhophiso e thehiloeng ho Jinja ho netweke e ajoang ea ho sefa. Sistimi ena e ts'ehetsa mekhoa e mengata ea tlhophiso bakeng sa li-peripherals tsa rona tse ajoang le tse fapaneng.

Ke leboha thuso ea hau ea ho ngola boitsebiso. VolanDamrod, serenheit, NoN.

Mofuta oa Senyesemane poso.

Source: www.habr.com

Eketsa ka tlhaloso