Terraform Drift Detection اور اس کا حل

Terraform drift آپ کے پروڈکشن ماحول میں خاموش خطرات پیدا کرتا ہے۔ یہ اس وقت ہوتا ہے جب آپ کا اصل انفراسٹرکچر آپ کے کوڈ سے مطابقت نہیں رکھتا۔

یہ عدم مطابقت outages کا باعث بنتی ہے۔ یہ سیکیورٹی میں خامیاں پیدا کرتی ہے۔ اور اس سے compliance کی ناکامی ہوتی ہے۔

Drift کیوں ہوتا ہے؟

  • انجینئرز کلاؤڈ کنسول میں ہنگامی hotfixes کرتے ہیں۔
  • ٹیمیں کسی حادثے (incident) کے دوران دستی تبدیلیاں (manual changes) کرتی ہیں۔
  • لوگ آپ کے IaC workflow سے باہر ریسورسز (resources) تخلیق کرتے ہیں۔
  • رفتار آپ کے گورننس قوانین (governance rules) سے آگے نکل جاتی ہے۔

مثال: آپ کا کوڈ ایک EC2 instance کو t2.micro کے طور پر بیان کرتا ہے۔ ایک انجینئر AWS console میں اسے دستی طور پر t2.large میں تبدیل کر دیتا ہے۔ اب آپ کا کوڈ اور آپ کی حقیقت مختلف ہیں۔ یہی drift ہے۔

اسے کیسے تلاش کریں: terraform plan کمانڈ چلائیں۔ یہ آپ کو اپنے کوڈ اور کلاؤڈ کے درمیان فرق دکھاتی ہے۔ نوٹ کریں کہ کچھ دستی تبدیلیاں چھپی رہ سکتی ہیں اگر وہ ان مخصوص ریسورسز پر اثر انداز نہ ہوں جنہیں Terraform ٹریک کرتا ہے۔

اسے کیسے روکیں:

  • ایک remote backend استعمال کریں۔ اپنا state AWS S3 میں محفوظ کریں۔ یہ آپ کی پوری ٹیم کے لیے آپ کی state file کو محفوظ اور versioned رکھتا ہے۔
  • GitOps استعمال کریں۔ Git کو اپنا واحد source of truth بنائیں۔ ہر تبدیلی ایک pull request کے ذریعے ہونی چاہیے۔
  • ٹیسٹنگ کو خودکار (automate) بنائیں۔ اپنے انفراسٹرکچر میں تبدیلیوں کو لائیو ہونے سے پہلے چیک کریں۔
  • مسلسل مانیٹر کریں۔ AWS Config یا Spacelift جیسے ٹولز استعمال کریں تاکہ جب آپ کے کوڈ سے باہر تبدیلیاں ہوں تو آپ کو الرٹ مل سکے۔

اسے کیسے ٹھیک کریں: اگر آپ کو drift ملے، تو آپ کو انفراسٹرکچر کو دوبارہ اپنے کوڈ کے مطابق لانا ہوگا۔ آپ دستی تبدیلیوں کو ختم کرنے اور اپنی مطلوبہ حالت (intended state) کو بحال کرنے کے لیے terraform apply کمانڈ استعمال کرتے ہیں۔

تسلسل (Consistency) آپ کے سسٹمز کو مستحکم رکھتا ہے۔

ماخذ: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm

اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi