اپنے نیٹ ورک کے بنیادی ڈھانچے کو کیسے کنٹرول کریں۔ باب چار۔ آٹومیشن. ٹیمپلیٹس

یہ مضمون "اپنے نیٹ ورک انفراسٹرکچر کو کیسے کنٹرول کریں" سیریز کا چھٹا مضمون ہے۔ سیریز کے تمام مضامین کے مواد اور لنکس مل سکتے ہیں۔ یہاں.

کئی موضوعات کو پیچھے چھوڑ کر، میں نے ایک نیا باب شروع کرنے کا فیصلہ کیا۔

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

نیٹ ورک کے لیے DevOps

اسکرپٹ کے ساتھ ایک کنفیگریشن بنانا، IT انفراسٹرکچر میں تبدیلیوں کو کنٹرول کرنے کے لیے GIT کا استعمال، ریموٹ "اپ لوڈنگ" - یہ آئیڈیاز پہلے آتے ہیں جب آپ DevOps اپروچ کے تکنیکی نفاذ کے بارے میں سوچتے ہیں۔ فوائد واضح ہیں۔ لیکن، بدقسمتی سے، نقصانات بھی ہیں.

جب 5 سال سے زیادہ پہلے، ہمارے ڈویلپرز ہمارے پاس آئے، نیٹ ورکرز، ان تجاویز کے ساتھ، ہمیں خوشی نہیں ہوئی۔

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

دوسرے سوالات بھی پیدا ہوتے ہیں، مثال کے طور پر، سافٹ ویئر کے ورژن سے ورژن میں انٹرفیس تھوڑا سا تبدیل ہو سکتا ہے۔ یہ بالآخر آپ کے اسکرپٹ کو غلط "config" بنانے کا سبب بنائے گا۔ میں "رننگ اِن" کے لیے پروڈکشن کا استعمال نہیں کرنا چاہوں گا۔

یا، یہ کیسے سمجھیں کہ کنفیگریشن کمانڈز درست طریقے سے لاگو ہوئے تھے اور غلطی کی صورت میں کیا کرنا چاہیے؟

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

لیکن ایک ایسی صورت حال ہے جب نقصانات کو عملی طور پر برابر کر دیا جاتا ہے، اور صرف فوائد باقی رہتے ہیں۔ میں ڈیزائن کے کام کی بات کر رہا ہوں۔

پروجیکٹ

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

میرے لیے ذاتی طور پر، اس پروجیکٹ میں دو الگ الگ مراحل ہیں۔

پہلا مرحلہ

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

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

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

اب ہم تھوڑا سا آس پاس دیکھ سکتے تھے۔
اور یہ دوسرے مرحلے کا آغاز تھا۔

دوسرا مرحلہ

میں نے عمل کو خودکار کرنے کا فیصلہ کیا۔

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

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

لہذا، YAML اور Jinja2 کا استعمال کرتے وقت، ایک YAML فائل کنفیگریشن پیرامیٹرز کے ساتھ جیسے IP ایڈریس، BGP AS نمبرز، ... بالکل NIP کے کردار کو پورا کرتی ہے، جبکہ Jinja2 ٹیمپلیٹس میں ڈیزائن کے مطابق نحو شامل ہوتا ہے، یعنی یہ بنیادی طور پر ایک ہے ایل ایل ڈی کی عکاسی

YAML اور Jinja2 سیکھنے میں دو دن لگے۔ یہ سمجھنے کے لیے چند اچھی مثالیں کافی ہیں۔ پھر ہمارے ڈیزائن سے مماثل تمام ٹیمپلیٹس بنانے میں تقریباً دو ہفتے لگے: پالو آلٹو کے لیے ایک ہفتہ اور F5 کے لیے دوسرا ہفتہ۔ یہ سب کارپوریٹ گیتب پر پوسٹ کیا گیا تھا۔

اب تبدیلی کا عمل اس طرح نظر آیا:

  • YAML فائل کو تبدیل کیا۔
  • ٹیمپلیٹ (Jinja2) کا استعمال کرتے ہوئے ایک کنفیگریشن فائل بنائی
  • دور دراز کے ذخیرے میں محفوظ کیا گیا۔
  • سازوسامان پر تخلیق کردہ ترتیب کو اپ لوڈ کیا
  • میں نے ایک غلطی دیکھی۔
  • YAML فائل یا Jinja2 ٹیمپلیٹ کو تبدیل کیا۔
  • ٹیمپلیٹ (Jinja2) کا استعمال کرتے ہوئے ایک کنفیگریشن فائل بنائی
  • ...

یہ واضح ہے کہ شروع میں بہت زیادہ وقت ترمیم پر صرف کیا گیا تھا، لیکن ایک یا دو ہفتوں کے بعد یہ ایک نایاب ہو گیا.

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

دیو اور سٹیجنگ

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

آتے ہیں

تو، میرے پاس نیچے کی لائن میں کیا ہے؟

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

یہ سب اس حقیقت کا باعث بنے۔

  • غلطی کی شرح تقریباً 0 تک گر گئی ہے۔
  • 90 فیصد روٹین ختم ہو چکی ہے۔
  • عمل درآمد کی رفتار میں نمایاں اضافہ ہوا ہے۔

ادائیگی، F5Y، ACY

میں نے کہا کہ یہ کیسے کام کرتا ہے یہ سمجھنے کے لیے چند مثالیں کافی ہیں۔
میرے کام کے دوران جو کچھ تخلیق کیا گیا اس کا ایک مختصر (اور یقیناً ترمیم شدہ) ورژن یہ ہے۔

ادائیگی = تعیناتی Pآلو Aسے Yaml = یامل سے پالو آلٹو
F5Y۔ = تعیناتی F5 سے Yaml = F5 سے Yaml (جلد آرہا ہے)
ACY = تعیناتی ACمیں سے Yaml = F5 سے YAML

میں ACY کے بارے میں کچھ الفاظ شامل کروں گا (ACI کے ساتھ الجھن میں نہ پڑیں)۔

وہ لوگ جنہوں نے ACI کے ساتھ کام کیا ہے وہ جانتے ہیں کہ یہ معجزہ (اور اچھے طریقے سے بھی) یقیناً نیٹ ورکرز نے نہیں بنایا تھا :)۔ وہ سب کچھ بھول جائیں جو آپ نیٹ ورک کے بارے میں جانتے تھے - یہ آپ کے لیے مفید نہیں ہو گا!
یہ تھوڑا مبالغہ آمیز ہے، لیکن یہ تقریباً اس احساس کو ظاہر کرتا ہے کہ میں ACI کے ساتھ کام کرتے ہوئے، پچھلے 3 سالوں سے مسلسل تجربہ کر رہا ہوں۔

اور اس معاملے میں، ACY نہ صرف ایک تبدیلی کے کنٹرول کے عمل کو تیار کرنے کا ایک موقع ہے (جو خاص طور پر ACI کے معاملے میں اہم ہے، کیونکہ سمجھا جاتا ہے کہ یہ آپ کے ڈیٹا سینٹر کا مرکزی اور سب سے اہم حصہ ہے)، بلکہ یہ آپ کو کنفیگریشن بنانے کے لیے ایک صارف دوست انٹرفیس۔

اس پروجیکٹ کے انجینئر بالکل اسی مقاصد کے لیے YAML کی بجائے ACI کو ترتیب دینے کے لیے Excel کا استعمال کرتے ہیں۔ یقیناً ایکسل کو استعمال کرنے کے فوائد ہیں:

  • آپ کا NIP ایک فائل میں
  • خوبصورت نشانیاں جو کلائنٹ کے لیے دیکھنے میں خوشگوار ہوں۔
  • آپ کچھ ایکسل ٹولز استعمال کر سکتے ہیں۔

لیکن ایک مائنس ہے، اور میری رائے میں یہ پیشہ سے زیادہ ہے۔ تبدیلیوں کو کنٹرول کرنا اور ٹیم کے کام کو مربوط کرنا زیادہ مشکل ہو جاتا ہے۔

ACY دراصل انہی طریقوں کا اطلاق ہے جو میں نے تیسری پارٹی کے لیے ACI کو ترتیب دینے کے لیے استعمال کیا تھا۔

ماخذ: www.habr.com

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