د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

زه وړاندیز کوم چې تاسو د مثال په توګه د قونسل په کارولو سره ویشل شوي سیسټمونو کې د الکساندر سیګاچوف راپور خدماتو کشف نسخه ولولئ.

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

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

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

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

دا څه ډول ښکاري؟ په ویب کې په یوه کلاسیک مثال کې، دا لومړی پای دی چې د کاروونکي غوښتنه مني. بیا دا د شاته پای ته رسوي. په دې مثال کې، دا د بار بار بیلانس دوه شالیدونه توازن کوي.

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

دلته موږ ګورو چې موږ د غوښتنلیک دریمه بیلګه پیل کوو. په دې اساس، کله چې غوښتنلیک پیل شي، دا د خدماتو کشف سره راجستر کیږي. د خدماتو کشف د بار بیلانسر ته خبر ورکوي. د بار بیلانسر خپل تشکیل په اوتومات ډول بدلوي او نوی پس منظر په فعالیت کې اچول کیږي. په دې توګه، پس منظرونه اضافه کیدی شي، یا په برعکس، د کار څخه ایستل کیدی شي.

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

د خدماتو کشف سره نور څه کول اسانه دي؟ د خدماتو کشف کولی شي د نګینکس ترتیبونه، سندونه، او د فعال پس منظر سرورونو لیست ذخیره کړي.

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوفد خدماتو کشف تاسو ته اجازه درکوي د ناکامۍ کشف او کشف کړئ. د ناکامۍ موندلو لپاره ممکنه سکیمونه کوم دي؟

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

هر سکیم کارول کیدی شي پدې پورې اړه ولري چې موږ کوم سافټویر کاروو. د مثال په توګه، موږ یوازې د یوې نوې پروژې پراختیا پیل کړې، بیا موږ کولی شو په اسانۍ سره یو سکیم چمتو کړو کله چې زموږ غوښتنلیک د خدماتو کشف خبر کړي. یا موږ کولی شو وصل کړو چې د خدماتو کشف چک کوي.

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

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

دا یو مثال دی. د نګینکس په شکل کې د بار بیلانس ریبوټ شوی. دا یو اختیاري اسانتیا ده چې د قونسل سره چمتو کیږي. دا قونسل-کینډۍ ده. موږ قاعده تشریح کوو. موږ وایو چې موږ د ټیمپلیټ (ګولنګ ټیمپلیټ انجن) کاروو. کله چې پیښې پیښیږي ، کله چې خبرتیاوې چې بدلونونه رامینځته شوي ، نو بیا رامینځته کیږي او د "ریلوډ" کمانډ د خدماتو کشف ته لیږل کیږي. ترټولو ساده مثال دا دی کله چې نګینکس د یوې پیښې لخوا تنظیم شوی او بیا پیل کیږي.

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

قونسل څه شی دی؟

  • تر ټولو لومړی، دا د خدماتو کشف دی.

  • دا د شتون چیک میکانیزم لري - د روغتیا معاینه.

  • دا د KV پلورنځی هم لري.

  • او دا د ملټي ډیټا سینټر کارولو وړتیا پراساس دی.

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

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

راځئ چې د هغو شرایطو په اړه لږ څه پوه شو چې په قونسل کې کارول کیږي.

  • قونسل یو خدمت دی چې په Go کې لیکل شوی. د Go برنامې یوه ګټه د 1 بائنری فایل دی چې تاسو یې یوازې ډاونلوډ کوئ. له هر ځای څخه پیل شوی او تاسو هیڅ انحصار نلرئ.
  • بیا، د کیلي په کارولو سره، موږ کولی شو دا خدمت یا د پیرودونکي حالت یا سرور حالت کې پیل کړو.
  • همچنان ، د "ډیټا سینټر" خاصیت تاسو ته اجازه درکوي یو بیرغ تنظیم کړئ چې دا سرور د کوم ډیټا مرکز پورې اړه لري.
  • توافق - د راف پروتوکول پراساس. که څوک لیواله وي، تاسو کولی شئ پدې اړه نور معلومات د قونسل په ویب پاڼه کې ولولئ. دا یو پروتوکول دی چې تاسو ته اجازه درکوي مشر وټاکئ او معلومه کړئ چې کومې پیسې د اعتبار وړ او د لاسرسي وړ ګڼل کیږي.
  • ګپ شپ یو پروتوکول دی چې د نوډونو ترمینځ متقابل عمل رامینځته کوي. سربیره پردې، دا سیسټم غیر متمرکز دی. د یو ډیټا مرکز دننه، ټول نوډونه د خپلو ګاونډیو سره اړیکه نیسي. او، په وینا، د اوسني حالت په اړه معلومات یو بل ته لیږدول کیږي. موږ کولی شو ووایو چې دا د ګاونډیو تر مینځ ګپ شپ ده.
  • LAN ګپ شپ - په ورته ډیټا مرکز کې د ګاونډیو ترمینځ د ځایی معلوماتو تبادله.
  • WAN ګپ شپ - هغه وخت کارول کیږي کله چې موږ د دوه ډیټا مرکزونو ترمینځ معلومات همغږي کولو ته اړتیا لرو. معلومات د نوډونو تر مینځ جریان لري چې د سرور په توګه نښه شوي.
  • RPC - تاسو ته اجازه درکوي په سرور کې د پیرودونکي له لارې غوښتنې اجرا کړئ.

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

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

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

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

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

کوم API قونسل چمتو کوي؟ د معلوماتو د ترلاسه کولو لپاره، قونسل دوه ډوله API لري.

دا د DNS API دی. په ډیفالټ ، قونسل په 8600 بندر کې پرمخ ځي. موږ کولی شو د غوښتنې پراکسي تنظیم کړو او د ځایی DNS له لارې د ځایی حل له لارې لاسرسی چمتو کړو. موږ کولی شو د ډومین لخوا پوښتنه وکړو او په ځواب کې د IP پتې معلومات ترلاسه کړو.

HTTP API - یا موږ کولی شو په سیمه ایزه توګه په 8500 پورټ کې د ځانګړي خدمت په اړه د معلوماتو غوښتنه وکړو او د JSON ځواب ترلاسه کړو، کوم IP سرور لري، کوم کوربه، کوم بندر ثبت شوی. او اضافي معلومات د ټوکن له لارې لیږدول کیدی شي.

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

تاسو د قونسل چلولو لپاره څه ته اړتیا لرئ؟

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

دوهم حالت د تولید پیل دی. دا هغه ځای دی چې پیل کول یو څه پیچلي کیږي. که موږ د قونسل کومه نسخه نلرو، نو موږ باید لومړی ماشین بوټسټریپ ته راوړو، یعنی دا ماشین، چې د مشر مسؤلیتونه به په غاړه واخلي. موږ دا پورته کوو، بیا موږ د سرور دوهم مثال پورته کوو، دا معلومات انتقالوي چیرې چې زموږ ماسټر موقعیت لري. موږ دریم پورته کوو. وروسته له دې چې موږ درې ماشینونه پورته کړو، موږ دا په عادي حالت کې په لومړي ماشین کې د چلولو بوټسټریپ څخه بیا پیل کوو. معلومات همغږي شوي او ابتدايي کلستر لا دمخه دی.

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

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

روغتیایی معاینات څنګه چمتو کیږي؟ موږ د قونسل ترتیب کولو لارښود کې د Json په شکل کې د تایید قاعده لیکو. لومړی اختیار په دې مثال کې د google.com ډومین شتون دی. او موږ وایو چې دا چک باید د 30 ثانیو په وقفه کې ترسره شي. پدې توګه موږ ګورو چې زموږ نوډ بهرنۍ شبکې ته لاسرسی لري.

دوهم اختیار دا دی چې خپل ځان وګورئ. موږ د 10 ثانیو په وقفه کې په ټاکل شوي بندر کې لوکل هوسټ ته زنګ وهلو لپاره منظم کرل کاروو.

دا چکونه لنډیز شوي او د خدماتو کشف ته لیږل شوي. د شتون پراساس، دا نوډونه یا خارج شوي یا د شته او سم کار کولو ماشینونو لیست کې ښکاري.

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

قونسل یو UI انٹرفیس هم چمتو کوي، کوم چې د جلا بیرغ سره پیل شوی او په ماشین کې به شتون ولري. دا تاسو ته اجازه درکوي معلومات وګورئ او تاسو ځینې بدلونونه هم کولی شئ.

په دې مثال کې، د "خدمت" ټب خلاص دی. دا په ډاګه کیږي چې درې خدمتونه روان دي چې یو یې قونسل دی. د ترسره شویو چکونو شمیر. او دلته درې ډیټا مرکزونه شتون لري چې ماشینونه پکې موقعیت لري.

د قونسل مثال په کارولو سره په ویشل شوي سیسټمونو کې د خدماتو کشف. الکساندر سیګاچوف

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

تاسو کولی شئ د ډیسکونو وضعیت او اوسط بار په اړه قونسل ته معلومات هم واستوئ.

پوښتنې

پوښتنه: موږ د ډاکر کانټینر لرو، دا څنګه د قونسل سره کارول کیږي؟

ځواب: د ډاکر کانټینر لپاره ډیری لارې شتون لري. یو له خورا عام څخه د دریمې ډلې ډاکر کانټینر کارول دي چې د ثبت لپاره مسؤل دي. په پیل کې، د ډاکر ساکټ دې ته لیږدول کیږي. د کانټینر ټول ثبتول او د خپرولو پیښې په قونسل کې ثبت کیږي.

پوښتنه: نو قونسل پخپله د ډاکر کانټینر پیل کوي؟

ځواب: نه. موږ د ډاکر کانټینر چلوو. او کله چې تنظیم کول موږ اشاره کوو - داسې او داسې ساکټ واورئ. دا تقریبا ورته دی چې څنګه موږ د سند سره کار کوو، کله چې موږ د چیرته او څه شی په اړه معلومات پورته کوو.

پوښتنه: دا معلومه شوه چې د ډاکر کانټینر دننه چې موږ هڅه کوو د خدماتو کشف سره وصل کړو دلته باید یو ډول منطق شتون ولري چې کولی شي ډیټا قونسل ته واستوي؟

ځواب: واقعا نه. کله چې دا پیل شي، موږ د چاپیریال متغیر له لارې متغیرونه تیروو. راځئ چې د خدمت نوم، د خدمت بندر ووایو. راجستر دا معلومات اوري او قونسل ته یې ننوځي.

پوښتنه: زه د UI په اړه بله پوښتنه لرم. موږ UI ځای پرځای کړی، د بیلګې په توګه، په تولید سرور کې. د امنیت په اړه څه؟ معلومات چیرته ساتل کیږي؟ ایا دا ممکنه ده چې یو څه معلومات راټول کړئ؟

ځواب: په UI کې د ډیټابیس او د خدماتو کشف څخه ډاټا شتون لري. موږ پخپله په ترتیباتو کې پاسورډونه تنظیم کوو.

پوښتنه: ایا دا په انټرنیټ کې خپره کیدی شي؟

ځواب: په ډیفالټ ، قونسل په لوکل هوسټ کې پیل کیږي. په انټرنیټ کې د خپرولو لپاره، تاسو اړتیا لرئ یو ډول پراکسي نصب کړئ. موږ د خپلو خوندیتوب مقرراتو مسؤل یو.

پوښتنه: ایا دا د بکس څخه بهر تاریخي معلومات چمتو کوي؟ دا په زړه پورې ده چې د روغتیا چکونو احصایې وګورئ. تاسو کولی شئ ستونزې هم تشخیص کړئ که چیرې سرور اکثرا ناکام شي.

ځواب: زه ډاډه نه یم چې هلته د چکونو توضیحات شتون لري.

پوښتنه: اوسنی حالت دومره مهم نه دی څومره چې ډینامیک دی.

ځواب: د تحلیل لپاره - هو.

پوښتنه: ایا دا غوره نه ده چې د کنسول ډاکر لپاره د خدماتو کشف وکاروئ؟

ځواب: زه د دې کارولو وړاندیز نه کوم. د راپور موخه دا ده چې دا معرفي کړي چې دا ډول مفهوم شتون لري. په تاریخي توګه، دا زما په نظر، لومړۍ نسخه ته لاره موندلې ده. اوس ډیر بشپړ حلونه شتون لري، د بیلګې په توګه، Kubernetes، کوم چې دا ټول د هود لاندې لري. د Kubernetes خدماتو کشف د یوې برخې په توګه د Etcd څخه ټیټ دی. مګر زه له هغې سره دومره بلد نه یم لکه څنګه چې زه د قونسل سره یم. له همدې امله ما پریکړه وکړه چې د مثال په توګه د قونسل په کارولو سره د خدماتو کشف رامینځته کړم.

پوښتنه: ایا د مشر سرور سره سکیم په بشپړ ډول د غوښتنلیک پیل سست نه کوي؟ او که چیرې دا دروغ وي نو قونسل څنګه نوی مشر ټاکي؟

ځواب: دوی یو بشپړ پروتوکول بیان کړی. که تاسو لیوالتیا لرئ، تاسو یې لوستلی شئ.

پوښتنه: قونسل زموږ لپاره د بشپړ سرور په توګه کار کوي او ټولې غوښتنې له هغې څخه تیریږي؟

ځواب: دا د بشپړ شوي سرور په توګه عمل نه کوي، مګر یو ځانګړی زون نیسي. دا معمولا د service.consul سره پای ته رسیږي. او بیا موږ په منطقي توګه حرکت کوو. موږ په تولید کې د ډومین نومونه نه کاروو، بلکه داخلي زیربنا، کوم چې معمولا د سرور کیچ کولو تر شا پټ وي که موږ د DNS په کارولو کار وکړو.

پوښتنه: دا دی، که موږ غواړو ډیټابیس ته لاسرسی ولرو، نو په هر حالت کې به موږ قونسل راوباسئ ترڅو لومړی دا ډیټابیس ومومئ، سمه ده؟

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

د hashicorp محصول چیٹ - د هاشیکورپ کارونکي چیټ: قونسل، کوماډ، ټیرفارم

PS د روغتیایی معایناتو په اړه. قونسل، لکه Kubernetes، د کوډ حالت پراساس د خدماتو د ژوندي پاتې کیدو حالت چک کولو لپاره ورته سیسټم کاروي.

200 OK for healthy
503 Service Unavailable for unhealthy

سرچینې:
https://www.consul.io/docs/agent/checks.html
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
https://thoslin.github.io/microservice-health-check-in-kubernetes/

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

Add a comment