مون کي منهنجي مونولٿ واپس ڏي

اهو لڳي ٿو ته microservices لاء hype جي چوٽي اسان جي پويان آهي. اسان ھاڻي ھفتي ۾ ڪيترائي ڀيرا پوسٽون نه پڙھندا آھيون “ڪيئن مون پنھنجي مونولٿ کي 150 خدمتن ڏانھن منتقل ڪيو.” ھاڻي مون کي وڌيڪ عام فھم خيالات ٻڌڻ ۾ اچن ٿا: "مان مونولٿ کان نفرت نٿو ڪريان، مون کي صرف ڪارڪردگي جي پرواھ آھي." اسان ڪيترن ئي لڏپلاڻ جو پڻ مشاهدو ڪيو microservices کان واپس monolith ڏانهن. جڏهن هڪ وڏي ايپليڪيشن کان ڪيترن ئي ننڍڙن خدمتن ڏانهن منتقل ڪيو وڃي، توهان کي ڪيترائي نوان مسئلا حل ڪرڻا پوندا. اچو ته انهن کي ممڪن طور تي مختصر طور تي فهرست ڏيو.

سيٽنگ: بنيادي ڪيمسٽري کان ڪوانٽم ميڪيڪل تائين

ھڪڙي بنيادي ڊيٽابيس کي ترتيب ڏيڻ ۽ ھڪڙي پس منظر واري عمل سان ايپليڪيشن ھڪڙي سادي عمل ھئي. مان Github تي readme شايع ڪريان ٿو - ۽ اڪثر ڪري هڪ ڪلاڪ اندر، ٻه ڪلاڪ گهڻو ڪري، سڀ ڪجهه ڪم ڪري ٿو ۽ مان هڪ نئون پروجيڪٽ شروع ڪريان ٿو. ڪوڊ شامل ڪرڻ ۽ هلائڻ، گهٽ ۾ گهٽ ابتدائي ماحول لاء، پهرين ڏينهن تي ڪيو ويندو آهي. پر جيڪڏهن اسان مائڪرو سروسز ۾ قدم کڻون ٿا، شروعاتي لانچ جو وقت آسمان ڏانهن وڌي ٿو. ها، هاڻي اسان وٽ ڊڪر آهي آرڪيسٽريشن سان ۽ K8 مشينن جو هڪ ڪلستر، پر هڪ نئين پروگرامر لاء اهو سڀ ڪجهه وڌيڪ پيچيده آهي. ڪيترن ئي جونيئرز لاء، هي هڪ بوجھ آهي جيڪو واقعي هڪ غير ضروري پيچيدگي آهي.

سسٽم کي سمجهڻ آسان ناهي

اچو ته هڪ لمحي لاء اسان جي جونيئر تي ڌيان ڏيو. monolithic ايپليڪيشنن سان، جيڪڏهن ڪا غلطي ٿي وئي، اهو آسان ٿي ويو ان کي ٽريڪ ڪرڻ ۽ فوري طور تي ڊيبگنگ ڏانهن منتقل ڪريو. ھاڻي اسان وٽ ھڪڙي خدمت آھي جيڪا ٻي خدمت سان ڳالھائي رھي آھي جيڪا ھڪڙي ميسيج بس تي ڪجھ قطار ڪري رھي آھي جيڪا ٻي خدمت کي پروسيس ڪري رھي آھي - ۽ پوءِ ھڪڙو نقص آھي. اسان کي اهي سڀئي ٽڪرا گڏ ڪرڻا پوندا آخرڪار اهو معلوم ڪرڻ لاءِ ته سروس A هلي رهي آهي ورجن 11، ۽ سروس E اڳ ۾ ئي ورجن 12 جو انتظار ڪري رهي آهي. هي منهنجي معياري گڏيل لاگ کان بلڪل مختلف آهي: هلڻ لاءِ هڪ انٽرايڪٽو ٽرمينل/ڊيبگر استعمال ڪرڻو پوندو. عمل جي ذريعي قدم قدم. ڊيبگنگ ۽ سمجھڻ فطري طور تي وڌيڪ ڏکيو ٿي چڪو آهي.

جيڪڏهن اهو ڊيبگ نه ٿي سگهي، شايد اسان انهن کي جانچ ڪنداسين

مسلسل انضمام ۽ مسلسل ترقي هاڻي عام ٿي رهيا آهن. گهڻيون نيون ائپس جيڪي مون کي نظر اچن ٿيون هر نئين رليز سان پاڻمرادو ٽيسٽ ٺاهي ۽ هلائين ٿيون ۽ رجسٽريشن کان پهريان ٽيسٽ وٺڻ ۽ جائزو وٺڻ جي ضرورت آهي. اهي عظيم عمل آهن جن کي نه ڇڏڻ گهرجي ۽ ڪيترن ئي ڪمپنين لاءِ وڏي تبديلي آهي. پر ھاڻي، حقيقت ۾ خدمت کي جانچڻ لاء، مون کي پنھنجي ايپليڪيشن جو مڪمل ڪم ڪندڙ ورزن ڪڍڻو پوندو. ياد رهي ته نئون انجنيئر K8 ڪلستر جي 150 خدمتن سان؟ خير، هاڻي اسان پنهنجي سي آءِ سسٽم کي سيکارينداسين ته انهن سڀني سسٽم کي ڪيئن آڻڻ جي تصديق ڪرڻ لاءِ ته هر شي واقعي ڪم ڪري ٿي. اها شايد تمام گهڻي ڪوشش آهي، تنهنڪري اسان صرف هر حصي کي اڪيلائي ۾ آزمائينداسين: مون کي يقين آهي ته اسان جا چشما ڪافي سٺا آهن، APIs صاف آهن، ۽ هڪ خدمت ناڪامي الڳ آهي ۽ ٻين کي متاثر نه ڪندي.

سڀني سمجھوتن جو ھڪڙو سٺو سبب آھي. ساڄو؟

microservices ڏانهن وڃڻ جا ڪيترائي سبب آهن. مون ڏٺو آهي ته اهو ڪيو ويو آهي وڌيڪ لچڪ لاءِ، اسڪيلنگ ٽيمن لاءِ، ڪارڪردگيءَ لاءِ، بهتر استحڪام مهيا ڪرڻ لاءِ. پر حقيقت ۾، اسان ڪيترن ئي ڏهاڪن کان اوزارن ۽ طريقن ۾ خرچ ڪيو آهي ته مونولٿس کي ترقي ڪرڻ لاء جيڪي ترقي جاري رکندا آهن. مان مختلف ٽيڪنالاجيز ۾ پروفيسر سان ڪم ڪريان ٿو. اسان عام طور تي اسڪيلنگ بابت ڳالهايون ٿا ڇاڪاڻ ته اهي هڪ واحد پوسٽ گريس ڊيٽابيس نوڊ جي حدن ۾ هلن ٿا. گهڻيون ڳالهيون ان بابت آهن ڊيٽابيس اسڪيلنگ.

پر مان هميشه انهن جي فن تعمير بابت سکڻ ۾ دلچسپي رکندو آهيان. microservices ڏانهن منتقلي جي ڪهڙي مرحلي ۾ اهي آهن؟ اهو دلچسپ آهي وڌيڪ انجنيئرن کي ڏسڻ لاءِ چون ٿا ته اهي خوش آهن انهن جي هڪجهڙائي واري درخواست سان. گھڻا ماڻھو مائيڪرو سروسز مان فائدو وٺندا، ۽ فائدا لڏپلاڻ جي رستي ۾ ايندڙ جھازن کان وڌيڪ ٿيندا. پر ذاتي طور تي، مهرباني ڪري مون کي منهنجي monolithic درخواست ڏيو، ساحل تي هڪ جڳهه - ۽ مان مڪمل طور تي خوش آهيان.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو