Skip to content

Latest commit

 

History

History
14 lines (11 loc) · 3.16 KB

README.md

File metadata and controls

14 lines (11 loc) · 3.16 KB

راهنمای پیاده‌سازی Infrastructure برای پروژه درس برنامه‌سازی وب

لطفاً در پیاده‌سازی بخش Infrastructure پروژه‌ی خود به موارد زیر توجه ویژه‌ای داشته باشید:

  1. داکر: لازم است که image بخش‌های مختلف پروژه مانند Frontend و Backend را با استفاده از dockerfile بسازید (build کنید) و سپس این بخش‌ها به صورت container های مجزا اجرا کنید. همچنین، به جای نصب مستقیم پایگاه‌داده و یا موارد دیگر روی دستگاه و اجرای آنها، لازم است از image های آماده داکر برای ایجاد container های پایگاه‌داده (یا cache در صورت وجود) استفاده کنید.
  2. نتورکینگ: در ابتدا با expose کردن پورت‌های مورد نیاز، ارتباط بین container ها ایجاد می‌شود. در نهایت ارتباط بین container ها هنگام استفاده از docker-compose نباید از طریق دستگاه (یا همان localhost) صورت بگیرد و باید از طریق شبکه داخلی داکر با name resolution باشد.
  3. مانا بودن: اطمینان از اینکه داده ‌های پایگاه داده در دستگاه ذخیره می‌شوند و پس از پایین آوردن و بالا بردن container داده ای از دست نمی‌رود.
  4. پروکسی معکوس: هر دو سرویس Frontend و Backend روی یک سرور اجرا می‌شوند و با استفاده از nginx reverse proxy درخواست‌های خارجی بین این سرویس‌ها توزیع می‌شود. در نهایت ارتباط با صفحه‌های front باید از طریق پورت expose شده nginx باشد و پورت Frontend نباید expose شده باشد.
  5. داکر کامپوز: پس از ایجاد داکر فایل‌ های مختلف باید بتوانید با استفاده از docker-compose پروژه خود را اجرا کنید. اجزای مختلف باید ارتباط درستی داشته باشند و داده های مهم باید مانا باشند.
  6. ویژگی‌های اضافی: استفاده از gunicorn یا مسائلی مانند انجام health check روی پایگاه داده و مطمئن شدن از عملکرد صحیح‌ آن قبل از اینکه سرویس backend بالا بیاید و به خطا بخورد. داشتن صفحه 404 not found روی nginx که به خوبی کاربران را راهنمایی کند. و ...
  7. قراردادن بر روی GitHub: همانند بخش‌های قبلی کد‌ها و configهای این بخش را نیز روی GitHub قرار دهید و دسترسی لازم به دستیار تحویل‌گیرنده داده شود.
  8. مستندسازی: مشخص کردن فایل‌های استفاده شده در این بخش و توضیح مختصر راجع به هر فایل.

این موارد برای موفقیت در پیاده‌سازی پروژه شما ضروری هستند.