tgoop.com/djangolearn_ir/943
Last Update:
✅12factor
قبلا توی این پست در موردش نوشتم:
https://www.tgoop.com/djangolearn_ir/78
اما بازم امروز از از Sider Fusion پرسیدم 12factor چیه؟ و ctrl + c بعدش ctrl + v 😁
یک سری اصول و الگوهایی است که برای توسعه و استقرار برنامههای وب مدرن طراحی شدهاند. هدف آن کمک به توسعهدهندگان نرمافزار برای ساخت برنامههایی است که مقیاسپذیر، پایدار و قابل نگهداری باشند. این اصول عبارتند از:
Codebase:
یک برنامه باید بر اساس یک کدبیس (codebase) واحد باشد که میتواند در محیطهای متفاوت مانند توسعه، آزمایش و تولید عمل کند.
Dependencies:
برنامه باید تمام وابستگیها را بهطور واضح تعیین کرده و مستقل از سیستم عامل و محیط اجرا شود.
Config:
پیکربندیها باید خارج از کد اصلی برنامه (در محیط) قرار گیرند تا قابلیت تغییر و مدیریت آسانتر شود.
Backing services:
هرگونه خدمات پشتیبان (مانند پایگاه داده، پیامرسان و ...) باید بهعنوان منابعی از نوعی وابستگی در نظر گرفته شوند و راحت قابل تعویض باشند.
Build, release, run:
فرآیند توسعه باید به مرحله ساخت، انتشار و اجرا تفکیک شود.
Processes:
برنامهها باید بهصورت پروسههای بدون حفظ حالت (stateless) اجرا شوند.
Port binding:
برنامه باید به طور مستقل به پورتها متصل شود و نیازی به خدمات خارجی برای راهاندازی نداشته باشد.
Concurrency:
برنامه باید از ویژگی همزمانی (concurrency) به خوبی بهرهبرداری کند.
Disposability:
برنامهها باید بهراحتی و سریع خاموش و روشن شوند.
Dev/prod parity:
محیطهای توسعه و تولید باید مشابه یکدیگر باشند تا مشکلات ناشی از تفاوتها کاهش یابد.
Logs:
لاگها باید بهعنوان جریانی از رویدادها در نظر گرفته شوند و بهصورت مرکزی مدیریت شوند.
Admin processes:
کارهای اداری و مدیریتی باید بهصورت برنامههای یکباره (one-off) قابل اجرا باشند و بهطور جداگانه از جریان اصلی برنامه اجرا شوند.
این اصول باعث میشوند که توسعهدهندگان برنامههایی بسازند که نگهداری از آنها سادهتر است و میتوانند به راحتی مقیاس پذیر شوند.
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/943