په اسټیو کې تیاره لانچ: پټ خدمتونه

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

په اسټیو کې تیاره لانچ: پټ خدمتونه

او اسټیو، د OpenShift او Kubernetes سره یوځای، د مایکرو خدماتو ګمارل واقعیا ستړي او د وړاندوینې وړ کوي - او دا خورا ښه دی. موږ به د اسټیو لړۍ په څلورم او وروستي پوسټ کې د دې او نور ډیر څه په اړه وغږیږو.

کله چې ستړیا سمه وي

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

کله چې ستاسو د سافټویر نوې نسخه ځای په ځای کول، دا د خطرونو کمولو لپاره د ټولو اختیارونو په پام کې نیولو سره ارزښت لري. په موازي توګه چلول د ازموینې لپاره خورا پیاوړې او ثابته لاره ده، او اسټیو تاسو ته اجازه درکوي د "پټ خدمت" (ستاسو د مایکروسافټ پټه نسخه) وکاروئ پرته لدې چې دا د تولید سیسټم سره مداخله وکړي. د دې لپاره حتی یو ځانګړی اصطالح شتون لري - "تور لانچ" ، کوم چې په پایله کې د یو فنکشن لخوا د مساوي جاسوس نوم "ټریفیک عکس العمل" سره فعال شوی.

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

د ستړیا تنظیم کول په زړه پوري دي

لاندې د اسټیو روټینګ قاعدې ته یو نظر وګورئ ، کوم چې ټولې HTTP غوښتنې د مایکرو سرویس سپارښتنې v1 ته رسوي (ټول مثالونه له دې څخه اخیستل شوي د اسټیو ټیوټوریل GitHub ریپو)، پداسې حال کې چې په ورته وخت کې دوی وړاندیز ته منعکس کوي v2 microservice:

په اسټیو کې تیاره لانچ: پټ خدمتونه
لیبل ته پام وکړئ mirror: د سکرین په ښکته کې - دا هغه دی چې د ترافیک عکس العمل تنظیموي. هو، دا دومره ساده ده!

د دې قاعدې پایله به دا وي چې ستاسو د تولید سیسټم (v1) به د راتلونکو غوښتنو پروسس کولو ته دوام ورکړي ، مګر غوښتنې به پخپله په غیر متناسب ډول v2 ته منعکس شي ، دا دی ، د دوی بشپړ نقلونه به هلته ځي. پدې توګه ، تاسو کولی شئ په ریښتیني شرایطو کې v2 ازموینه وکړئ - په ریښتیني معلوماتو او ترافیک کې - پرته د تولید سیسټم عملیاتو سره په هیڅ ډول مداخله. ایا دا د ازموینې تنظیم کول ستړي کوي؟ هو، یقینا. مګر دا په زړه پورې طریقه ترسره کیږي.

راځئ چې ډرامه اضافه کړو

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

راځئ چې یو مهم ټکی تکرار کړو

د ترافیک عکس العمل سره پټ لانچ (ډارک لانچ / غوښتنه عکس العمل) پرته له دې چې په کوډ اغیزه وکړي ترسره کیدی شي.

د فکر لپاره خواړه

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

په اسټیو کې د کانري ګمارل: د کمیسیون کولو ساده کول

په احتیاط او تدریجي ډول

د کانري د ځای پرځای کولو ماډل جوهر خورا ساده دی: کله چې تاسو د خپل سافټویر نوې نسخه لانچ کړئ (زموږ په قضیه کې ، مایکرو خدمت) ، تاسو لومړی د کاروونکو یوې کوچنۍ ډلې ته لاسرسی ورکړئ. که هرڅه سم وي، تاسو ورو ورو دا ګروپ ته وده ورکوئ تر هغه چې نوې نسخه عمل پیل کړي، یا - که دا نه وي - په پای کې ټول کاروونکي دې ته مهاجرت وکړئ. په فکري او تدریجي ډول د نوې نسخې معرفي کولو او په کنټرول شوي ډول دې ته د کاروونکو بدلولو سره، تاسو کولی شئ خطرونه کم کړئ او فیډبیک اعظمي کړئ.

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

د براوزر فلټر کول

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

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

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

په اسټیو کې تیاره لانچ: پټ خدمتونه

لامحدود ځواک

موږ دمخه لیکلي دي چې منظم بیانونه د روټینګ غوښتنو لپاره خورا قوي وړتیاوې چمتو کوي. لاندې مثال ته یو نظر وګورئ (موږ فکر کوو چې تاسو به پوه شئ چې دا څه کوي):

په اسټیو کې تیاره لانچ: پټ خدمتونه
تر دې دمه تاسو شاید یو نظر ولرئ چې منظم څرګندونې څه کولی شي.

هوښیار عمل وکړئ

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

علاقه لری؟

ایا تاسو لیواله یاست چې په خپل کمپیوټر کې د اسټیو ، کبرنیټس او اوپن شیف سره تجربه وکړئ؟ ټیم د Red Hat پراختیا کونکي ټیم یو عالي چمتو کړی درسي کتاب په دې موضوع او ټول ملحقه فایلونه په عامه توګه شتون لري. نو مخکې لاړ شئ او خپل ځان ته هیڅ شی مه ردوئ.

اسټیو ایګریس: د سووینیر پلورنځي له لارې وتل

د Red Hat OpenShift او Kubernetes سره یوځای د اسټیو کارولو سره، تاسو کولی شئ خپل ژوند د مایکرو خدماتو سره خورا اسانه کړئ. د اسټیو د خدماتو میش د کوبرنیټس پوډونو کې پټ دی، او ستاسو کوډ (اکثره) په انزوا کې پرمخ ځي. فعالیت، د بدلون اسانتیا، تعقیب، او نور - دا ټول د سایډ کار کانټینرونو کارولو څخه مننه کارول اسانه دي. مګر څه که ستاسو مایکرو خدمت د نورو خدماتو سره اړیکه ونیسي چې ستاسو د OpenShift-Kubernetes سیسټم څخه بهر موقعیت لري؟

دا هغه ځای دی چې اسټیو ایګریس د ژغورنې لپاره راځي. په لنډه توګه، دا په ساده ډول تاسو ته اجازه درکوي سرچینو ته لاسرسی ومومئ (لوستل: "خدمات") چې ستاسو د کوبرنیټس پوډ سیسټم برخه نه ده. که تاسو اضافي تشکیلات ترسره نه کړئ، نو د Istio Egress چاپیریال کې ټرافیک یوازې د پوډونو په کلستر کې او د داخلي IP جدولونو پراساس د ورته کلسترونو ترمنځ لیږدول کیږي. او دا ډول پوپیشن خورا ښه کار کوي تر هغه چې تاسو له بهر څخه خدماتو ته لاسرسی ته اړتیا نلرئ.

ایګریس تاسو ته اجازه درکوي چې پورتني IP جدولونه پریږدئ ، یا د ایګریس قواعدو یا د IP پتې په لړ کې.

راځئ چې ووایو موږ د جاوا برنامه لرو چې httpbin.org/headers ته د GET غوښتنه کوي.

(httpbin.org د وتلو خدماتو غوښتنو ازموینې لپاره یوازې یوه اسانه سرچینه ده.)

که تاسو د کمانډ لاین ته ننوځئ curl http://httpbin.org/headers، موږ به لاندې وګورو:

په اسټیو کې تیاره لانچ: پټ خدمتونه
یا تاسو کولی شئ ورته پته په براوزر کې خلاص کړئ:

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

موږ د وارداتو ځای په ځای کوو

اوس راځئ چې د دې خدمت جاوا کوډ واخلو، زموږ سیسټم ته بهرنی، او دا په خپل ځان چلوي، چیرته چې، یادول، اسټیو نصب شوی. (تاسو کولی شئ دا پخپله د تماس له لارې ترسره کړئ زموږ د اسټیو ټیوټوریل.) د مناسب عکس رامینځته کولو او د OpenShift پلیټ فارم کې یې په لاره اچولو سره ، موږ به دا خدمت د قوماندې سره وایو curl egresshttpbin-istioegress.$(minishift ip).nip.io، چې وروسته به موږ دا په سکرین کې وګورو:

په اسټیو کې تیاره لانچ: پټ خدمتونه
اوف، څه شوي؟ هر څه یوازې کار وکړ. نه موندل څه معنی لري؟ موږ یوازې د هغه لپاره وکړل curl.

ټول انټرنیټ ته د IP میزونو پراخول

Istio باید د دې لپاره ملامت شي (یا مننه). په هرصورت ، اسټیو یوازې د سایډ کار کانټینرونه دي چې د کشف او روټینګ مسؤلیت لري (او ډیری نور شیان چې موږ دمخه یې په اړه خبرې وکړې). د دې دلیل لپاره، د IP میزونه یوازې پوهیږي چې ستاسو د کلستر سیسټم دننه څه دي. او httpbin.org بهر موقعیت لري او له همدې امله د لاسرسي وړ ندي. او دا هغه ځای دی چې اسټیو ایګریس د ژغورنې لپاره راځي - پرته له دې چې ستاسو د سرچینې کوډ کې لږ بدلون راولي.

د ایګریس قانون لاندې اسټیو مجبوروي چې د اړتیا وړ خدمت لپاره لټون وکړي (که اړتیا وي نو بیا په ټول انټرنیټ کې) په دې حالت کې httpbin.org. لکه څنګه چې تاسو د دې فایل (egress_httpbin.yml) څخه لیدلی شئ، دلته فعالیت خورا ساده دی:

په اسټیو کې تیاره لانچ: پټ خدمتونه
ټول هغه څه چې پاتې دي د دې قانون پلي کول دي:

istioctl create -f egress_httpbin.yml -n istioegress

تاسو کولی شئ د کمانډ سره د Egress قواعد وګورئ istioctl get egressrules:

په اسټیو کې تیاره لانچ: پټ خدمتونه
او په نهایت کې ، موږ بیا قومانده چلوو کره - او موږ ګورو چې هرڅه کار کوي:

په اسټیو کې تیاره لانچ: پټ خدمتونه

موږ په ښکاره فکر کوو

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

دا د اسټیو په لړۍ کې وروستی پوسټ و. سره پاتې شئ - دلته ډیر په زړه پوري شیان شتون لري!

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

Add a comment