𝗧𝗲𝗿𝗿𝗮𝗳𝗼𝗿𝗺 𝗗𝗿𝗶𝗳𝘁 𝗗𝗲𝘁𝗲𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗥𝗲𝗺𝗲𝗱𝗶𝗮𝘁𝗶𝗼𝗻
Terraform drift మీ ప్రొడక్షన్ ఎన్విరాన్మెంట్లో నిశ్శబ్ద ప్రమాదాలను సృష్టిస్తుంది. మీ అసలు ఇన్ఫ్రాస్ట్రక్చర్ మీ కోడ్తో సరిపోనప్పుడు ఇది జరుగుతుంది.
ఈ అసమతుల్యత వల్ల సేవల అంతరాయం (outages) సంభవిస్తుంది. ఇది భద్రతా లోపాలను సృష్టిస్తుంది. ఇది కంప్లయన్స్ వైఫల్యాలకు దారితీస్తుంది.
డ్రిఫ్ట్ ఎందుకు జరుగుతుంది?
- ఇంజనీర్లు క్లౌడ్ కన్సోల్లో అత్యవసర హాట్ఫిక్స్లు (hotfixes) చేస్తారు.
- ఇన్సిడెంట్ సమయంలో టీమ్లు మాన్యువల్ మార్పులు చేస్తారు.
- ప్రజలు మీ IaC వర్క్ఫ్లో వెలుపల రిసోర్స్లను సృష్టిస్తారు.
- వేగం మీ గవర్నెన్స్ నియమాలను మించిపోతుంది.
ఉదాహరణ: మీ కోడ్ ఒక EC2 ఇన్స్టన్స్ను t2.micro గా నిర్వచిస్తుంది. ఒక ఇంజనీర్ AWS కన్సోల్లో దానిని మాన్యువల్గా t2.large గా మారుస్తారు. ఇప్పుడు మీ కోడ్ మరియు వాస్తవికత వేరువేరుగా ఉంటాయి. ఇదే డ్రిఫ్ట్.
దీనిని ఎలా గుర్తించాలి:
terraform plan కమాండ్ను రన్ చేయండి. ఇది మీ కోడ్ మరియు క్లౌడ్ మధ్య ఉన్న వ్యత్యాసాన్ని చూపిస్తుంది. Terraform ట్రాక్ చేసే నిర్దిష్ట రిసోర్స్లపై ప్రభావం చూపకపోతే, కొన్ని మాన్యువల్ మార్పులు కనిపించకుండా పోవచ్చు అనే విషయాన్ని గమనించండి.
దీనిని ఎలా నిరోధించాలి:
- రిమోట్ బ్యాకెండ్ను ఉపయోగించండి. మీ state ని AWS S3లో నిల్వ చేయండి. ఇది మీ స్టేట్ ఫైల్ను మీ మొత్తం టీమ్ కోసం సురక్షితంగా మరియు వెర్షన్ చేయబడినదిగా ఉంచుతుంది.
- GitOps ఉపయోగించండి. Gitని మీ సింగిల్ సోర్స్ ఆఫ్ ట్రూత్ (single source of truth) గా మార్చండి. ప్రతి మార్పు తప్పనిసరిగా pull request ద్వారానే జరగాలి.
- టెస్టింగ్ను ఆటోమేట్ చేయండి. మీ ఇన్ఫ్రాస్ట్రక్చర్ మార్పులు లైవ్లోకి వెళ్లే ముందే వాటిని తనిఖీ చేయండి.
- నిరంతరం పర్యవేక్షించండి. మీ కోడ్ వెలుపల మార్పులు జరిగినప్పుడు మీకు అలర్ట్ చేయడానికి AWS Config లేదా Spacelift వంటి సాధనాలను ఉపయోగించండి.
దీనిని ఎలా సరిచేయాలి:
మీరు డ్రిఫ్ట్ను గుర్తిస్తే, ఇన్ఫ్రాస్ట్రక్చర్ను తిరిగి మీ కోడ్కు అనుగుణంగా తీసుకురావాలి. మాన్యువల్ మార్పులను ఓవర్రైట్ చేయడానికి మరియు మీరు అనుకున్న స్టేట్ను పునరుద్ధరించడానికి terraform apply కమాండ్ను ఉపయోగించండి.
స్థిరత్వం (Consistency) మీ సిస్టమ్లను స్థిరంగా ఉంచుతుంది.
Source: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm
Optional learning community: https://t.me/GyaanSetuAi