رفتن به محتوا

ماشین‌های توسعه

محیط‌های توسعه ایزوله برای ساخت و تست. محیط‌های کامل Linux با پشتیبانی Proyecta Cloud.

Proyecta به ازای هر پروژه یک ماشین توسعه (runtime) اختصاصی فراهم می‌کند. این یک container ایزوله با محیط کامل Linux است که اپلیکیشن شما در طول توسعه درون آن اجرا می‌شود.

ماشین‌های توسعه چطور کار می‌کنند؟

Section titled “ماشین‌های توسعه چطور کار می‌کنند؟”

وقتی یک پروژه را باز می‌کنید، Proyecta:

  1. یک container ایزوله (pod) در cloud ایجاد می‌کند
  2. کد پروژه‌تان را درون آن بازیابی می‌کند
  3. وابستگی‌ها را نصب کرده و محیط را آماده می‌کند
  4. سرور توسعه اپلیکیشن‌تان را راه‌اندازی می‌کند
  5. یک پیش‌نمایش زنده در builder نشان می‌دهد

می‌توانید پیشرفت فرآیند راه‌اندازی را در Runtime Status Bar زیر نوار ابزار مشاهده کنید.

نوار وضعیت این مراحل را در هنگام راه‌اندازی نشان می‌دهد:

مرحله توضیح
Creating pod راه‌اندازی container ایزوله
Health check تأیید اجرای صحیح container
Git init clone کردن مخزن شما
Environment setup نصب وابستگی‌ها (npm، pip و غیره)
Starting services اجرای اپلیکیشن و زیرساخت شما
Ready ماشین توسعه شما کاملاً آنلاین است

ماشین توسعه‌ام مشکل دارد. چطور آن را برطرف کنم؟

Section titled “ماشین توسعه‌ام مشکل دارد. چطور آن را برطرف کنم؟”

اگر پیش‌نمایش بارگذاری نمی‌شود یا ماشین به نظر گیر کرده است:

  1. Runtime Status Bar را برای پیام‌های خطا بررسی کنید
  2. از هوش مصنوعی بخواهید لاگ‌های سرویس را بررسی و دیباگ کند — او دسترسی کامل به ماشین دارد
  3. اگر هیچ‌کدام کارساز نبود، از هوش مصنوعی بخواهید در دیباگ مشکل کمک کند

ماشین توسعه شما می‌تواند شامل container‌های sidecar برای پایگاه‌های داده و سرویس‌ها باشد:

  • PostgreSQL — پایگاه داده رابطه‌ای (پورت 5432)
  • PostGIS — PostgreSQL با افزونه‌های geospatial (پورت 5432)
  • Redis — کش درون‌حافظه (پورت 6379)
  • MongoDB — پایگاه داده سندمحور (پورت 27017)
  • MySQL — پایگاه داده رابطه‌ای (پورت 3306)
  • MailHog — سرور تست ایمیل با رابط وب (پورت SMTP: 1025، پورت UI: 8025)

سرویس‌های در حال اجرا و وضعیت‌شان را در پنل Services مشاهده کنید.

ماشین‌های توسعه از این حالت‌های چرخه عمر عبور می‌کنند:

حالت توضیح
Pending در انتظار ایجاد
Initializing در حال آماده‌سازی محیط
Running فعال و سالم
Suspended متوقف شده برای صرفه‌جویی در منابع (به سرعت از سر گرفته می‌شود)
Archived ذخیره‌شده در cold storage (بازیابی آن بیشتر طول می‌کشد)
Restoring در حال بازیابی از archived storage
Failed راه‌اندازی یا عملیات با خطا مواجه شد — می‌توان ماشین را دوباره راه‌اندازی کرد
Terminated به‌طور دائمی متوقف شده

ماشین‌ها پس از ۶۰ دقیقه عدم فعالیت به‌طور خودکار suspend می‌شوند و پس از ۲۴ ساعت در حالت suspend، archive می‌شوند.

اگر ماشین توسعه از کار بیفتد، اپلیکیشن منتشرشده‌ام چه می‌شود؟

داده‌های اپلیکیشن شما در لایه داده پلتفرم Proyecta (CMS) قرار دارند که مستقل از ماشین توسعه است و در دسترس باقی می‌ماند. اما فایل‌های frontend اپلیکیشن شما از ماشین توسعه سرو می‌شوند — اگر ماشین suspend یا archive شود، بازدیدکنندگان تا زمان از سرگیری ماشین با خطای 503 مواجه خواهند شد. این نکته را برای اپلیکیشن‌هایی که می‌خواهید به‌صورت عمومی در دسترس باشند در نظر بگیرید؛ از سرگیری ماشین سایت را بازمی‌گرداند.

آیا می‌توانم ماشین توسعه سریع‌تری داشته باشم؟

در حال حاضر همه ماشین‌های توسعه با تخصیص منابع یکسانی اجرا می‌شوند. اگر برای یک پروژه بزرگ به ظرفیت بیشتری نیاز دارید، با پشتیبانی تماس بگیرید.

آیا می‌توانم مستقیماً به ماشین توسعه دسترسی داشته باشم؟

خیر. در builder هیچ دسترسی terminal یا shell وجود ندارد. هوش مصنوعی از طرف شما دسترسی کامل به ماشین دارد — از او بخواهید دستوراتی اجرا کند، لاگ‌ها را بررسی کند یا فایل‌ها را بررسی کند، و نتیجه را در چت به شما گزارش می‌دهد.