البنية التحتية ككود
قوالب CloudFormation وعمليات الحزم واستكشاف أخطاء النشر وAWS CDK وTerraform مع Git: كيف تصف البنية التحتية في ملف، وترى ما سيفعله التغيير قبل أن يفعله، وتتعافى حين يفشل النشر في منتصفه.
هذا هو قلب مجال النشر. الموضوع السابق غلّف ما ستشغّله، وهذا الموضوع عن وصف كل شيء آخر: الشبكة، وموازنات الحمل، وقواعد البيانات، والأدوار التي تربطها، في ملف يعيش في Git ويُراجَع كما تُراجَع الشيفرة. وتبدأ الدروس بـ CloudFormation لأنه المحرّك الذي يقف تحت معظم ما تبقى، ثم تصعد إلى طبقة كتابة برمجية، ثم تخرج إلى الأداة الخارجية التي يسمّيها دليل الاختبار مباشرةً.
ما الذي يغطيه هذا الموضوع
- تشريح قالب CloudFormation: الأقسام العشرة والقسم الوحيد المطلوب، وParameters بقيودها وأنواعها الخاصة بـ AWS وأنواع SSM، والدوال الضمنية وحدود استخدامها
- رسم الاعتماديات الذي يبنيه CloudFormation من الإشارات، ومتى يصير
DependsOnضرورياً - الطرق الثلاث لتمرير القيم بين الحزم، والفرق بين الإشارة القوية والضعيفة
- إبقاء الأسرار خارج القالب عبر dynamic references، وما لا يحميه
NoEcho - سلوكيات التحديث الثلاثة، ومجموعات التغيير التي تكشف الاستبدال قبل وقوعه، وسياسات الحزم، و
CreationPolicyوUpdatePolicy - خيارات التراجع ومحفّزاته، واكتشاف الانحراف بحدوده، والحزم المتداخلة مقابل الحزم المنفصلة، واستيراد الموارد القائمة
- منهج تشخيص نشر فاشل: أول فشل، ثم الحالة، ثم التصنيف إلى صلاحيات أو سعة أو إشارات أو استقرار أو تنظيف
- AWS CDK: مستويات الـ constructs الثلاثة، وbootstrap، ودورة synth وdiff وdeploy، وفخّ إعادة تسمية المعرّف
- Terraform: الحالة والقفل والـ backend من نوع S3، ودورة plan وapply، والفروق التشغيلية عن CloudFormation
- دورة عمل Git لكود البنية التحتية، وما يجب أن يشغّله الـ CI في كل مرحلة
لماذا هذا مهم
المهارات 3.1.2 و3.1.3 و3.1.6 في دليل SOA-C03 تعيش كلها هنا، والأخيرة منها تسمّي Terraform وGit بالاسم. وأسئلة هذا الموضوع تشغيلية: حزمة عالقة في ROLLBACK_COMPLETE، وتحديث دمّر قاعدة بيانات بتغيير خاصية واحدة، وإشارات لم تصل أبداً، وشبكة فرعية نفدت عناوينها. والجواب يحتاج معرفة ما تفعله كل آلية حين يسوء شيء.
والقيمة اليومية أبسط: البنية التي تستطيع إعادة بنائها من ملف تنجو من رحيل من بناها، والبنية التي لا وجود لها إلا داخل الـ Console لا تنجو.
