د Qrator فلټر کولو شبکې ترتیب مدیریت سیسټم

د Qrator فلټر کولو شبکې ترتیب مدیریت سیسټم

د تمديد؛ DR: زموږ د داخلي شبکې ترتیب مدیریت سیسټم د پیرودونکي-سرور جوړښت توضیحات، QControl. دا د دوه پرت ټرانسپورټ پروتوکول پراساس دی چې د پای ټکي ترمینځ د ډیمپریشن پرته د gzip- پیک پیغامونو سره کار کوي. توزیع شوي روټرونه او پای ټکي د ترتیب کولو تازه معلومات ترلاسه کوي، او پروتوکول پخپله د ځایی منځنیو ریلونو نصبولو ته اجازه ورکوي. سیسټم په اصولو جوړ شوی دی توپیر بیک اپ ("وروستی - مستحکم"، لاندې تشریح شوی) او د JMESpath پوښتنې ژبه د جنجا ټیمپلینګ انجن سره د ترتیب کولو فایلونو وړاندې کولو لپاره کاروي.

Qrator Labs په نړیواله کچه د برید کمولو شبکه چلوي. زموږ شبکه په هر کاسټ اصولو کار کوي، او فرعي نیټونه د BGP له لارې اعلان شوي. د BGP د هر ډول کاسټ شبکې په توګه چې په فزیکي توګه د ځمکې په څو سیمو کې موقعیت لري، موږ کولی شو د انټرنیټ اصلي ته نږدې غیرقانوني ترافیک پروسس او فلټر کړو - ټیر - 1 چلونکي.

له بلې خوا، په جغرافیه کې توزیع شوي شبکه کول اسانه ندي. د شبکې د شتون نقطو ترمنځ اړیکه د امنیت خدماتو چمتو کونکي لپاره خورا مهم دي ترڅو د ټولو شبکې نوډونو منظم ترتیب ولري، په وخت سره یې تازه کړي. له همدې امله، د دې لپاره چې مصرف کونکي ته د اصلي خدماتو ترټولو ممکنه کچې چمتو کولو لپاره، موږ اړتیا درلوده چې په ټول لویدیځ کې د اعتبار وړ ترتیب کولو ډیټا همغږي کولو لپاره لاره پیدا کړو.

په پیل کې کلمه وه. دا په چټکۍ سره د مخابراتو پروتوکول شو چې تازه کولو ته اړتیا لري.


د QControl د شتون اساس ، او په ورته وخت کې د دې ډول پروتوکول په جوړولو کې د پام وړ وخت او سرچینو مصرف کولو اصلي لامل ، د ترتیب کولو یو واحد مستند سرچینې ترلاسه کولو اړتیا ده او په نهایت کې زموږ د شتون نقطې همغږي کول دي. ورسره ذخیره پخپله د QControl پراختیا په جریان کې د ډیری اړتیاو څخه یوازې یوه وه. برسېره پر دې، موږ د شتون په نقطو کې د موجوده او پلان شوي خدماتو سره ادغام ته هم اړتیا درلوده (POP)، د ډیټا تصدیق کولو لپاره سمارټ (او دودیز) میتودونه، او همدارنګه د لاسرسي کنټرول. د دې ترڅنګ، موږ دا هم غوښتل چې دا ډول سیسټم په فایلونو کې د تعدیل کولو پرځای د کمانډونو په کارولو سره کنټرول کړو. د QControl څخه دمخه، ډاټا تقریبا په لاسي ډول د شتون ځایونو ته لیږل شوي. که چیرې د شتون یوه نقطه شتون ونلري او موږ یې وروسته تازه کول هیر کړل ، ترتیب به له همغږي څخه پای ته ورسیږي او موږ به یې د بیرته ترلاسه کولو او چلولو وخت ضایع کړو.

د پایلې په توګه، موږ د لاندې سکیم سره راغلو:
د Qrator فلټر کولو شبکې ترتیب مدیریت سیسټم
د ترتیب کولو سرور د معلوماتو اعتبار او ذخیره کولو لپاره مسؤل دی؛ روټر ډیری پای ټکي لري چې د پیرودونکو او ملاتړ ټیمونو څخه سرور ته او له سرور څخه د شتون نقطو ته د ترتیب تازه معلومات ترلاسه کوي او خپروي.

د انټرنیټ اتصال کیفیت لاهم په ټوله نړۍ کې په پراخه کچه توپیر لري - د دې ټکي روښانه کولو لپاره ، راځئ چې د پراګ ، چک جمهوریت څخه سینګاپور او هانګ کانګ ته یو ساده MTR وګورو.

د Qrator فلټر کولو شبکې ترتیب مدیریت سیسټم
MTR له پراګ څخه سنګاپور ته

د Qrator فلټر کولو شبکې ترتیب مدیریت سیسټم
هانګ کانګ ته ورته شی

لوړ ځنډ د ټیټ سرعت معنی لري. برسېره پردې، د کڅوړې ضایع شتون لري. د چینل عرض د دې ستونزې لپاره تاوان نه ورکوي، کوم چې باید تل د غیر متمرکز سیسټمونو جوړولو په وخت کې په پام کې ونیول شي.

د شتون د نقطې بشپړ ترتیب د پام وړ ډیټا دی چې باید ډیری ترلاسه کونکو ته د غیر معتبر اړیکو له لارې واستول شي. خوشبختانه، که څه هم ترتیب په دوامداره توګه بدلیږي، دا په کوچنیو زیاتوالی کې پیښیږي.

وروستي باثباته ډیزاین

موږ کولی شو ووایو چې د زیاتیدونکي تازه معلوماتو اصولو پراساس د توزیع شوي شبکې رامینځته کول خورا څرګند حل دی. مګر د توپیرونو سره ډیری ستونزې شتون لري. موږ اړتیا لرو چې د حوالې ټکي تر مینځ ټول توپیرونه خوندي کړو، او همدارنګه د دې وړتیا ولرو چې دوی بیا واستوئ که چیرې یو څوک د معلوماتو برخه له لاسه ورکړي. هر منزل باید دوی په کلکه ټاکل شوي ترتیب کې پلي کړي. عموما، د څو منزلونو په صورت کې، دا ډول عملیات کولی شي ډیر وخت ونیسي. ترلاسه کونکی باید د دې وړتیا هم ولري چې د ورک شوي برخو غوښتنه وکړي او البته مرکزي برخه باید ورته غوښتنې ته سم ځواب ووایی ، یوازې ورک شوي ډیټا لیږل.

د پایلې په توګه، موږ یو په زړه پورې حل ته راغلو - موږ یوازې یو د حوالې پرت لرو، ثابت شوی، راځئ چې دا مستحکم ووایو، او د دې لپاره یوازې یو توپیر - وروستی. هر وروستی د وروستي تولید شوي ثبات پراساس دی او د ترتیب کولو ډیټا بیا جوړولو لپاره کافي دی. هرڅومره ژر چې تازه تازه خپل منزل ته ورسیږي، زاړه ته نور اړتیا نشته.

ټول هغه څه چې پاتې دي د وخت په وخت کې د نوي مستحکم ترتیب لیږل دي، د بیلګې په توګه ځکه چې وروستی خورا لوی شوی. هغه څه چې دلته هم مهم دي دا دي چې موږ دا ټول تازه معلومات په نشر / ملټيکاسټ حالت کې لیږو، پرته له دې چې د انفرادي ترلاسه کونکو او د دوی د ډیټا ټوټې سره یوځای کولو وړتیا په اړه اندیښنه. یوځل چې موږ ډاډه شو چې هرڅوک سم ثبات لري، موږ یوازې نوي وروستي لیږو. ایا دا د روښانه کولو ارزښت لري چې دا کار کوي؟ کار کوي. مستحکم د ترتیب کولو سرور او ترلاسه کونکو کې زیرمه شوی ، وروستی د اړتیا سره سم رامینځته شوی.

د دوه درجې ترانسپورت جوړښت

ولې مو خپل ټرانسپورټ په دوه سطحو جوړ کړ؟ ځواب خورا ساده دی - موږ غوښتل د لوړې کچې منطق څخه روټینګ جلا کړو ، د دې ترانسپورت او غوښتنلیک پرتونو سره د OSI ماډل څخه الهام واخلو. موږ د ټرانسپورټ پروتوکول رول لپاره Thrift کارولی، او د msgpack سیریل کولو بڼه د کنټرول پیغامونو د لوړې کچې بڼه لپاره. له همدې امله روټر (د ملټي کاسټ/براډکاسټ/ریلي ترسره کول) د msgpack دننه نه ګوري ، مینځپانګه بیرته نه پیکوي یا بسته کوي ، او یوازې ډیټا فارورډ کوي.

Thrift (له انګلیسي څخه - "thrift"، تلفظ [θrift]) د انٹرفیس تشریح ژبه ده چې د مختلف پروګرامینګ ژبو لپاره د خدماتو تعریف او رامینځته کولو لپاره کارول کیږي. دا د ریموټ پروسیجر زنګونو (RPC) لپاره یو چوکاټ دی. د سافټویر پایپ لاین د کوډ تولید انجن سره یوځای کوي ترڅو خدمات رامینځته کړي چې د ژبو ترمینځ ډیر یا لږ اغیزمن او په اسانۍ سره کار کوي.

موږ د RPC او ډیری ژبو ملاتړ له امله د Thrift چوکاټ غوره کړ. د معمول په څیر، اسانه برخې پیرودونکي او سرور وو. په هرصورت، روټر د کریک کولو لپاره یو سخت مغز وګرځید، یو څه زموږ د پراختیا په جریان کې د چمتو شوي حل نشتوالي له امله.

د Qrator فلټر کولو شبکې ترتیب مدیریت سیسټمنور اختیارونه هم شتون لري، لکه protobuf / gRPC، په هرصورت، کله چې موږ خپله پروژه پیل کړه، gRPC خورا نوی و او موږ جرئت نه درلود چې دا په بورډ کې واخلو.

البته، موږ کولی شو (او په حقیقت کې باید) خپل موټرسایکل جوړ کړو. دا به اسانه وي چې د هغه څه لپاره پروتوکول رامینځته کړئ چې موږ ورته اړتیا لرو ځکه چې د پیرودونکي - سرور جوړښت په Thrift کې د روټر جوړولو په پرتله پلي کولو لپاره نسبتا مستقیم دی. په یو ډول یا بل ډول ، د ځان لیکل شوي پروتوکولونو او د مشهور کتابتونونو پلي کولو لپاره دودیز تعصب شتون لري (د ښه دلیل لپاره)؛ سربیره پردې ، د بحثونو په جریان کې تل دا پوښتنه راپورته کیږي: "موږ دا څنګه نورو ژبو ته لیږدولی شو؟" نو موږ سمدلاسه د بایسکل فکر وغورځاوه.

Msgpack JSON ته ورته دی، مګر ګړندی او کوچنی. دا د بائنری ډیټا سیریلائزیشن فارمیټ دی چې د ډیرو ژبو ترمینځ ډیټا تبادله کولو ته اجازه ورکوي.

په لومړۍ کچه موږ د پیغام لیږلو لپاره د روټر لپاره اړین لږترلږه معلوماتو سره Thrift لرو. په دویمه کچه کې بسته شوي msgpack جوړښتونه شتون لري.

موږ msgpack غوره کړی ځکه چې دا د JSON په پرتله ګړندی او ډیر کمپیکٹ دی. مګر تر ټولو مهم، دا د دودیز ډیټا ډولونو ملاتړ کوي، موږ ته اجازه راکوي چې ښې ځانګړتیاوې وکاروو لکه د خام بائنریونو تیریدل یا ځانګړي توکي چې د ډیټا نشتوالی په ګوته کوي، کوم چې زموږ د "وروستي باثباته" سکیم لپاره مهم و.

JMESPath
JMESPath د JSON پوښتنې ژبه ده.
دا په حقیقت کې هغه څه دي چې موږ یې د رسمي JMESPath اسنادو څخه ترلاسه کوو داسې ښکاري، مګر په حقیقت کې، دا د دې څخه ډیر څه کوي. JMESPath تاسو ته اجازه درکوي چې د ونې په خپل سري جوړښت کې فرعي ونې وپلټئ او فلټر کړئ، او د الوتنې په ډاټا کې بدلونونه پلي کړئ. دا تاسو ته اجازه درکوي چې ځانګړي فلټرونه او د معلوماتو د بدلون پروسیجرونه اضافه کړئ. که څه هم دا، البته، د پوهیدو لپاره د دماغ هڅو ته اړتیا لري.

Jinja
د ځینو مصرف کونکو لپاره، موږ اړتیا لرو چې ترتیب په فایل کې بدل کړو - نو موږ د ټیمپلیټ انجن کاروو او جنجا څرګند انتخاب دی. د دې په مرسته، موږ په منزل کې ترلاسه شوي ټیمپلیټ او ډیټا څخه د ترتیب کولو فایل رامینځته کوو.

د ترتیب کولو فایل رامینځته کولو لپاره ، موږ د JMESPath غوښتنې ته اړتیا لرو ، په FS کې د فایل موقعیت لپاره ټیمپلیټ ، او پخپله د تشکیل لپاره ټیمپلیټ. دا په دې مرحله کې هم یو ښه نظر دی چې د فایل اجازې روښانه کړئ. دا ټول په بریالیتوب سره په یوه فایل کې یوځای شوي - د ترتیب کولو ټیمپلیټ پیل کولو دمخه، موږ د YAML بڼه کې یو سرلیک کیښود چې پاتې یې تشریح کوي.

د مثال په توګه:

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

د دې لپاره چې د نوي خدمت لپاره د ترتیب کولو فایل جوړ کړئ، موږ یوازې یو نوی ټیمپلیټ فایل اضافه کوو. د شتون په نقطو کې د سرچینې کوډ یا سافټویر کې هیڅ بدلون ته اړتیا نشته.

د QControl ژوندی کیدو راهیسې څه بدلون راغلی؟ لومړی او خورا مهم شی په شبکه کې ټولو نوډونو ته د تشکیلاتو تازه معلوماتو ثابت او معتبر تحویل دی. دوهم دا دی چې زموږ د ملاتړ ټیم لخوا او همدارنګه د خدماتو مصرف کونکو لخوا ترتیب چیک کولو او پدې کې د بدلونونو رامینځته کولو لپاره قوي وسیله ترلاسه کړئ.

موږ وکولی شو دا ټول د وروستي مستحکم تازه سکیم په کارولو سره ترسره کړو ترڅو د ترتیب کولو سرور او تنظیم کونکي ترلاسه کونکو ترمینځ اړیکې ساده کړي. د ډیټا روټینګ کولو مینځپانګې خپلواکې لارې ملاتړ لپاره د دوه پرت پروتوکول کارول. په بریالیتوب سره د جنجا میشته ترتیب کولو نسل انجن په توزیع شوي فلټرینګ شبکه کې مدغم شو. دا سیسټم زموږ د توزیع شوي او متضاد پردیو لپاره د ترتیب کولو پراخه لړۍ ملاتړ کوي.

د موادو په لیکلو کې ستاسو د مرستې لپاره مننه. ولاندامرود, serenheit, نه.

انګلیسي نسخه پوسټ

سرچینه: www.habr.com

Add a comment