منوی دسته بندی

The Twelve Factor

۱۲ فاکتور یک متدولوژی برای طراحی و پیاده سازی برنامه های ابرزی (cloud-native) می باشد.آقای adam wiggins از بنیان گذاران شرکت Heroku اومده این متدولوژی رو طراحی کرده تا برنامه ها در محیط کلود بهتر اجرا شوند.

Cloud-Native : اصطلاحا به آن برنامه های ابرزی می گویند، برنامه هایی که به طور اصلی بر روی ساختار ها و فناوری های مرتبط با محیط ابر تمرکز دارند.این برنامه ها به طور کامل برای استفاده در محیط ابر طراحی و توسعه داده می شوند و دارای محیط انعطاف پذیر ، مقیاس پذیر و قابل توسعه می باشند.

Methology (متولوژی) : متولوژی به مجموعه اصول، روش‌ها، قواعد، تکنیک‌ها و ابزارهای استفاده شده در فرآیند توسعه و مدیریت یک پروژه گفته می‌شود. این مجموعه به توسعه دهندگان و تیم‌ها کمک می‌کند تا پروژه را به صورت سازمان‌یافته، معمولاً در قالب مراحل و فعالیت‌های مشخص، انجام دهند.متولوژی‌ها معمولاً بر اساس استانداردهای صنعتی، تجربیات پیشین، تکنولوژی‌ها و نیازهای پروژه‌ها طراحی می‌شوند و در طول زمان توسعه یافته‌اند. هر متولوژی دارای خصوصیات و ویژگی‌های خاص خود است.به طور خلاصه شامل یکسری best practice می باشد که اگر رعایت شود برنامه standard می باشد و بهتر در محیط ابر اجرا می شود.

  1. codebase : برنامه باید یک منبع کد مثل گیت داشته باشد.
  2. Depedencies : وابستگی های برنامه باید صریح گقته شود . الزاما در محیط ایزوله اجرا شوند. مثل فایل requirements.txt و pip در پایتون.
  3. Configuration : کافیگ ها باید در متغییر محیطی ذخیره شوند.برای ساخت متغییر های محیطی یک فایل با پسوند env یا variable ایجاد میکنیم.مثل config.env.
  4. Backing Services : سرویس ها باید به عنوان برنامه با قابلیت اتصال به برنامه اضافه شوند.
  5. Build,Release,Run  : فاز های Build و Release و Run جدا باشد، یعنی کد باید طوری باشد که بتوان از آن Build گرفت و  config را به Build اضافه کرد تا Releadse درست شود و آن را Run یا اجرا کرد.
  6. Processes : برنامه stateless باشد و از حافظه و دیسک مستقیم استفاده نکند.
  7. Port Binding : برنامه روی یک port خاص بایند شود.
  8. concurrency : قابلیت scaleout داشته باشد.
  9. Disposability : ساختار برنامه پایدار محور باشد و تحمل خطا و پایان تمیز باشد.
  10. Dev/Prod Parity : در محیط های Development و Production از ابزار های یکسان استفاده شود.
  11. Logs : لاگ های برنامه باید در stdout و stderr نوشته شود و با درایور های مناسب مدیریت شود.
  12. Admin Processes : کار مدیریتی و کنترلی به صورت جدا اجرا شود و برنامه اصلی را مشغول نکند.
منبع سایت : 12factor.net

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *