admin processes

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/09/30
  • تعداد بازدید: 7

فاکتور دوازدهم: Admin Processes

فاکتور دوازدهم در 12-Factor App مربوط به اجرای وظایف مدیریتی و اداری به عنوان فرآیندهای یک‌باره (One-off Processes) است. علاوه بر فرآیندهای اصلی اپلیکیشن که کارهای روزمره را انجام می‌دهند، گاهی توسعه‌دهندگان نیاز دارند تا کارهای مدیریتی یا نگهداری یک‌باره را اجرا کنند.

نمونه‌های One-off Processes

  • اجرای Database Migrations مانند manage.py migrate در Django یا rake db:migrate در Rails.
  • اجرای کنسول (REPL shell) برای اجرای کد دلخواه یا بررسی مدل‌ها در مقابل پایگاه داده زنده، مانند python، irb یا rails console.
  • اجرای اسکریپت‌های یک‌باره موجود در کدبیس، مانند php scripts/fix_bad_records.php.

ویژگی‌های مهم Admin Processes

  • باید در همان محیطی اجرا شوند که فرآیندهای اصلی اپلیکیشن اجرا می‌شوند (همان release، همان کدبیس و همان config).
  • کد مدیریتی باید همراه با کد اپلیکیشن منتشر شود تا مشکلات هماهنگی از بین برود.
  • همان روش‌های isolation وابستگی‌ها باید در همه فرآیندها اعمال شود. برای مثال:
    • Ruby: اگر وب پروسه با bundle exec thin start اجرا می‌شود، migration باید با bundle exec rake db:migrate اجرا شود.
    • Python: اگر وب سرور Tornado با Virtualenv اجرا می‌شود، هر فرآیند مدیریتی باید از bin/python همان محیط استفاده کند.
  • استفاده از زبان‌هایی که REPL shell ارائه می‌دهند توصیه می‌شود، زیرا اجرای اسکریپت‌های یک‌باره آسان‌تر است.
  • در محیط محلی، توسعه‌دهنده با اجرای دستور مستقیم در پوشه checkout اپلیکیشن، این فرآیندها را اجرا می‌کند؛ در محیط production می‌توان از ssh یا سایر مکانیزم‌های اجرای دستورات از راه دور استفاده کرد.

نمونه عملی

فرض کنید اپلیکیشن شما نیاز به migration دارد. در محیط development کافی است دستور rake db:migrate اجرا شود تا تغییرات پایگاه داده اعمال شوند. این همان کد و config را استفاده می‌کند که پروسه‌های web در production نیز از آن استفاده می‌کنند، بنابراین هماهنگی کامل بین محیط‌ها حفظ می‌شود.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/600

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.