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