ہم نے حال ہی میں یہ صاف کرنے کے لیے ایک چھوٹا پروجیکٹ شروع کیا ہے کہ کس طرح ہمارے سسٹمز کے کچھ حصے بفر پر پردے کے پیچھے بات چیت کرتے ہیں۔ کچھ فوری سیاق و سباق: ہم SQS (ایمیزون سادہ قطار سروس۔ یہ قطاریں کاموں کے لیے انتظار گاہوں کی طرح کام کرتی ہیں۔ ہمارے سسٹم کا ایک حصہ پیغام چھوڑتا ہے، اور دوسرا اسے بعد میں اٹھا لیتا ہے۔ اس کے بارے میں سوچیں، جیسے کہ آپ کو ڈیٹا حاصل کرنے کا موقع ملتا ہے: "کوئی ڈیٹا حاصل کرنے کے لیے۔" جو سسٹم نوٹ بھیجتا ہے اسے جواب کے لیے انتظار نہیں کرنا پڑتا۔ ہمارا پروجیکٹ معمول کی دیکھ بھال کرنا تھا: ان ٹولز کو اپ ڈیٹ کریں جو ہم قطاروں کو مقامی طور پر جانچنے کے لیے استعمال کرتے ہیں اور ان کی کنفیگریشن کو صاف کرتے ہیں۔ لیکن جب ہم یہ نقشہ بنا رہے تھے کہ ہم اصل میں کون سی قطاریں استعمال کرتے ہیں، ہمیں کچھ ایسا ملا جس کی ہمیں توقع نہیں تھی: سات مختلف پس منظر کے عمل (یا کرون کام، جو کہ خود کار طریقے سے پانچ سال تک چل رہے ہیں) اور کام کرنے والے کارکنوں کے لیے خود بخود چل رہے ہیں۔ یہ سب کچھ بھی کارآمد نہیں ہیں۔ یہ کیوں اہم ہے، ہم نے انہیں کیسے پایا، اور ہم نے اس کے بارے میں کیا کیا۔ یہ آپ کے خیال سے زیادہ کیوں اہم ہے، ہاں، میں نے ایک فوری حساب لگایا اور ان میں سے ایک کارکن کے لیے، ہم نے 5 سال میں ~ 360-600 ادا کیے ہوں گے، لیکن یہ ہماری سب سے بڑی رقم ہے۔ ایک ایسا عمل جو کچھ نہیں کرتا۔ تاہم، اس صفائی سے گزرنے کے بعد، میں یہ کہوں گا کہ مالیاتی لاگت دراصل اس مسئلے کا سب سے چھوٹا حصہ ہے۔ جب بھی کوئی نیا انجینئر ٹیم میں شامل ہوتا ہے اور ہمارے سسٹمز کو دریافت کرتا ہے، تو وہ ان پراسرار عملوں کا سامنا کرتے ہیں، "یہ کارکن کیا کرتا ہے؟ یہ اس لیے کہ شاید یہ کچھ اہم کر رہا ہے۔ یہاں تک کہ کبھی کبھار حفاظتی اپ ڈیٹس، مطابقت پذیری کو درست کرنے کی ضرورت ہوتی ہے، جس کی وجہ سے ہماری ٹیم کو کوڈ کے راستے پر خرچ کرنا پڑتا ہے۔ پہلے، اور سیاق و سباق ان کے پاس رہ گیا ہے۔ یہ کیسے ہوتا ہے؟ انگلی اٹھانا آسان ہے، لیکن حقیقت یہ ہے کہ یہ کسی بھی طویل عرصے تک چلنے والے نظام میں قدرتی طور پر ہوتا ہے۔ چیک کرنے کے لیے سوچتا ہے۔ ایسا کرنے کے لیے، ہم نے ایک طے شدہ ٹاسک چلایا جس میں موجودہ تاریخ سے مماثل سالگرہ کے لیے پورے ڈیٹا بیس کی جانچ پڑتال کی گئی اور 2020 میں ایک ریفیکٹر کے دوران، ہم نے اپنے ٹرانزیکشنل ای میل ٹول کو تبدیل کر دیا، لیکن ان کی ناکامی کے پانچ سالوں کے لیے اسے ہٹانا بھول گئے۔ بغیر کسی جان بوجھ کر صفائی کی کہ ہم کیسے کام کرتے ہیں، اینٹروپی جیت جاتی ہے۔ بہت سی کمپنیوں کی طرح بفر نے مائیکرو سروسز موومنٹ کو اپنایا (ایک مقبول طریقہ جہاں کمپنیاں اپنے کوڈ کو کئی چھوٹی، آزاد خدمات میں تقسیم کرتی ہیں) ٹیموں کے درمیان واضح حدود کے ساتھ خود ہی تعینات کیا جائے گا۔ لیکن کئی سالوں میں، ہم نے دیکھا کہ درجنوں ریپوزٹریوں کا انتظام ہمارے سائز سے زیادہ ہے، لہذا ہم نے ایک ملٹی سروس ایک ریپوزٹری میں شامل کیا ہے، لیکن وہ ایک جگہ پر ایک ساتھ رہتے ہیں۔ ایک ریپو میں بھولے ہوئے کارکن کو دوسرے میں کام کرنے والے انجینیئرز کی طرف سے کبھی نہیں دیکھا جا سکتا ہے، جہاں کیا چل رہا ہے اس کا کوئی متفقہ نظارہ نہیں ہے۔ ہم آخر کار ہر قطار کو اس کے صارفین اور پروڈیوسرز کو تلاش کر سکتے ہیں جو کہ ہم موجود نہیں ہیں۔ کنسولیڈیشن کو زومبی انفراسٹرکچر تلاش کرنے میں ہماری مدد کرنے کے لیے ڈیزائن نہیں کیا گیا تھا - لیکن اس نے اسے بنایادریافت تقریباً ناگزیر ہے۔ ہم نے اصل میں کیا کیا ایک بار جب ہم نے یتیم ہونے والے عمل کی نشاندہی کی، ہمیں فیصلہ کرنا تھا کہ ان کے ساتھ کیا کرنا ہے۔ یہ ہے کہ ہم اس تک کیسے پہنچے۔ سب سے پہلے، ہم نے ہر ایک کو اس کی اصل کا پتہ لگایا۔ ہم نے یہ سمجھنے کے لیے گٹ ہسٹری اور پرانی دستاویزات کو کھود لیا کہ ہر کارکن کو پہلی جگہ کیوں بنایا گیا تھا۔ زیادہ تر معاملات میں، اصل مقصد واضح تھا: ایک بار ڈیٹا کی منتقلی، ایک ایسی خصوصیت جو غروب ہو گئی، ایک عارضی حل جس نے اس کی افادیت کو ختم کر دیا۔ پھر ہم نے تصدیق کی کہ وہ واقعی غیر استعمال شدہ تھے۔ کسی بھی چیز کو ہٹانے سے پہلے، ہم نے لاگنگ کو شامل کیا تاکہ اس بات کی تصدیق کی جا سکے کہ یہ عمل خاموشی سے کوئی اہم کام نہیں کر رہے تھے جس سے ہم چھوٹ گئے تھے۔ ہم نے اس بات کو یقینی بنانے کے لیے کچھ دنوں تک نگرانی کی کہ انہیں بلایا ہی نہیں گیا، اور ہم نے انہیں بتدریج ہٹا دیا۔ ہم نے سب کچھ ایک ساتھ حذف نہیں کیا۔ ہم نے کسی بھی غیر متوقع ضمنی اثرات کو دیکھتے ہوئے ایک ایک کرکے عمل کو ہٹا دیا۔ (خوش قسمتی سے، وہاں کوئی نہیں تھا۔) آخر میں، ہم نے جو کچھ سیکھا اسے دستاویزی شکل دی۔ ہم نے اپنے داخلی دستاویزات میں اس بارے میں نوٹس شامل کیے ہیں کہ ہر عمل نے اصل میں کیا کیا تھا اور اسے کیوں ہٹایا گیا تھا، اس لیے مستقبل کے انجینئرز اس بات پر حیران نہیں ہوں گے کہ کوئی اہم چیز گم ہو گئی ہے۔ جب کوئی پوچھے کہ ہم کون سے کارکن چلاتے ہیں؟ ہم درحقیقت اس سوال کا جواب اعتماد کے ساتھ دے سکتے ہیں۔ آن بورڈنگ گفتگو بھی آسان ہو گئی ہے۔ نئے انجینئرز پراسرار عمل میں ٹھوکریں نہیں کھا رہے ہیں اور یہ سوچ رہے ہیں کہ کیا وہ سیاق و سباق سے محروم ہیں۔ کوڈبیس اس بات کی عکاسی کرتا ہے کہ ہم اصل میں کیا کرتے ہیں، نہ کہ ہم نے پانچ سال پہلے کیا کیا تھا۔ ریفیکٹرز کو آثار قدیمہ اور روک تھام کے طور پر سمجھو اس پروجیکٹ سے میرا سب سے بڑا فائدہ: ہر اہم ریفیکٹر آثار قدیمہ کے لیے ایک موقع ہے۔ جب آپ کسی نظام میں گہرے ہوتے ہیں، واقعی یہ سمجھتے ہیں کہ ٹکڑے کیسے جڑتے ہیں، تو آپ یہ سوال کرنے کے لیے بہترین پوزیشن میں ہیں کہ ابھی کیا ضرورت ہے۔ کسی پرانے منصوبے سے وہ قطار؟ ورکر کسی نے ایک بار ڈیٹا کی منتقلی کے لیے بنایا ہے؟ طے شدہ کام جو ایک ایسی خصوصیت کا حوالہ دیتا ہے جس کے بارے میں آپ نے کبھی نہیں سنا ہوگا؟ وہ اب بھی چل رہے ہیں۔ یہ ہے ہم اپنے عمل میں آگے بڑھتے ہوئے کیا بنا رہے ہیں: کسی بھی ری ایکٹر کے دوران، پوچھیں: اس سسٹم کو اور کیا چیز چھوتی ہے جسے ہم نے تھوڑی دیر میں نہیں دیکھا؟ کسی خصوصیت کو فرسودہ کرتے وقت، اسے اس کے پس منظر کے عمل تک پوری طرح ٹریس کریں، نہ صرف صارف کا سامنا کرنے والے کوڈ۔ جب کوئی ٹیم کو چھوڑتا ہے، تو دستاویز کریں کہ وہ کس چیز کے پس منظر کے انچارج تھے جو ہمارے پاس ابھی بھی پرانے سامان کے انچارج تھے۔ کوڈ بیس جو ابھی تک واحد ذخیرہ میں منتقل نہیں ہوا ہے۔ جیسا کہ ہم مضبوطی کا عمل جاری رکھتے ہیں، ہمیں یقین ہے کہ ہمیں ان میں سے مزید پوشیدہ آثار مل جائیں گے۔ لیکن اب ہم ان کو پکڑنے اور نئے کو بننے سے روکنے کے لیے ترتیب دیے گئے ہیں۔ جب آپ کا تمام کوڈ ایک جگہ رہتا ہے، تو یتیم انفراسٹرکچر کے پاس چھپنے کے لیے کوئی جگہ نہیں ہے۔

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free