arrow-left

All pages
gitbookPowered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

البنى الصغيرة باستعمال Terraform

المصدر: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/small-terraformarrow-up-right

يحتوي هذا المثال على كود لهيكلة كود Terraform لبنية تحتية صغيرة، حيث لا وجود لاعتمادات خارجية

circle-check
  • ممتاز للبدء بتعلم Terraform وإعادة هيكلة الكود (refactoring)

  • ممتاز لبناء الوحدات الصغيرة

  • جيد لاستعمال الوحدات الصغيرة (eg, )

  • جيد عند وجود عدد صغير من الموارد (أقل من 20-30)

circle-exclamation

وجود ملف حالة وحيد Single state file من أجل كل الموارد سيجعل أداة Terraform بطيئة كلما زاد عدد الموارد المعرفة (خذ بعين الاعتبار استعمال الوسيط target- للحد من الموارد التي تتعامل معها عند طلب الأداة)

terraform-aws-atlantisarrow-up-right

البنى المتوسطة باستعمال Terraform

المصدر: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/medium-terraformarrow-up-right

يحتوي هذا المثال على كود لهيكلة كود Terraform لبنية تحتية متوسطة والتي تستعمل:

  • حسابين AWS

  • بيئتين مختلفتين (prod and stage لا وجود لشيء مشترك بينهما). كل بيئة موجودة في حساب AWS مختلف

  • كل بيئة تستعمل إصدارات مختلفة للوحدات الجاهزة (alb) مصدرها

  • كل بيئة تستعمل الإصدار نفسه للوحدات الداخلية modules/network مصدره المجلد المحلي

circle-check
  • ممتاز للمشاريع التي تحتاج إلى فصل منطقي لبيئاتها (باستعمال حسابات AWS مختلفة)

  • جيد عندما لا يوجد حاجة لتعديل الموارد المشتركة بين حسابات AWS المختلفة (بيئة واحدة = حساب AWS واحد = ملف حالة وحيد)

circle-exclamation

مع نمو المشروع ، سيكون من الصعب الحفاظ على تحديث هذه البيئات مع بعضها البعض. خذ بعين الاعتبار استخدام وحدات البنية التحتية (الجاهزة أو الداخلية) للمهام المتكررة.

hashtag

جيد عندما لا يوجد حاجة لتنسيق التعديلات بين البيئات المختلفة

  • جيد عند الاختلاف المتعمد للموارد بين البيئات والذي لا يمكن تعريف حالة عامة له (كوجود بعض الموارد في بيئة وغيابها في بيئة أخرى)

  • Terraform Registryarrow-up-right

    أداة Terraform

    البنى الكبيرة باستعمال Terraform

    المصدر: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraformarrow-up-right

    يحتوي هذا المثال على كود لهيكلة كود Terraform لبنية تحتية كبيرة والتي تستعمل:

    • حسابين AWS

    • منطقتين

    • بيئتين مختلفتين (prod and stage لا وجود لشيء مشترك بينهما). كل بيئة موجودة في حساب AWS مختلف وتوزع الموارد على المنطقتين

    • كل بيئة تستعمل إصدارات مختلفة للوحدات الجاهزة (alb) مصدرها

    • كل بيئة تستعمل الإصدار نفسه للوحدات الداخلية modules/network مصدره المجلد المحلي

    circle-info

    في المشاريع الكبيرة مثل المشروع أعلاه تظهر أهمية استعمال أداة Terragrunt. انظر إلى .

    circle-check
    • ممتاز للمشاريع التي تحتاج إلى فصل منطقي لبيئاتها (باستعمال حسابات AWS مختلفة)

    • جيد عندما لا يوجد حاجة لتعديل الموارد المشتركة بين حسابات AWS المختلفة (بيئة واحدة = حساب AWS واحد = ملف حالة وحيد)

    circle-exclamation

    مع نمو المشروع ، سيكون من الصعب الحفاظ على تحديث هذه البيئات مع بعضها البعض. خذ بعين الاعتبار استخدام وحدات البنية التحتية (الجاهزة أو الداخلية) للمهام المتكررة.

    hashtag

    جيد عندما لا يوجد حاجة لتنسيق التعديلات بين البيئات المختلفة

  • جيد عند الاختلاف المتعمد للموارد بين البيئات والذي لا يمكن تعريف حالة عامة له (كوجود بعض الموارد في بيئة وغيابها في بيئة أخرى)

  • Terraform Registryarrow-up-right
    Code Structures examples with Terragrunt