کی میز کے مندرجات[چھپائیں][دکھائیں]
انفراسٹرکچر سافٹ ویئر کی ترقی کے عمل کا ایک اہم حصہ ہے کیونکہ یہ سافٹ ویئر ایپلیکیشن کے ہموار آپریشن کے لیے براہ راست ذمہ دار ہے۔ سرورز، لوڈ بیلنسرز، فائر والز، ڈیٹا بیس، اور پیچیدہ کنٹینر کلسٹرس بنیادی ڈھانچے کی تمام مثالیں ہیں۔
چونکہ بنیادی ڈھانچے کی مشکلات پورے ترقیاتی عمل میں پھیلی ہوئی ہیں، اس لیے وہ پیداواری حالات سے بالاتر ہیں۔
ان میں دیگر چیزوں کے علاوہ CI/CD پلیٹ فارم، سٹیجنگ ماحول، اور ٹیسٹنگ ٹولز شامل ہیں۔
جیسے جیسے سافٹ ویئر پروڈکٹ کی پیچیدگی بڑھتی ہے، یہ بنیادی ڈھانچے کے چیلنجز زیادہ نازک ہوتے جاتے ہیں۔ بنیادی ڈھانچے کو دستی طور پر منظم کرنے کی روایتی تکنیک تیزی سے آج کے DevOps پر مبنی تیز رفتار سافٹ ویئر ڈویلپمنٹ سائیکلوں کی خواہشات سے میل کھاتی ہوئی ایک ناقابل توسیع حل بن جاتی ہے۔
نتیجے کے طور پر، بنیادی ڈھانچہ بطور کوڈ (IaC) آج ڈی فیکٹو ڈیولپمنٹ حل بن گیا ہے۔ بنیادی ڈھانچہ بطور کوڈ (IaC) آپ کو بنیادی ڈھانچے کی تبدیلیوں کے پیدا ہوتے ہی اسکیل اور ٹریک کرنے کے قابل بناتا ہے۔
ہم اس حصے میں بنیادی ڈھانچے کو بطور کوڈ پر قریب سے دیکھیں گے، بشمول اس کے فوائد، یہ کیوں ضروری ہے، اور مزید۔ تو، آئیے شروع کرتے ہیں۔
کیا ہے بنیادی ڈھانچہ بطور ضابطہ?
کوڈ کے طور پر بنیادی ڈھانچہ مناسب آلات اور سسٹمز کو دستی طور پر ترتیب دینے کے بجائے کوڈ کا استعمال کرتے ہوئے ماحول فراہم کرنے اور ترتیب دینے کا عمل ہے۔ ڈویلپرز کوڈ کے پیرامیٹرز کی وضاحت کرنے کے بعد اسکرپٹ چلاتے ہیں، اور IaC پلیٹ فارم خود بخود کلاؤڈ انفراسٹرکچر تیار کرتا ہے۔
اس طرح کی خودکار آئی ٹی کنفیگریشن ٹیموں کو اپنے پروڈکٹ کی جانچ اور چلانے کے لیے ضروری کلاؤڈ سیٹنگ کو تیزی سے تیار کرنے کی اجازت دیتی ہے۔ بنیادی ڈھانچہ بطور کوڈ ڈویلپرز کو اس قابل بناتا ہے کہ وہ جو بھی بنیادی ڈھانچے کا جزو چاہتے ہیں، جیسے نیٹ ورکس، لوڈ بیلنسرز، ڈیٹا بیس، ورچوئل مشینیں، اور کنکشن کی اقسام۔
عام آدمی کی شرائط میں، یہ ہاتھ سے نہیں بلکہ کوڈ کا استعمال کرتے ہوئے مخصوص انفراسٹرکچر کی فراہمی اور انتظام کا عمل ہے۔ IaC ایک اہم DevOps تکنیک بھی ہے جو تیز رفتار سافٹ ویئر ڈیلیوری لائف سائیکل کے لیے ضروری ہے۔
یہ DevOps ٹیموں کو اسی انداز میں بنیادی ڈھانچے کو تیزی سے تعمیر اور ورژن بنانے کی اجازت دیتا ہے جس طرح سورس کوڈ کو ورژن بنایا گیا ہے، اور ساتھ ہی ان ورژنز کو ٹریک کرنے کے لیے IT ماحولیات کے درمیان عدم مطابقت کو کم سے کم کیا جا سکتا ہے، جو تعیناتی کے دوران بڑے مسائل کا سبب بن سکتا ہے۔
IaC کے لیے اعلانیہ بمقابلہ لازمی نقطہ نظر
IaC سے دو طریقوں سے رابطہ کیا جا سکتا ہے: اعلانیہ یا لازمی۔
ایک IaC ٹول آپ کے لیے نظام ترتیب دے گا اگر آپ ایک اعلانیہ طریقہ استعمال کرتے ہیں، جو نظام کی مطلوبہ حالت کو بیان کرتا ہے، بشمول آپ کو کن وسائل کی ضرورت ہے اور ان میں کوئی خصوصیات ہونی چاہئیں۔
ایک اعلانیہ نقطہ نظر آپ کے سسٹم آبجیکٹ کی موجودہ حالت کو بھی برقرار رکھتا ہے، جس سے آپ کے انفراسٹرکچر کے ڈاؤن ٹائم کو منظم کرنا آسان ہو جاتا ہے۔ دوسری طرف، ایک لازمی طریقہ ان مخصوص ہدایات کا خاکہ پیش کرتا ہے جن کو مطلوبہ ترتیب بنانے کے لیے مناسب ترتیب میں عمل میں لانا ضروری ہے۔
بہت سی IaC ٹیکنالوجیز بنیادی ڈھانچے کی فراہمی کے لیے اعلانیہ طریقہ استعمال کرتی ہیں اور یہ خود بخود ہو جائیں گی۔ اگر آپ انہیں بناتے ہیں تو ایک اعلانیہ IaC ٹول آپ کے لیے مطلوبہ حالت میں ترمیمات کا اطلاق کرے گا۔ اگر آپ کوئی ضروری ٹول استعمال کر رہے ہیں تو آپ کو ان ایڈجسٹمنٹ کو لاگو کرنے کا طریقہ معلوم کرنا ہوگا۔ IaC ٹولز اکثر دونوں طریقوں میں کام کرنے کے قابل ہوتے ہیں، حالانکہ وہ ایک دوسرے کو پسند کرتے ہیں۔
بنیادی ڈھانچہ بطور کوڈ کیسے کام کرتا ہے؟
بنیادی ڈھانچے کو کوڈ کے طور پر مکمل طور پر نافذ کرنے کے لیے، چند تقاضوں کا ہونا ضروری ہے۔
کلاؤڈ ہوسٹنگ کے لیے ایک پلیٹ فارم بطور سروس (IaaS)
پہلی اور سب سے اہم ضرورت ریموٹ ایکسیس ہوسٹنگ ہے۔ کنفیگریشن مینجمنٹ ٹول کو ریموٹ ہوسٹ سے منسلک ہونا چاہیے اور وہاں تبدیلیاں کرنی چاہیے۔ آپ کی ٹیم کو اس بات کی ضمانت دینی چاہیے کہ کنفیگریشن مینجمنٹ ٹول کو رسائی حاصل ہے اگر دور کا انفراسٹرکچر خود منظم ہے۔
IaaS- فعال کلاؤڈ ہوسٹنگ پلیٹ فارم پر APIs صارفین کو مطالبہ پر بنیادی ڈھانچے کے وسائل کی تعمیر، ہٹانے اور تبدیل کرنے کے قابل بناتے ہیں۔ کنفیگریشن مینجمنٹ سسٹم ان سرگرمیوں کو مزید خودکار بنانے کے لیے ان APIs کا استعمال کر سکتے ہیں۔ Digital Ocean، Amazon AWS، اور Microsoft Azure تین بڑے IaaS سسٹم ہیں۔
ترتیب کے انتظام کے لیے ایک پلیٹ فارم
ٹولز سوٹ جو IaaS APIs سے جڑتا ہے اور عام آپریشنز کو خودکار کرتا ہے IaC کو مکمل کرنے کے لیے اگلی شرط ہے۔ لوگوں کا ایک گروپ سکرپٹ اور ٹولز کا مجموعہ تیار کرنے کے لیے مل کر کام کر سکتا ہے۔ تاہم، اس کے لیے کافی محنت، مسلسل دیکھ بھال، اور سرمایہ کاری پر کم سے کم منافع کی ضرورت ہوگی۔ Terraform، Ansible، Salt Stack، اور Chef اوپن سورس کنفیگریشن مینجمنٹ ٹولز میں سے صرف چند ہیں جو اس چیلنج کو سنبھالتے ہیں۔
ورژن کنٹرول سسٹم
کنفیگریشن مینجمنٹ پلیٹ فارم مارک اپ لینگویج میں لکھی گئی ٹیکسٹ فائلوں کا استعمال کرتا ہے جیسے YAML پلیٹ فارم کو عمل میں لانے کے لیے کام اور ترتیب فراہم کرنے کے لیے۔ ان ٹیکسٹ فائلوں کو ایپلیکیشن کوڈ کے طور پر سمجھا جا سکتا ہے اور ورژن کنٹرول ریپوزٹری میں محفوظ کیا جا سکتا ہے۔ ریپوزٹری میں پل کی درخواستوں اور کوڈ کے جائزوں کی اجازت ہے، جو سچائی کے ایک نقطہ کے طور پر کام کرتا ہے۔ ورژن کنٹرول سسٹم گٹ سب سے زیادہ مقبول ہے۔
ان شرائط کے ساتھ، درج ذیل منظر نامے پر غور کریں: ایک ڈویلپر سسٹم میں ایک نئی ایپلیکیشن سروس شامل کرنا چاہتا ہے۔ یہ مثال IaC کے عمل کی وضاحت کرتی ہے۔
- اپنے پسندیدہ کنفیگریشن مینجمنٹ پلیٹ فارم، Terraform میں، ڈویلپر YAML کنفیگریشن ٹیکسٹ فائل میں ترمیم کرتا ہے۔ تبدیلیاں بتاتی ہیں کہ ایک نیا ہوسٹنگ سرور درکار ہے۔
- گٹ ریپوزٹری میں، ڈویلپر فیچر برانچ میں تبدیلیوں کا ارتکاب کرتا ہے۔ ڈویلپر پل کی درخواست تیار کرتا ہے کیونکہ پروجیکٹ کی گٹ ریپوزٹری بٹ بکٹ پر ہوسٹ کی جاتی ہے۔ ٹیم کا ایک اور رکن پل کی درخواست کو دیکھتا ہے اور بنیادی ڈھانچے کی نئی بہتری کو نوٹس کرتا ہے۔ پل کی درخواست کو ٹیم کے ایک رکن نے منظور کیا ہے، اور ڈویلپر اس تبدیلی کو ریپوزٹری کی مرکزی شاخ میں ضم کرتا ہے۔
- اپ ڈیٹ کرنے کے لیے اس مرحلے پر کنفیگریشن پلیٹ فارم درکار ہے۔ ڈویلپر دستی طور پر اپ ڈیٹ شروع کر سکتا ہے۔ چونکہ ٹیم Bitbucket کا استعمال کرتی ہے، اس لیے انہیں Bitbucket پائپ لائنز تک رسائی حاصل ہے اور وہ اس طریقہ کار کو خودکار کرنے کے لیے استعمال کر سکتے ہیں۔
- ٹیرافارم عمل درآمد کے بعد ٹیم کے IaaS سے جڑتا ہے۔ Terraform IaaS API کا استعمال کرتے ہوئے کمانڈز کی ایک ترتیب کو چلاتا ہے جو IaaS کو متوقع انفراسٹرکچر کنفیگریشن میں اپ ڈیٹ کرتا ہے۔
آئی اے سی کے فوائد
IaC خودکار طریقہ کار کے ذریعے مختلف طریقوں سے تنظیموں کو ان کے IT بنیادی ڈھانچے کے مطالبات کا انتظام کرنے میں مدد کرتا ہے۔ IaC انسٹال کرنے کے کچھ فوائد درج ذیل ہیں:
- مستقل مزاجی: IaC مستقل مزاجی کو بڑھا سکتا ہے اور ان غلطیوں کو کم کر سکتا ہے جو دستی ترتیبات کے دوران اکثر ہوتی ہیں۔ یہ کنفیگریشن ڈرفٹ کو بھی روکتا ہے جو دستی آپریشن کے دوران ہو سکتا ہے۔ IaC آپ کو آپ کے کنفیگریشن معیارات کو کوڈفائنگ اور دستاویز کرکے غیر دستاویزی، ایڈہاک کنفیگریشن ترمیمات کو روکنے دیتا ہے۔
- کارکردگی: آپ کے بنیادی ڈھانچے کو کوڈفائی کرنے سے ایک پروویژننگ ٹیمپلیٹ بنتا ہے، جس سے سسٹم کی ترتیب، دیکھ بھال اور انتظامیہ آسان ہو جاتی ہے۔ یہ ایک لچکدار، دوبارہ قابل، اور توسیع پذیر انفراسٹرکچر بناتا ہے۔ نتیجے کے طور پر، DevOps سافٹ ویئر کی ترقی کے ہر مرحلے کو تیز کر سکتا ہے، جس کے نتیجے میں روزانہ کی بنیاد پر مزید ایپس شائع ہوتی ہیں۔
- کم لاگت: IaC ورچوئل مشینوں کو پروگرام کے لحاظ سے منظم کرنے کے قابل بناتا ہے، مینوئل ہارڈویئر کنفیگریشن اور اپ گریڈ کی ضرورت کو دور کرتا ہے۔ کوڈ کے ایک ہی ٹکڑے کو استعمال کرتے ہوئے، ایک آپریٹر ایک مشین یا 1000 یونٹس کو انسٹال اور منظم کر سکتا ہے۔ نتیجے کے طور پر، کم ملازمین کی ضرورت ہوتی ہے اور نئے گیئر کی ضرورت نہیں رہتی ہے، جس کے نتیجے میں لاگت میں کافی بچت ہوتی ہے۔
- رفتار: IaC ایک سادہ اسکرپٹ میں تبدیل کرکے ڈویلپرز کو اپنے انفراسٹرکچر کی فراہمی میں لگنے والے وقت کو کم کرتا ہے۔ نتیجے کے طور پر، بنیادی ڈھانچے کی وجہ سے ایپلیکیشن کی تعیناتی میں مزید تاخیر نہیں ہوتی، اور نئے سافٹ ویئر کو کافی تیزی سے ڈیلیور کیا جا سکتا ہے۔
- خطرے کو کم کریں: جیسا کہ IaC حوصلہ افزائی کرتا ہے۔ ورژن کنٹرول، آپ کی کنفیگریشن فائلیں، جیسے کسی دوسرے سافٹ ویئر سورس کوڈ فائل کو ٹریس کیا جا سکتا ہے۔ نتیجے کے طور پر، خطرہ کم ہو جاتا ہے.
IaC کیا مسئلہ حل کرتا ہے؟
کوڈ کے طور پر انفراسٹرکچر ریلیز پائپ لائن کے ماحول کے بڑھنے کے مسئلے کو حل کرنے کے لیے بنایا گیا تھا۔ IaC کے بغیر، ٹیمیں ہر تعیناتی ماحول کی ترتیبات کو برقرار رکھنے کی ذمہ دار ہوتی ہیں۔ ہر ماحول برف کے تودے میں تبدیل ہوتا ہے، ایک قسم کا انتظام جو خود بخود نقل نہیں کیا جا سکتا۔
تعیناتی کے دوران، ماحول میں عدم مطابقت مسائل کا باعث بنتی ہے۔ سنو فلیکس کو دستی آپریشنز کی ضرورت ہوتی ہے جن کا انتظام کرنا مشکل ہوتا ہے اور بنیادی ڈھانچے کے انتظام اور دیکھ بھال میں غلطیوں کا سبب بنتا ہے۔
بنیادی ڈھانچہ بطور ضابطہ بے ضابطگی کے خیال کی پاسداری کرتا ہے۔
Idempotence اس حقیقت کی طرف اشارہ کرتا ہے کہ ایک تعیناتی کمانڈ ہمیشہ ہدف کے ماحول کو اسی طرح ترتیب دیتی ہے، ماحول کی ابتدائی حالت سے قطع نظر۔ Idempotency یا تو خود بخود موجودہ ہدف کو متعین کرکے یا موجودہ ہدف کو مسترد کرکے اور دوبارہ شروع کرکے حاصل کیا جاتا ہے۔
نتیجے کے طور پر، IaC کا استعمال کرتے ہوئے، ٹیمیں ماحول کی تفصیل اور کنفیگریشن ماڈل کے ورژن میں ترمیم کرتی ہیں، جو اکثر اچھی طرح سے دستاویزی کوڈ فارمیٹس جیسے JSON میں لکھا جاتا ہے۔ ماڈل کو ریلیز پائپ لائن میں ٹارگٹ ماحول قائم کرنے کے لیے چلایا جاتا ہے۔ ٹیم ذریعہ میں ترمیم کرتی ہے، ہدف کی نہیں، اگر انہیں تبدیلیاں کرنے کی ضرورت ہو۔
DevOps میں IaC کی کیا اہمیت ہے؟
DevOps اور مسلسل انضمام/مسلسل ترسیل (CI/CD) کے طریقہ کار کو لاگو کرنے کے لیے IaC کے استعمال کی ضرورت ہے۔ یہ ڈویلپرز کو فراہمی کی زیادہ تر ذمہ داریوں سے آزاد کرتا ہے، جس سے وہ اپنے بنیادی ڈھانچے کو چلانے اور چلانے کے لیے صرف ایک اسکرپٹ چلا سکتے ہیں۔
نتیجتاً، انفراسٹرکچر کی تعمیر کے دوران ایپلیکیشن کی تعیناتیاں رکی ہوئی نہیں ہیں، اور sysadmins پر وقت ضائع کرنے والے دستی کاموں کا بوجھ نہیں ہے۔ ڈیلیوری اور تعیناتی کے ذریعے انضمام اور جانچ سے لے کر، CI/CD ایپلیکیشن کی پوری زندگی کے دوران مستقل آٹومیشن اور مسلسل نگرانی پر انحصار کرتا ہے۔ آٹومیشن کے کام کرنے کے لیے ایک مستقل ماحول کی ضرورت ہوتی ہے۔
جب ڈیولپمنٹ ٹیم ایپس فراہم کرتی ہے یا ماحول کو ایک طرح سے ترتیب دیتی ہے اور آپریشنز ٹیم ماحول کو مختلف طریقے سے انسٹال اور کنفیگر کرتی ہے، تو ایپلیکیشن کی تعیناتیوں کو خودکار کرنا ممکن نہیں ہوتا ہے۔
ایک DevOps طریقہ کار ڈیولپمنٹ اور آپریشنز ٹیموں کو ترتیب دیتا ہے، جس کے نتیجے میں کم غلطیاں، دستی تعیناتیاں، اور تضادات پیدا ہوتے ہیں۔ چونکہ ڈیویلپمنٹ اور آپریشن دونوں ٹیمیں ایپلیکیشن کی تعیناتی کی ایک ہی تفصیل کو استعمال کر سکتی ہیں، اس لیے IaC آپ کو ڈیو اوپس اپروچ کو فعال کرتے ہوئے ڈویلپمنٹ اور آپریشنز کو سنکرونائز کرنے میں مدد کرتا ہے۔
آپ کے پیداواری ماحول سمیت ہر ماحول کو اسی تعیناتی کے طریقہ کار پر عمل کرنا چاہیے۔ جب بھی IaC استعمال کیا جاتا ہے، ایک جیسا ماحول پیدا ہوتا ہے۔
نتیجہ
DevOps کوڈ کے طور پر بنیادی ڈھانچے پر بہت زیادہ انحصار کرتا ہے۔ کوڈ کے طور پر بنیادی ڈھانچہ ایک ایسی دنیا میں آپ کے کاموں کو مستقبل کے لیے تیار کرنے کا قدرتی اگلا قدم ہے جہاں خلل ڈالنے والی ٹیکنالوجیز IT سیکٹر کو مسلسل تبدیل کر رہی ہیں۔
یہ آپ کو مکمل صلاحیت کا احساس کرنے کے قابل بناتا ہے۔ کلاؤڈ کمپیوٹنگ، دستی IT انفراسٹرکچر مینجمنٹ سے وابستہ غلطیوں کو کم کرتا ہے، اور اس رفتار کو بہتر بناتا ہے جس کے ساتھ سافٹ ویئر تیار کیا جاتا ہے۔ یہ سب آپریٹنگ اخراجات کو کم کرتے ہوئے پورا کیا جاتا ہے۔
جواب دیجئے