Qrator sisẹ nẹtiwọki iṣeto ni isakoso eto

Qrator sisẹ nẹtiwọki iṣeto ni isakoso eto

TL; DR: Apejuwe ti awọn onibara-server faaji ti wa ti abẹnu nẹtiwọki iṣeto ni isakoso eto, QControl. O da lori Ilana irinna-Layer meji ti o ṣiṣẹ pẹlu awọn ifiranṣẹ ti a kojọpọ gzip laisi idinku laarin awọn aaye ipari. Awọn olulana ti a pin kaakiri ati awọn aaye ipari gba awọn imudojuiwọn iṣeto ni, ati pe ilana funrararẹ ngbanilaaye fifi sori ẹrọ ti awọn relays agbedemeji agbegbe. Awọn eto ti wa ni itumọ ti lori opo afẹyinti iyato (“iduroṣinṣin laipẹ”, ti ṣalaye ni isalẹ) o si nlo ede ibeere JMESpath pẹlu ẹnjini templating Jinja lati ṣe awọn faili iṣeto ni.

Awọn Labs Qrator n ṣiṣẹ nẹtiwọọki idinku ikọlu kaakiri agbaye. Nẹtiwọọki wa nṣiṣẹ lori ipilẹ eyikeyicast, ati awọn subnets ti wa ni ipolowo nipasẹ BGP. Jije nẹtiwọọki eyikeyicast BGP ni ti ara ti o wa ni ọpọlọpọ awọn agbegbe ti Earth, a le ṣe ilana ati ṣe àlẹmọ ijabọ aitọ ni isunmọ si ipilẹ Intanẹẹti - awọn oniṣẹ Tier-1.

Ni ida keji, jijẹ nẹtiwọki ti o pin kaakiri agbegbe ko rọrun. Ibaraẹnisọrọ laarin awọn aaye nẹtiwọọki ti wiwa jẹ pataki fun olupese iṣẹ aabo lati ni iṣeto ni ibamu ti gbogbo awọn apa netiwọki, mimu wọn dojuiwọn ni ọna ti akoko. Nitorinaa, lati le pese ipele ti o ṣeeṣe ti o ga julọ ti iṣẹ mojuto si alabara, a nilo lati wa ọna lati muuṣiṣẹpọ ni igbẹkẹle data iṣeto ni awọn kọnputa kaakiri.

Li atetekọṣe li Ọ̀rọ wà. O yarayara di ilana ibaraẹnisọrọ ti o nilo imudojuiwọn.


Okuta igun ti aye QControl, ati ni akoko kanna idi akọkọ fun lilo iye pataki ti akoko ati awọn orisun lori kikọ iru ilana yii, ni iwulo lati gba orisun atunto aṣẹ kan ṣoṣo ati, nikẹhin, muuṣiṣẹpọ awọn aaye wiwa wa. pelu re. Ibi ipamọ funrararẹ jẹ ọkan ninu awọn ibeere pupọ lakoko idagbasoke ti QControl. Ni afikun, a tun nilo awọn iṣọpọ pẹlu awọn iṣẹ ti o wa ati ti a gbero ni awọn aaye wiwa (POP), awọn ọna smati (ati asefara) fun afọwọsi data, ati iṣakoso wiwọle. Yato si eyi, a tun fẹ lati ṣakoso iru eto kan nipa lilo awọn aṣẹ dipo ṣiṣe awọn iyipada si awọn faili. Ṣaaju ki o to QControl, a ti fi data ranṣẹ si awọn aaye ti wiwa fere pẹlu ọwọ. Ti ọkan ninu awọn aaye wiwa ko ba si ati pe a gbagbe lati ṣe imudojuiwọn nigbamii, iṣeto ni yoo pari ni amuṣiṣẹpọ ati pe a yoo ni lati padanu akoko lati mu pada ati ṣiṣiṣẹ.

Bi abajade, a ṣe agbekalẹ eto atẹle wọnyi:
Qrator sisẹ nẹtiwọki iṣeto ni isakoso eto
Olupin iṣeto jẹ iduro fun afọwọsi data ati ibi ipamọ; olulana ni awọn aaye ipari pupọ ti o gba ati awọn imudojuiwọn iṣeto ni ikede lati ọdọ awọn alabara ati awọn ẹgbẹ atilẹyin si olupin naa, ati lati olupin si awọn aaye wiwa.

Didara asopọ intanẹẹti tun yatọ kaakiri agbaye - lati ṣe afiwe aaye yii, jẹ ki a wo MTR ti o rọrun lati Prague, Czech Republic si Singapore ati Ilu Họngi Kọngi.

Qrator sisẹ nẹtiwọki iṣeto ni isakoso eto
MTR lati Prague si Singapore

Qrator sisẹ nẹtiwọki iṣeto ni isakoso eto
Ohun kanna si Hong Kong

Lairi giga tumọ si iyara kekere. Ni afikun, pipadanu apo wa. Iwọn ikanni ko ni isanpada fun iṣoro yii, eyiti o gbọdọ ṣe akiyesi nigbagbogbo nigbati o ba n kọ awọn eto aipin.

Iṣeto ni kikun ti aaye wiwa jẹ iye pataki ti data ti o gbọdọ firanṣẹ si ọpọlọpọ awọn olugba lori awọn asopọ ti ko ni igbẹkẹle. O da, botilẹjẹpe iṣeto ni iyipada nigbagbogbo, o ṣẹlẹ ni awọn iwọn kekere.

Recent-idurosinsin design

A le sọ pe kikọ nẹtiwọọki pinpin ti o da lori ipilẹ ti awọn imudojuiwọn afikun jẹ ojutu ti o han gbangba. Ṣugbọn awọn iṣoro pupọ wa pẹlu awọn iyatọ. A nilo lati ṣafipamọ gbogbo awọn iyatọ laarin awọn aaye itọkasi, ati tun ni anfani lati firanṣẹ wọn ti ẹnikan ba padanu apakan data naa. Oju-ọna kọọkan gbọdọ lo wọn ni ọna ti o muna pato. Ni deede, ninu ọran ti awọn ibi pupọ, iru iṣẹ bẹẹ le gba akoko pipẹ. Olugba gbọdọ tun ni anfani lati beere awọn ẹya ti o padanu ati, nitorinaa, apakan aarin gbọdọ dahun si iru ibeere bẹ ni deede, fifiranṣẹ data ti o padanu nikan.

Bi awọn kan abajade, a wá si a kuku awon ojutu - a ni nikan kan itọkasi Layer, ti o wa titi, jẹ ki ká pe o idurosinsin, ati ki o nikan kan diff fun o - laipe. Laipẹ kọọkan da lori iduroṣinṣin ti ipilẹṣẹ ti o kẹhin ati pe o to lati tun data iṣeto ni. Ni kete ti tuntun to ṣẹṣẹ de ibi ti o nlo, atijọ ko nilo.

Gbogbo ohun ti o ku ni lati firanṣẹ iṣeto iduroṣinṣin tuntun lati igba de igba, fun apẹẹrẹ nitori aipẹ ti di tobi ju. Ohun ti o tun ṣe pataki nibi ni pe a firanṣẹ gbogbo awọn imudojuiwọn wọnyi ni ipo igbohunsafefe/multicast, laisi aibalẹ nipa awọn olugba kọọkan ati agbara wọn lati ṣajọpọ awọn ege data. Ni kete ti a ba ni idaniloju pe gbogbo eniyan ni iduroṣinṣin to tọ, a firanṣẹ awọn tuntun aipẹ nikan. Ṣe o tọ lati ṣalaye pe eyi ṣiṣẹ? Awọn iṣẹ. Idurosinsin ti wa ni cache lori olupin iṣeto ni ati awọn olugba, to šẹšẹ ti wa ni da bi ti nilo.

Faaji ti meji-ipele irinna

Kini idi ti a fi kọ irinna wa si awọn ipele meji? Idahun si jẹ ohun rọrun - a fẹ lati decouple afisona lati ga-ipele kannaa, mu awokose lati awọn OSI awoṣe pẹlu awọn oniwe-irinna ati ohun elo fẹlẹfẹlẹ. A lo Thrift fun ipa ti ilana gbigbe, ati ọna kika serialization msgpack fun ọna kika ipele giga ti awọn ifiranṣẹ iṣakoso. Eyi ni idi ti olulana (n ṣe multicast/igbohunsafefe/afihan) ko wo inu msgpack, ko ṣaiṣi tabi ṣajọ awọn akoonu naa pada, ati siwaju data nikan.

Thrift (lati Gẹẹsi - “thrift”, ti a sọ [θrift]) jẹ ede apejuwe wiwo ti a lo lati ṣalaye ati ṣẹda awọn iṣẹ fun awọn ede siseto oriṣiriṣi. O jẹ ilana fun awọn ipe ilana latọna jijin (RPC). Ṣe akojọpọ opo gigun ti epo sọfitiwia pẹlu ẹrọ iran koodu lati ṣe agbekalẹ awọn iṣẹ ti o ṣiṣẹ diẹ sii tabi kere si daradara ati irọrun laarin awọn ede.

A yan ilana Thrift nitori RPC ati atilẹyin fun ọpọlọpọ awọn ede. Bi ibùgbé, awọn rorun awọn ẹya wà ni ose ati olupin. Sibẹsibẹ, olulana wa jade lati jẹ nut lile lati kiraki, ni apakan nitori aini ojutu ti a ti ṣetan lakoko idagbasoke wa.

Qrator sisẹ nẹtiwọki iṣeto ni isakoso etoAwọn aṣayan miiran wa, gẹgẹ bi protobuf / gRPC, sibẹsibẹ, nigba ti a bẹrẹ iṣẹ akanṣe wa, gRPC jẹ tuntun pupọ ati pe a ko ni igboya lati mu sinu ọkọ.

Nitoribẹẹ, a le (ati ni otitọ o yẹ ki o ti) kọ keke tiwa. Yoo rọrun lati ṣẹda ilana kan fun ohun ti a nilo nitori faaji olupin-olupin jẹ taara taara lati ṣe ni akawe si kikọ olulana kan lori Thrift. Ni ọna kan tabi omiiran, irẹjẹ aṣa wa si awọn ilana ti ara ẹni ati awọn imuse ti awọn ile-ikawe olokiki (fun idi to dara); ni afikun, lakoko awọn ijiroro ibeere naa nigbagbogbo wa: “Bawo ni a ṣe le gbe eyi si awọn ede miiran?” Nitorinaa a gbe ero ti keke kan jade lẹsẹkẹsẹ.

Msgpack jọra si JSON, ṣugbọn yiyara ati kere. O jẹ ọna kika serialization data alakomeji ti o gba data laaye lati paarọ laarin awọn ede pupọ.

Ni ipele akọkọ a ni Thrift pẹlu alaye to kere julọ pataki fun olulana lati dari ifiranṣẹ naa. Ni ipele keji awọn ẹya msgpack ti kojọpọ wa.

A yan msgpack nitori pe o yara ati iwapọ diẹ sii ni akawe si JSON. Ṣugbọn diẹ ṣe pataki, o ṣe atilẹyin awọn iru data aṣa, gbigba wa laaye lati lo awọn ẹya tutu bii gbigbe awọn alakomeji aise tabi awọn nkan pataki ti n tọka si isansa data, eyiti o ṣe pataki fun ero “iduroṣinṣin laipẹ” wa.

JMESPath
JMESPath jẹ ede ibeere JSON kan.
Eyi ni deede ohun ti apejuwe ti a gba lati inu iwe aṣẹ JMESPath osise dabi, ṣugbọn ni otitọ, o ṣe pupọ diẹ sii ju iyẹn lọ. JMESPath gba ọ laaye lati wa ati ṣe àlẹmọ awọn igi abẹlẹ ni eto igi lainidii, ati lo awọn ayipada si data lori fo. O tun gba ọ laaye lati ṣafikun awọn asẹ pataki ati awọn ilana iyipada data. Botilẹjẹpe o, dajudaju, nilo igbiyanju ọpọlọ lati ni oye.

Jinja
Fun diẹ ninu awọn onibara, a nilo lati yi iṣeto pada si faili kan - nitorinaa a lo ẹrọ awoṣe ati Jinja jẹ aṣayan ti o han. Pẹlu iranlọwọ rẹ, a ṣe agbekalẹ faili iṣeto ni lati awoṣe ati data ti o gba ni ibi-ajo.

Lati ṣe agbekalẹ faili iṣeto kan, a nilo ibeere JMESPath kan, awoṣe fun ipo faili ni FS, ati awoṣe fun atunto funrararẹ. O tun jẹ imọran ti o dara ni ipele yii lati ṣalaye awọn igbanilaaye faili. Gbogbo eyi ni idapo ni ifijišẹ ni faili kan - ṣaaju ibẹrẹ ti awoṣe iṣeto, a fi akọsori kan si ọna YAML ti o ṣe apejuwe iyokù.

Fun apere:

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

Lati le ṣe faili iṣeto ni fun iṣẹ tuntun, a ṣafikun faili awoṣe tuntun nikan. Ko si awọn ayipada si koodu orisun tabi sọfitiwia lori awọn aaye wiwa ti nilo.

Ohun ti yi pada niwon QControl lọ ifiwe? Ohun akọkọ ati pataki julọ jẹ deede ati ifijiṣẹ igbẹkẹle ti awọn imudojuiwọn iṣeto ni gbogbo awọn apa inu nẹtiwọọki. Ekeji ni lati gba ohun elo ti o lagbara fun ṣiṣe ayẹwo iṣeto ni ati ṣiṣe awọn ayipada si nipasẹ ẹgbẹ atilẹyin wa, ati nipasẹ awọn onibara ti iṣẹ naa.

A ni anfani lati ṣe gbogbo eyi nipa lilo ero imudojuiwọn aiduro aipẹ lati mu ibaraẹnisọrọ rọrun laarin olupin iṣeto ati awọn olugba iṣeto ni. Lilo ilana-ila-meji lati ṣe atilẹyin ọna ominira akoonu ti data ipa-ọna. Ni aṣeyọri ṣepọ ẹrọ iran iṣeto iṣeto-orisun Jinja sinu nẹtiwọọki sisẹ pinpin. Eto yii ṣe atilẹyin ọpọlọpọ awọn ọna atunto fun pinpin ati awọn agbeegbe oriṣiriṣi wa.

O ṣeun fun iranlọwọ rẹ ni kikọ ohun elo naa. VolanDamrod, serenheit, Bẹẹkọ.

Ẹya Gẹẹsi ifiweranṣẹ.

orisun: www.habr.com

Fi ọrọìwòye kun