𝗧𝗲𝗿𝗿𝗮𝗳𝗼𝗿𝗺 𝗗𝗿𝗶𝗳𝘁 𝗗𝗲𝘁𝗲𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗥𝗲𝗺𝗲𝗱𝗶𝗮𝘁𝗶𝗼𝗻
Terraform drift আপনার প্রোডাকশন এনভায়রনমেন্টে নীরব ঝুঁকি তৈরি করে। এটি তখন ঘটে যখন আপনার বাস্তব ইনফ্রাস্ট্রাকচার আর আপনার কোডের সাথে আর মেলে না।
এই অমিলের কারণে আউটটেজ (outages) হতে পারে। এটি নিরাপত্তার ঘাটতি তৈরি করে এবং কমপ্লায়েন্স ব্যর্থতার দিকে নিয়ে যায়।
কেন drift ঘটে?
- ইঞ্জিনিয়াররা ক্লাউড কনসোলে জরুরি হটফিক্স (hotfixes) করেন।
- কোনো ইনসিডেন্টের সময় টিমগুলো ম্যানুয়াল পরিবর্তন করে।
- মানুষ আপনার IaC ওয়ার্কফ্লোর বাইরে রিসোর্স তৈরি করে।
- কাজের গতি আপনার গভর্নেন্স রুলস বা শাসনবিধিকে ছাড়িয়ে যায়।
উদাহরণ: আপনার কোড একটি 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-এর মাধ্যমে হতে হবে।
- টেস্টিং অটোমেট করুন। আপনার ইনফ্রাস্ট্রাকচার পরিবর্তনগুলো লাইভ করার আগে পরীক্ষা করে নিন।
- ক্রমাগত মনিটর করুন। আপনার কোডের বাইরে কোনো পরিবর্তন ঘটলে অ্যালার্ট পাওয়ার জন্য AWS Config বা Spacelift-এর মতো টুল ব্যবহার করুন।
এটি কীভাবে সমাধান করবেন:
আপনি যদি drift খুঁজে পান, তবে আপনাকে ইনফ্রাস্ট্রাকচারকে পুনরায় আপনার কোডের সাথে সামঞ্জস্যপূর্ণ করতে হবে। ম্যানুয়াল পরিবর্তনগুলো মুছে ফেলে আপনার কাঙ্ক্ষিত অবস্থা ফিরিয়ে আনতে আপনি terraform apply কমান্ডটি ব্যবহার করবেন।
সামঞ্জস্যতা আপনার সিস্টেমকে স্থিতিশীল রাখে।
উৎস: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi