𝗧𝗲𝗿𝗿𝗮𝗳𝗼𝗿𝗺 𝗗𝗿𝗶𝗳𝘁 𝗗𝗲𝘁𝗲𝗰𝘁𝗶𝗼𝗻 ਅਤੇ ਰੈਮੇਡੀਏਸ਼ਨ

Terraform drift ਤੁਹਾਡੇ production environment ਵਿੱਚ ਚੁੱਪਚਾਪ ਜੋਖਮ ਪੈਦਾ ਕਰਦਾ ਹੈ। ਇਹ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਹਾਡਾ ਅਸਲ infrastructure ਤੁਹਾਡੇ code ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ।

ਇਹ ਮੇਲ ਨਾ ਹੋਣਾ outages ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ। ਇਹ security gaps ਪੈਦਾ ਕਰਦਾ ਹੈ। ਇਹ compliance failures ਵੱਲ ਲੈ ਜਾਂਦਾ ਹੈ।

Drift ਕਿਉਂ ਹੁੰਦਾ ਹੈ?

  • Engineers cloud console ਵਿੱਚ emergency hotfixes ਕਰਦੇ ਹਨ।
  • Teams ਕਿਸੇ incident ਦੌਰਾਨ ਮੈਨੂਅਲ ਤਬਦੀਲੀਆਂ ਕਰਦੀਆਂ ਹਨ।
  • ਲੋਕ ਤੁਹਾਡੇ IaC workflow ਤੋਂ ਬਾਹਰ ਰੀਸੋਰਸ (resources) ਬਣਾਉਂਦੇ ਹਨ।
  • ਰਫ਼ਤਾਰ ਤੁਹਾਡੇ governance ਨਿਯਮਾਂ ਤੋਂ ਤੇਜ਼ ਹੋ ਜਾਂਦੀ ਹੈ।

ਉਦਾਹਰਨ: ਤੁਹਾਡਾ code ਇੱਕ EC2 instance ਨੂੰ t2.micro ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਇੱਕ engineer AWS console ਵਿੱਚ ਇਸਨੂੰ ਮੈਨੂਅਲੀ ਬਦਲ ਕੇ t2.large ਕਰ ਦਿੰਦਾ ਹੈ। ਹੁਣ ਤੁਹਾਡਾ code ਅਤੇ ਤੁਹਾਡੀ ਅਸਲੀਅਤ ਵੱਖੋ-ਵੱਖਰੇ ਹਨ। ਇਹੀ drift ਹੈ।

ਇਸਨੂੰ ਕਿਵੇਂ ਲੱਭਣਾ ਹੈ: terraform plan command ਚਲਾਓ। ਇਹ ਤੁਹਾਨੂੰ ਆਪਣੇ code ਅਤੇ cloud ਵਿਚਕਾਰਲੇ ਅੰਤਰ ਨੂੰ ਦਿਖਾਉਂਦਾ ਹੈ। ਧਿਆਨ ਦਿਓ ਕਿ ਕੁਝ ਮੈਨੂਅਲ ਤਬਦੀਲੀਆਂ ਲੁਕੀਆਂ ਰਹਿ ਸਕਦੀਆਂ ਹਨ ਜੇਕਰ ਉਹ ਉਹਨਾਂ ਖਾਸ resources ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਨਹੀਂ ਕਰਦੀਆਂ ਜਿਨ੍ਹਾਂ ਨੂੰ Terraform track ਕਰਦਾ ਹੈ।

ਇਸਨੂੰ ਕਿਵੇਂ ਰੋਕਣਾ ਹੈ:

  • ਇੱਕ remote backend ਦੀ ਵਰਤੋਂ ਕਰੋ। ਆਪਣਾ state AWS S3 ਵਿੱਚ ਸਟੋਰ ਕਰੋ। ਇਹ ਤੁਹਾਡੀ ਪੂਰੀ team ਲਈ ਤੁਹਾਡੀ state file ਨੂੰ ਸੁਰੱਖਿਅਤ ਅਤੇ versioned ਰੱਖਦਾ ਹੈ।
  • GitOps ਦੀ ਵਰਤੋਂ ਕਰੋ। Git ਨੂੰ ਆਪਣਾ single source of truth ਬਣਾਓ। ਹਰ ਤਬਦੀਲੀ ਇੱਕ pull request ਰਾਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।
  • Testing ਨੂੰ automate ਕਰੋ। ਆਪਣੇ infrastructure ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ live ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਚੈੱਕ ਕਰੋ।
  • ਲਗਾਤਾਰ monitor ਕਰੋ। ਜਦੋਂ ਤੁਹਾਡੇ code ਤੋਂ ਬਾਹਰ ਤਬਦੀਲੀਆਂ ਹੁੰਦੀਆਂ ਹਨ, ਤਾਂ ਤੁਹਾਨੂੰ ਅਲਰਟ ਕਰਨ ਲਈ AWS Config ਜਾਂ Spacelift ਵਰਗੇ tools ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਇਸਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕਰਨਾ ਹੈ: ਜੇਕਰ ਤੁਹਾਨੂੰ drift ਮਿਲਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ infrastructure ਨੂੰ ਵਾਪਸ ਆਪਣੇ code ਦੇ ਅਨੁਸਾਰ ਲਿਆਉਣਾ ਚਾਹੀਦਾ ਹੈ। ਮੈਨੂਅਲ ਤਬਦੀਲੀਆਂ ਨੂੰ overwrite ਕਰਨ ਅਤੇ ਆਪਣੀ ਲੋੜੀਂਦੀ state ਨੂੰ ਬਹਾਲ ਕਰਨ ਲਈ ਤੁਸੀਂ terraform apply command ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ।

ਇਕਸਾਰਤਾ (Consistency) ਤੁਹਾਡੇ ਸਿਸਟਮਾਂ ਨੂੰ ਸਥਿਰ ਰੱਖਦੀ ਹੈ।

Source: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm

Optional learning community: https://t.me/GyaanSetuAi