𝗧𝗲𝗿𝗿𝗮𝗳𝗼𝗿𝗺 𝗗𝗿𝗶𝗳𝘁 ಪತ್ತೆ ಮತ್ತು ಪರಿಹಾರ
Terraform drift ನಿಮ್ಮ production ಪರಿಸರದಲ್ಲಿ ಮೌನ ಅಪಾಯಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ನಿಮ್ಮ ನೈಜ ಮೂಲಸೌಕರ್ಯವು (infrastructure) ನಿಮ್ಮ ಕೋಡ್ಗೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದಾಗ ಇದು ಸಂಭವಿಸುತ್ತದೆ.
ಈ ಅಸಮತೋಲನವು ಸೇವೆಯ ವ್ಯತ್ಯಯಕ್ಕೆ (outages) ಕಾರಣವಾಗುತ್ತದೆ. ಇದು ಭದ್ರತಾ ಲೋಪಗಳನ್ನು (security gaps) ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ಅನುಸರಣಾ ವೈಫಲ್ಯಗಳಿಗೆ (compliance failures) ಕಾರಣವಾಗುತ್ತದೆ.
Drift ಏಕೆ ಸಂಭವಿಸುತ್ತದೆ?
- ಎಂಜಿನಿಯರ್ಗಳು ಕ್ಲೌಡ್ ಕನ್ಸೋಲ್ನಲ್ಲಿ ತುರ್ತು ಹಾರ್ಟ್ಫಿಕ್ಸ್ (hotfixes) ಮಾಡುತ್ತಾರೆ.
- ಘಟನೆಗಳ ಸಮಯದಲ್ಲಿ ತಂಡಗಳು ಮ್ಯಾನುಯಲ್ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುತ್ತಾರೆ.
- ಜನರು ನಿಮ್ಮ IaC ವರ್ಕ್ಫ್ಲೋ ಹೊರಗೆ ಸಂಪನ್ಮೂಲಗಳನ್ನು (resources) ರಚಿಸುತ್ತಾರೆ.
- ವೇಗವು ನಿಮ್ಮ ಗವರ್ನೆನ್ಸ್ ನಿಯಮಗಳನ್ನು ಮೀರಿ ಹೋಗುತ್ತದೆ.
ಉದಾಹರಣೆ: ನಿಮ್ಮ ಕೋಡ್ ಒಂದು EC2 instance ಅನ್ನು t2.micro ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಒಬ್ಬ ಎಂಜಿನಿಯರ್ AWS ಕನ್ಸೋಲ್ನಲ್ಲಿ ಅದನ್ನು ಮ್ಯಾನುಯಲ್ ಆಗಿ t2.large ಗೆ ಬದಲಾಯಿಸುತ್ತಾರೆ. ಈಗ ನಿಮ್ಮ ಕೋಡ್ ಮತ್ತು ವಾಸ್ತವವು ಭಿನ್ನವಾಗಿವೆ. ಇದನ್ನೇ drift ಎನ್ನಲಾಗುತ್ತದೆ.
ಇದನ್ನು ಪತ್ತೆ ಮಾಡುವುದು ಹೇಗೆ:
terraform plan ಕಮಾಂಡ್ ಅನ್ನು ರನ್ ಮಾಡಿ. ಇದು ನಿಮ್ಮ ಕೋಡ್ ಮತ್ತು ಕ್ಲೌಡ್ ನಡುವಿನ ಅಂತರವನ್ನು ತೋರಿಸುತ್ತದೆ. ಗಮನಿಸಿ, ಕೆಲವು ಮ್ಯಾನುಯಲ್ ಬದಲಾವಣೆಗಳು Terraform ಟ್ರ್ಯಾಕ್ ಮಾಡುವ ನಿರ್ದಿಷ್ಟ ಸಂಪನ್ಮೂಲಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರದಿದ್ದರೆ, ಅವು ಅಡಗಿರುವ ಸಾಧ್ಯತೆಯಿದೆ.
ಇದನ್ನು ತಡೆಯುವುದು ಹೇಗೆ:
- Remote backend ಬಳಸಿ. ನಿಮ್ಮ state ಅನ್ನು AWS S3 ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿ. ಇದು ನಿಮ್ಮ ಇಡೀ ತಂಡಕ್ಕಾಗಿ ನಿಮ್ಮ state ಫೈಲ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಮತ್ತು ವರ್ಷನ್ ಮಾಡಲಾದ (versioned) ರೂಪದಲ್ಲಿ ಇಡುತ್ತದೆ.
- GitOps ಬಳಸಿ. Git ಅನ್ನು ನಿಮ್ಮ ಏಕೈಕ ಸತ್ಯದ ಮೂಲವಾಗಿ (single source of truth) ಮಾಡಿಕೊಳ್ಳಿ. ಪ್ರತಿಯೊಂದು ಬದಲಾವಣೆಯು pull request ಮೂಲಕವೇ ಆಗಬೇಕು.
- Testing ಅನ್ನು ಆಟೊಮೇಟ್ ಮಾಡಿ. ನಿಮ್ಮ ಮೂಲಸೌಕರ್ಯ ಬದಲಾವಣೆಗಳು ಲೈವ್ ಆಗುವ ಮೊದಲು ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
- ನಿರಂತರವಾಗಿ ಮೇಲ್ವಿಚಾರಣೆ (monitor) ಮಾಡಿ. ನಿಮ್ಮ ಕೋಡ್ ಹೊರಗೆ ಬದಲಾವಣೆಗಳು ಸಂಭವಿಸಿದಾಗ ನಿಮಗೆ ಎಚ್ಚರಿಕೆ ನೀಡಲು AWS Config ಅಥವಾ Spacelift ನಂತಹ ಪರಿಕರಗಳನ್ನು ಬಳಸಿ.
ಇದನ್ನು ಸರಿಪಡಿಸುವುದು ಹೇಗೆ:
ನೀವು drift ಅನ್ನು ಪತ್ತೆಹಚ್ಚಿದರೆ, ಮೂಲಸೌಕರ್ಯವನ್ನು ಮತ್ತೆ ನಿಮ್ಮ ಕೋಡ್ಗೆ ತರಲೇಬೇಕು. ಮ್ಯಾನುಯಲ್ ಬದಲಾವಣೆಗಳನ್ನು ಅಳಿಸಿಹಾಕಿ (overwrite), ನಿಮ್ಮ ಉದ್ದೇಶಿತ ಸ್ಥಿತಿಯನ್ನು (intended state) ಮರುಸ್ಥಾಪಿಸಲು ನೀವು terraform apply ಕಮಾಂಡ್ ಅನ್ನು ಬಳಸಬೇಕು.
ಸ್ಥಿರತೆಯು (Consistency) ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಸ್ಥಿರವಾಗಿರಿಸುತ್ತದೆ.
Source: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm
Optional learning community: https://t.me/GyaanSetuAi