RESTful API بمقابلہ مائکروسروائس

ترمیم کریں: مائکروسروائس کے بارے میں خیالات سے متعلق ایک نیا عظیم مضمون۔

ترمیم کریں: گوگل کی جانب سے ایک اور عمدہ API ڈیزائن گائیڈ۔

ترمیم کریں: ماڈیولرائزیشن پر پڑھنے کے بعد میرے خیالات

آر ای ایس ٹی کا آرکیٹیکچرل اسٹائل پہلی بار 2000 میں متعارف کرایا گیا تھا ، بنیادی طور پر ایچ ٹی ٹی پی / 1.1 کے ساتھ بہتر کام کرنے کے لئے ڈیزائن کیا گیا تھا۔ اس کا بنیادی اصول نامزد وسائل کی وضاحت کرنا ہے جو بہت کم طریقوں کے ذریعے جوڑ توڑ کر سکتے ہیں۔ وسائل اور طریقے APIs کے اسم اور فعل کے طور پر جانا جاتا ہے۔ HTTP پروٹوکول کے ذریعہ ، وسائل کے نام قدرتی طور پر یو آر ایل کا نقشہ بناتے ہیں ، اور طریق naturally کار قدرتی طور پر HTTP طریقوں POST، GET، PUT، PATCH، اور حذف کرتے ہیں۔

ایک دن مجھ سے RESTful API اور بہت ہی گرم مائکروسروسیس کے مابین اختلافات / تعلقات کے بارے میں پوچھا گیا۔ مائیکروسروسیس اصولوں اور ڈیزائنوں کے بارے میں بات کرنے میں بہت سارے زبردست مضامین موجود ہیں ، اور لگتا ہے کہ RESTful API مائیکروسروائسز سے ملتا جلتا ہے۔ تاہم ، مائیکروسروائسز فن تعمیراتی معاملات کے بارے میں زیادہ ہیں جبکہ ریسٹول API میں مائکروسروائسس کو بے نقاب کرنے کے طریقہ پر زیادہ توجہ دی گئی ہے۔

اس سے کوئی فرق نہیں پڑتا ہے کہ آپ مائکرو سروسز کو کس طرح نافذ کرتے ہیں ، ایک اہم ڈرائیور تیزی سے مارکیٹ کرنے کے لئے امید رکھتا ہے لہذا اس کا ایک اہم مقصد یہ ہے کہ ایک اعشاریہ ، آزاد اور چھوٹے نظام بنائے جائیں (کاروبار کی قیمت کو آزادانہ ترسیل کی اجازت دی جائے) جس میں سے ہر ایک کو۔

  • سمجھنے / ترمیم کرنے میں آسان ہے (کیونکہ وہ چھوٹے ہیں)
  • منطق / کاروباری اصول رکھنے والی واحد جگہ ہے
  • کسی بھی عملدرآمد کی تفصیلات کو بے نقاب نہیں کرتا ہے جیسے کہ آسانی سے جوڑے کو یقینی بنانے کے لئے ڈیٹا بیس۔ اس کا یہ مطلب بھی ہے کہ RESTful APIs یا افعال جو ایک پابند تناظر میں Aggregates کو لاگو کرتے ہیں ان کا تعلق ایک Microservice سے ہونا چاہئے کیونکہ وہ ایک ہی اعلی سطحی ڈیزائن اور فن تعمیر کے بہت سے حصص کے لحاظ سے مضبوطی کے ساتھ جوڑا جاتا ہے ، یعنی پروگرامنگ زبان اور فریم ورک ، ڈیٹا بیس تک رسائی فریم ورک ، پیچیدگی کو کم کرنے کے ل as کیونکہ آپ ماڈیول یا پابند سیاق و سباق (یعنی میسجنگ سروس) کو برقرار نہیں رکھنا چاہتے ہیں جو مختلف ٹیکنالوجیز اور ٹیک اسٹیکس کا استعمال کرتے ہیں
  • جب تک انٹرفیس ایک جیسے رہیں ، دوسروں کو متاثر کیے بغیر الگ سے تعینات کیا جاسکتا ہے
  • کچھ اور فوائد (جیسے الگ پیمانے پر اسکیل ، پروگرامنگ زبان کا انتخاب وغیرہ)
  • بورنگ لیکن مشکل آپریشنل پیچیدگی کے ل trade تجارتی ترقی کی پیچیدگی ، یعنی خدمات کی دریافت ، خدمت سے خدمت اور اصل خدمت کی حفاظت ، مشاہدہ (ٹیلی میٹری اور تقسیم شدہ سراغ سمیت)

مجھے کوڈ کی لائنوں یا طریقوں کی تعداد کے لحاظ سے مائکروسروائسز کے بارے میں سوچنے کا خیال پسند نہیں ہے ، لیکن عملی طور پر ایک مائکروسروائسز کے لئے ایک پابند سیاق و سباق کا ایک بڑا امیدوار ہوسکتا ہے۔ اگر تبدیلیوں کی فراہمی کے لئے آہستہ اور مہنگے ہم آہنگی کی ضرورت ہوتی ہے تو ، فن تعمیر کا جائزہ لینے کی ضرورت ہے کیونکہ اس سے اہداف حاصل نہیں ہوتے ہیں۔

مائکروسروائسس کو ڈیزائن کرتے وقت تنہائی یا غلطی برداشت کرنے کا ایک سب سے اہم مقصد ہوتا ہے۔ اگر ایک سسٹم الگ تھلگ مائکروسروائسز کے سیٹ پر مشتمل ہے تو ، مائکرو سروسز میں سے کسی ایک میں ناکامی پورے نظام کو متاثر نہیں کرے گی۔ مثال کے طور پر ، اگر مائکروسروائسز (جیسے ممبر سروس) ایک بنیادی خدمت ہے جس پر بہت سے دوسرے مائکروسروائسز انحصار کرتے ہیں ، ہمیں ان کے بارے میں یہ سوچنے کی ضرورت ہے کہ بنیادی خدمت کے ساتھ بات چیت اور بات چیت غلطی روادار ہے۔ منسلک سیاق و سباق میں مدد مل سکتی ہے ، اس کے معنی میں ، ہر مائکروسروائسز (جیسے میسجنگ سروس) کی اپنی ایک ہی ماڈل (جیسے ممبر) کی اپنی تعریف ہوتی ہے اور انہیں داخلی طور پر مطابقت پذیر بناتا ہے تاکہ وہ مائکروسروائسس کو استعمال کیے بغیر ان کا استعمال کرے۔ جب مائیکرو سروسز کو اپنی حالت بدلنے کی کوشش کی جائے تو پیغام بروکر کو ان کے درمیان انٹرمیڈیٹ کے طور پر بھی استعمال کیا جاسکتا ہے ، اور آخرکار اعداد و شمار مستقل مزاجی بن جائیں گے۔

لہذا ، مائیکروسروائسز آرکیٹیکچرل اور ڈیزائن اسٹائل کے بارے میں زیادہ ہے ، اور آپ ریسٹول API کے بغیر مائکروسروائسس کو لاگو کرنے کے قابل ہوسکتے ہیں۔ تاہم ، RESTful API آسانی سے جوڑے ہوئے مائکروسروائسس کی تعمیر آسان بناتا ہے۔

مائیکروسروائسز سے قبل RESTful API متعارف کرایا گیا تھا۔ یہ آر پی سی پروٹوکول میں سے ایک ہے۔ ایک اہم خیال یہ ہے کہ ہر شے کا یکساں انٹرفیس ہوتا ہے۔ مثال کے طور پر ، نمونوں کے ذریعہ اشیاء کی نشاندہی اور ہیرا پھیری کی جاتی ہے۔ ASP.NET Web API دنیا میں ، اشیاء کنٹرولرز ، ایکشنز اور HttpVerbs اوصاف کے ذریعہ ترتیب دی جاتی ہیں۔

لائبریری API (.dll کی شکل میں) کے برخلاف ، RESTful API (عملی طور پر API کو HTTP کے اختتامی نقطوں کے ذریعے بے نقاب کیا گیا)

  • واقعی ڈھیلے ڈھکے جوڑے ہوئے ہیں (جب تک کہ انٹرفیس اور ان کی اصطلاحات یکساں رہیں ، سرور پر API کا عمل درآمد اپنے صارفین اور صارف کی جانب سے تعیناتیوں کو توڑنے کی فکر کیے بغیر کسی بھی وقت تبدیل ہوسکتا ہے)
  • زبان زنانا ہے

لہذا ، مائکروسروائسز اور ریسٹول API مختلف مسائل حل کرتی ہے لیکن مل کر کام کرتی ہے!