Terraform Drift கண்டறிதல் மற்றும் தீர்வு
Terraform drift உங்கள் production சூழலில் அமைதியான அபாயங்களை உருவாக்குகிறது. உங்கள் உண்மையான உள்கட்டமைப்பு (infrastructure) உங்கள் குறியீட்டுடன் (code) ஒத்துப்போகாத போது இது நிகழ்கிறது.
இந்த முரண்பாடு சேவைகளில் இடையூறுகளை (outages) ஏற்படுத்துகிறது. இது பாதுகாப்பு இடைவெளிகளை உருவாக்குகிறது. மேலும் இது இணக்கச் சிக்கல்களுக்கு (compliance failures) வழிவகுக்கிறது.
Drift ஏன் நிகழ்கிறது?
- பொறியாளர்கள் cloud console-இல் அவசரத் திருத்தங்களை (hotfixes) செய்கிறார்கள்.
- ஒரு விபத்தின் போது (incident) குழுக்கள் கைமுறையாக மாற்றங்களைச் செய்கிறார்கள்.
- மக்கள் உங்கள் IaC பணிப்பாய்விற்கு (workflow) வெளியே வளங்களை (resources) உருவாக்குகிறார்கள்.
- வேகம் உங்கள் நிர்வாக விதிகளையும் (governance rules) மிஞ்சிவிடுகிறது.
உதாரணம்: உங்கள் குறியீடு ஒரு EC2 instance-ஐ t2.micro என வரையறுக்கிறது. ஒரு பொறியாளர் AWS console-இல் அதை கைமுறையாக t2.large என மாற்றுகிறார். இப்போது உங்கள் குறியீடும் உங்கள் யதார்த்தமும் வேறுபடுகின்றன. இதுவே drift ஆகும்.
இதை எவ்வாறு கண்டறிவது:
terraform plan கட்டளையை இயக்கவும். இது உங்கள் குறியீட்டிற்கும் கிளவுட்டிற்கும் (cloud) இடையிலான இடைவெளியைக் காட்டும். Terraform கண்காணிக்கும் குறிப்பிட்ட வளங்களை (resources) அவை பாதிக்கவில்லை என்றால், சில கைமுறை மாற்றங்கள் மறைந்திருக்கக்கூடும் என்பதைக் கவனத்தில் கொள்ளவும்.
இதை எவ்வாறு தடுப்பது:
- ஒரு remote backend-ஐப் பயன்படுத்தவும். உங்கள் state-ஐ AWS S3-இல் சேமிக்கவும். இது உங்கள் முழு குழுவிற்கும் உங்கள் state கோப்பை பாதுகாப்பாகவும் பதிப்புப்படுத்தப்பட்டும் (versioned) வைத்திருக்க உதவுகிறது.
- GitOps-ஐப் பயன்படுத்தவும். Git-ஐ உங்கள் ஒற்றை உண்மை ஆதாரமாக (single source of truth) மாற்றவும். ஒவ்வொரு மாற்றமும் ஒரு pull request மூலம் மட்டுமே செல்ல வேண்டும்.
- சோதனைகளைத் தானிய