بغیر سرور ایپلی کیشنز بنانے کے لیے تجاویز اور وسائل

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

سرور لیس ٹیکنالوجیز کے بارے میں غلط فہمیاں

بہت سے لوگوں کا خیال ہے کہ سرور لیس اور سرور لیس پروسیسنگ (سروس کے طور پر کام کرتا ہے۔، FaaS) تقریبا ایک ہی چیز ہیں۔ اس کا مطلب یہ ہے کہ فرق بہت زیادہ نہیں ہے اور یہ ایک نیاپن متعارف کرانے کے قابل ہے۔ اگرچہ AWS Lambda سرور لیس ہیے ڈے کے ستاروں میں سے ایک تھا اور سرور لیس فن تعمیر کے سب سے مشہور عناصر میں سے ایک تھا، تاہم، یہ فن تعمیر FaaS سے کہیں زیادہ ہے۔

سرور لیس ٹیکنالوجیز کے پیچھے بنیادی اصول یہ ہے کہ آپ کو اپنے انفراسٹرکچر کے انتظام اور اسکیلنگ کے بارے میں فکر کرنے کی ضرورت نہیں ہے، آپ صرف وہی ادائیگی کرتے ہیں جو آپ استعمال کرتے ہیں۔ بہت سی خدمات ان معیارات پر پورا اترتی ہیں - AWS DynamoDB, S3, SNS یا SQS, Graphcool, Auth0, Now, Netlify, Firebase اور بہت سی دوسری۔ عام طور پر، سرور لیس کا مطلب ہے کلاؤڈ کمپیوٹنگ کی پوری طاقت کا استعمال کرتے ہوئے انفراسٹرکچر کو منظم کرنے اور اسکیلنگ کے لیے اسے بہتر بنانے کی ضرورت کے بغیر۔ اس کا مطلب یہ بھی ہے کہ بنیادی ڈھانچے کی سطح پر سیکیورٹی اب آپ کی فکر نہیں ہے، جو سیکیورٹی کے معیارات کو پورا کرنے میں دشواری اور پیچیدگی کے پیش نظر ایک بہت بڑا فائدہ ہے۔ آخر میں، آپ کو فراہم کردہ انفراسٹرکچر خریدنے کی ضرورت نہیں ہے۔

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

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

کچھ لوگ کلاؤڈ ایپلی کیشنز تیار کرتے وقت وینڈر پر انحصار کی وجہ سے الجھن میں ہیں۔ سرور لیس ٹیکنالوجیز کے ساتھ بھی ایسا ہی ہے، اور یہ شاید ہی کوئی غلط فہمی ہو۔ ہمارے تجربے میں، AWS پر سرور لیس ایپلی کیشنز کی تعمیر، AWS Lambda کی دیگر AWS سروسز کو ایک ساتھ باندھنے کی صلاحیت کے ساتھ، سرور لیس فن تعمیر کی طاقت کا حصہ ہے۔ یہ مطابقت کی ایک اچھی مثال ہے، جب امتزاج کا نتیجہ صرف شرائط کے مجموعہ سے زیادہ ہوتا ہے۔ وینڈر پر انحصار سے بچنے کی کوشش کرنا اور بھی زیادہ مسائل کا شکار ہو سکتا ہے۔ کنٹینرز کے ساتھ کام کرتے وقت، کلاؤڈ فراہم کنندگان کے درمیان اپنی تجریدی پرت کا نظم کرنا آسان ہوتا ہے۔ لیکن جب سرور کے بغیر حل کی بات آتی ہے تو، کوشش کا کوئی فائدہ نہیں ہوگا، خاص طور پر اگر شروع سے لاگت کی تاثیر کو مدنظر رکھا جائے۔ یہ معلوم کرنا یقینی بنائیں کہ دکاندار خدمات کیسے فراہم کرتے ہیں۔ کچھ خصوصی خدمات دوسرے دکانداروں کے ساتھ انضمام پوائنٹس پر انحصار کرتی ہیں اور یہ باکس سے باہر پلگ اینڈ پلے کنیکٹیویٹی فراہم کر سکتی ہیں۔ گیٹ وے API اینڈ پوائنٹ سے لیمبڈا کال فراہم کرنا کسی کنٹینر یا EC2 مثال کے لیے درخواست پراکسی کرنے کے بجائے آسان ہے۔ Graphcool Auth0 کے ساتھ آسان کنفیگریشن فراہم کرتا ہے، جو کہ فریق ثالث کے تصدیقی ٹولز کے استعمال سے زیادہ آسان ہے۔

اپنی سرور لیس ایپلیکیشن کے لیے صحیح وینڈر کا انتخاب ایک آرکیٹیکچرل فیصلہ ہے۔ جب آپ ایک ایپلیکیشن بناتے ہیں، تو آپ کو ایک دن سرور کے انتظام پر واپس آنے کی امید نہیں ہوتی ہے۔ کلاؤڈ وینڈر کا انتخاب کنٹینرز یا ڈیٹا بیس، یا یہاں تک کہ ایک پروگرامنگ لینگویج استعمال کرنے کے انتخاب سے مختلف نہیں ہے۔

غور کریں:

  • آپ کو کن خدمات کی ضرورت ہے اور کیوں۔
  • کلاؤڈ فراہم کنندہ کیا خدمات فراہم کرتے ہیں اور آپ انہیں اپنے منتخب کردہ FaaS حل کے ساتھ کیسے جوڑ سکتے ہیں۔
  • کون سی پروگرامنگ لینگویجز سپورٹ کی جاتی ہیں (متحرک یا جامد ٹائپنگ کے ساتھ، مرتب شدہ یا تشریح شدہ، معیارات کیا ہیں، کولڈ اسٹارٹ پر کارکردگی کیا ہے، اوپن سورس ایکو سسٹم کیا ہے، وغیرہ)۔
  • آپ کے حفاظتی تقاضے کیا ہیں (SLA، 2FA، OAuth، HTTPS، SSL، وغیرہ)۔
  • اپنے CI/CD اور سافٹ ویئر ڈویلپمنٹ سائیکل کا نظم کیسے کریں۔
  • کوڈ کے طور پر بنیادی ڈھانچے کے حل سے آپ فائدہ اٹھا سکتے ہیں۔

اگر آپ کسی موجودہ ایپلیکیشن کو بڑھاتے ہیں اور بتدریج سرور کے بغیر فعالیت شامل کرتے ہیں، تو یہ دستیاب صلاحیتوں کو کچھ حد تک محدود کر سکتا ہے۔ تاہم، تقریباً تمام سرور لیس ٹیکنالوجیز کسی نہ کسی قسم کا API فراہم کرتی ہیں (بذریعہ REST یا پیغام کی قطار) جو آپ کو ایپلیکیشن کور سے آزاد اور آسان انضمام کے ساتھ ایکسٹینشنز بنانے کی اجازت دیتی ہے۔ واضح APIs، اچھی دستاویزات، اور ایک مضبوط کمیونٹی والی خدمات تلاش کریں، اور آپ غلط نہیں ہو سکتے۔ انضمام کی آسانی اکثر ایک کلیدی میٹرک ہو سکتی ہے، اور شاید یہ ایک اہم وجہ ہے کہ 2015 میں Lambda کے ریلیز ہونے کے بعد سے AWS اتنا کامیاب کیوں ہوا ہے۔

جب سرور لیس اچھا ہوتا ہے۔

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

لاگت کی بچت اور اسکیلنگ میں آسانی کی وجہ سے، سرور لیس حل ملٹی ملین سامعین کے ساتھ ویب ایپلیکیشن تک، اندرونی اور بیرونی دونوں نظاموں کے لیے یکساں طور پر لاگو ہوتے ہیں۔ اکاؤنٹس کی پیمائش یورو کے بجائے سینٹ میں کی جاتی ہے۔ AWS EC2 (t1.micro) کو ایک ماہ کے لیے کرائے پر لینے پر €15 لاگت آئے گی، یہاں تک کہ اگر آپ اس کے ساتھ کچھ نہیں کرتے ہیں (جو اسے بند کرنا کبھی نہیں بھولے؟!)۔ اس کے مقابلے میں، اسی مدت میں اخراجات کی اس سطح تک پہنچنے کے لیے، آپ کو 512 سیکنڈ کے لیے تقریباً 1 ملین بار 3 MB لیمبڈا چلانے کی ضرورت ہوگی۔ اور اگر آپ اس خصوصیت کو استعمال نہیں کرتے ہیں، تو آپ کچھ بھی ادا نہیں کرتے ہیں۔

چونکہ سرور لیس بنیادی طور پر ایونٹ پر مبنی ہے، اس لیے پرانے سسٹمز میں سرور لیس انفراسٹرکچر شامل کرنا کافی آسان ہے۔ مثال کے طور پر، AWS S3، Lambda، اور Kinesis کا استعمال کرتے ہوئے، آپ ایک پرانے ریٹیل سسٹم کے لیے ایک تجزیاتی سروس بنا سکتے ہیں جو API کے ذریعے ڈیٹا حاصل کر سکتی ہے۔

زیادہ تر سرور لیس پلیٹ فارم متعدد زبانوں کی حمایت کرتے ہیں۔ اکثر یہ Python، JavaScript، C#، Java اور Go ہوتا ہے۔ عام طور پر تمام زبانوں میں لائبریریوں کے استعمال پر کوئی پابندی نہیں ہے، لہذا آپ اپنی پسندیدہ اوپن سورس لائبریریوں کو استعمال کر سکتے ہیں۔ تاہم، یہ مشورہ دیا جاتا ہے کہ انحصار کا غلط استعمال نہ کریں تاکہ آپ کے افعال بہترین کارکردگی کا مظاہرہ کریں اور آپ کی سرور لیس ایپلی کیشنز کے بڑے پیمانے کے فوائد کی نفی نہ کریں۔ جتنے زیادہ پیکجوں کو کنٹینر میں لوڈ کرنے کی ضرورت ہے، کولڈ اسٹارٹ میں اتنا ہی زیادہ وقت لگے گا۔

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

اگرچہ AWS جاری کیا گیا۔ سرور لیس ایس کیو ایل ڈیٹا بیس سرور لیس ارورہتاہم، ایس کیو ایل ڈیٹا بیس اس ایپلی کیشن کے لیے مثالی نہیں ہیں، کیونکہ وہ لین دین کو انجام دینے کے لیے کنکشنز پر انحصار کرتے ہیں، جو AWS Lambda پر بھاری ٹریفک کے ساتھ تیزی سے رکاوٹ بن سکتے ہیں۔ جی ہاں، ڈویلپرز مسلسل سرور لیس ارورہ کو بہتر بنا رہے ہیں، اور آپ کو اس کے ساتھ تجربہ کرنا چاہیے، لیکن آج NoSQL حل جیسے ڈائمنمو ڈی بی. تاہم اس میں کوئی شک نہیں کہ یہ صورتحال بہت جلد بدل جائے گی۔

ٹول کٹ خاص طور پر مقامی جانچ کے میدان میں بہت سی پابندیاں بھی عائد کرتی ہے۔ اگرچہ Docker-Lambda، DynamoDB Local اور LocalStack جیسے حل موجود ہیں، ان کے لیے سخت محنت اور کافی مقدار میں ترتیب درکار ہوتی ہے۔ تاہم، یہ تمام منصوبے فعال طور پر تیار کیے گئے ہیں، اس لیے یہ صرف وقت کی بات ہے اس سے پہلے کہ ٹول کٹ ہماری ضرورت کی سطح تک پہنچ جائے۔

ترقی کے چکر پر سرور لیس ٹیکنالوجیز کا اثر

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

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

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

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

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

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

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

بغیر سرور ایپلی کیشنز بنانے کے لیے ٹولز اور تکنیک

سرور لیس ایپلی کیشنز بنانے کا کوئی خاص طریقہ نہیں ہے۔ نیز اس کام کے لیے خدمات کا ایک سیٹ۔ AWS آج طاقتور سرور لیس حلوں میں سرفہرست ہے، لیکن اس پر بھی نظر ڈالیں۔ گوگل کلاؤڈ, وقت и فائر بیس. اگر آپ AWS استعمال کر رہے ہیں، تو درخواستیں جمع کرنے کے لیے تجویز کردہ طریقہ ہے۔ سرور لیس ایپلیکیشن ماڈل (SAM)، خاص طور پر C# استعمال کرتے وقت، کیونکہ بصری اسٹوڈیو میں زبردست ٹولنگ ہوتی ہے۔ SAM CLI وہ سب کچھ کر سکتا ہے جو ویژول اسٹوڈیو کر سکتا ہے، لہذا اگر آپ کسی دوسرے IDE یا ٹیکسٹ ایڈیٹر پر سوئچ کرتے ہیں تو آپ کو کچھ نہیں کھونا پڑے گا۔ یقینا، SAM دوسری زبانوں کے ساتھ بھی کام کرتا ہے۔

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

مقامی جانچ کے لیے، اوپن سورس ٹولز Docker-Lambda، Serverless Local، DynamoDB Local، اور LocalStack اچھی طرح سے موزوں ہیں۔ سرور لیس ٹیکنالوجیز اب بھی ترقی کے اپنے ابتدائی مراحل میں ہیں، جیسا کہ ان کے لیے ٹولز ہیں، اس لیے پیچیدہ امتحانی منظرناموں کے لیے ترتیب دیتے وقت، آپ کو سخت محنت کرنی پڑے گی۔ تاہم، محض اسٹیک کو ماحول میں تعینات کرنا اور وہاں جانچ کرنا ناقابل یقین حد تک سستا ہے۔ اور آپ کو بادل کے ماحول کی قطعی مقامی کاپی بنانے کی ضرورت نہیں ہے۔

تعینات پیکجوں کے سائز کو کم کرنے اور ڈاؤن لوڈز کو تیز کرنے کے لیے AWS Lambda Layers کا استعمال کریں۔

مخصوص کاموں کے لیے صحیح پروگرامنگ زبانیں استعمال کریں۔ مختلف زبانوں کے اپنے فائدے اور نقصانات ہیں۔ بہت سے معیارات ہیں، لیکن JavaScript، Python، اور C# (NET Core 2.1+) AWS Lambda کی کارکردگی کے لحاظ سے رہنما ہیں۔ AWS Lambda نے حال ہی میں Runtime API متعارف کرایا ہے، جو آپ کو اپنی مطلوبہ رن ٹائم زبان اور ماحول کی وضاحت کرنے کی اجازت دیتا ہے، لہذا تجربہ کریں۔

تعیناتی کے لیے پیکیج کا سائز چھوٹا رکھیں۔ وہ جتنے چھوٹے ہوتے ہیں، اتنی ہی تیزی سے لوڈ ہوتے ہیں۔ بڑی لائبریریوں کے استعمال سے گریز کریں، خاص طور پر اگر آپ ان میں سے کچھ خصوصیات استعمال کرتے ہیں۔ اگر آپ JavaScript میں پروگرامنگ کر رہے ہیں، تو اپنی تعمیر کو بہتر بنانے کے لیے Webpack جیسے بلڈ ٹول کا استعمال کریں اور صرف وہی شامل کریں جس کی آپ کو واقعی ضرورت ہے۔ .NET Core 3.0 میں QuickJit اور Tiered Compilation ہے جو کارکردگی کو بہتر بناتا ہے اور سرد شروع ہونے پر بہت مدد کرتا ہے۔

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

حاصل يہ ہوا

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

ماخذ: www.habr.com

نیا تبصرہ شامل کریں