البيئات
ثلاث مقاربات، وسببان سيئان لاختيار أكثرها إغراءً.
بيئات متعددة دون الوقوع في الفخاخ
يأتي السؤال دائمًا في اللحظة نفسها: التهيئة تعمل، وهي مطبّقة في مكان ما، والمطلوب الآن الشيء نفسه في مكان آخر. بيئة ما قبل الإنتاج، والإنتاج، ومنطقة ثانية، وبيئة عرض تجريبي لعميل. والحل الذي يخطر على البال أولًا هو الأعلى كلفة على المدى البعيد: الأمر terraform workspace new production، لأنه أمر واحد، ولأن كلمة «workspace» توحي بالاستخدام الذي نريده تمامًا.
إنه فخ، وهو منصوب بإتقان. فمساحات العمل تتشارك الشيفرة نفسها، ونسخة المزوّد نفسها، والـ backend نفسه، والأهم من ذلك أنها غير مرئية في المستودع: لا شيء في الملفات يخبركم بالبيئة التي تعملون عليها. والحماية الوحيدة من تنفيذ apply على الإنتاج انطلاقًا من جهاز كان صاحبه يظن أنه في بيئة ما قبل الإنتاج هي ذاكرتكم لأمر كتبتموه قبل عشر دقائق. يقارن هذا الدرس بين المقاربات الثلاث الفعلية، ويبيّن ما ينكسر في كل منها، ويقدّم توصية افتراضية.
المقاربة الأولى: المجلدات المنفصلة
كل بيئة هي مجلد له backend خاص به ومتغيراته الخاصة وحالته (state) الخاصة.
infra/
modules/
reseau/
service-web/
base-donnees/
environnements/
dev/
main.tf
backend.tf
terraform.tfvars
staging/
main.tf
backend.tf
terraform.tfvars
production/
main.tf
backend.tf
terraform.tfvars
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش