ماشینهای توسعه
محیطهای توسعه ایزوله برای ساخت و تست. محیطهای کامل Linux با پشتیبانی Proyecta Cloud.
Proyecta به ازای هر پروژه یک ماشین توسعه (runtime) اختصاصی فراهم میکند. این یک container ایزوله با محیط کامل Linux است که اپلیکیشن شما در طول توسعه درون آن اجرا میشود.
ماشینهای توسعه چطور کار میکنند؟
Section titled “ماشینهای توسعه چطور کار میکنند؟”وقتی یک پروژه را باز میکنید، Proyecta:
- یک container ایزوله (pod) در cloud ایجاد میکند
- کد پروژهتان را درون آن بازیابی میکند
- وابستگیها را نصب کرده و محیط را آماده میکند
- سرور توسعه اپلیکیشنتان را راهاندازی میکند
- یک پیشنمایش زنده در builder نشان میدهد
میتوانید پیشرفت فرآیند راهاندازی را در Runtime Status Bar زیر نوار ابزار مشاهده کنید.
مراحل راهاندازی
Section titled “مراحل راهاندازی”نوار وضعیت این مراحل را در هنگام راهاندازی نشان میدهد:
| مرحله | توضیح |
|---|---|
| Creating pod | راهاندازی container ایزوله |
| Health check | تأیید اجرای صحیح container |
| Git init | clone کردن مخزن شما |
| Environment setup | نصب وابستگیها (npm، pip و غیره) |
| Starting services | اجرای اپلیکیشن و زیرساخت شما |
| Ready | ماشین توسعه شما کاملاً آنلاین است |
ماشین توسعهام مشکل دارد. چطور آن را برطرف کنم؟
Section titled “ماشین توسعهام مشکل دارد. چطور آن را برطرف کنم؟”اگر پیشنمایش بارگذاری نمیشود یا ماشین به نظر گیر کرده است:
- Runtime Status Bar را برای پیامهای خطا بررسی کنید
- از هوش مصنوعی بخواهید لاگهای سرویس را بررسی و دیباگ کند — او دسترسی کامل به ماشین دارد
- اگر هیچکدام کارساز نبود، از هوش مصنوعی بخواهید در دیباگ مشکل کمک کند
سرویسهای زیرساختی
Section titled “سرویسهای زیرساختی”ماشین توسعه شما میتواند شامل containerهای sidecar برای پایگاههای داده و سرویسها باشد:
- PostgreSQL — پایگاه داده رابطهای (پورت 5432)
- PostGIS — PostgreSQL با افزونههای geospatial (پورت 5432)
- Redis — کش درونحافظه (پورت 6379)
- MongoDB — پایگاه داده سندمحور (پورت 27017)
- MySQL — پایگاه داده رابطهای (پورت 3306)
- MailHog — سرور تست ایمیل با رابط وب (پورت SMTP: 1025، پورت UI: 8025)
سرویسهای در حال اجرا و وضعیتشان را در پنل Services مشاهده کنید.
حالتهای چرخه عمر
Section titled “حالتهای چرخه عمر”ماشینهای توسعه از این حالتهای چرخه عمر عبور میکنند:
| حالت | توضیح |
|---|---|
| Pending | در انتظار ایجاد |
| Initializing | در حال آمادهسازی محیط |
| Running | فعال و سالم |
| Suspended | متوقف شده برای صرفهجویی در منابع (به سرعت از سر گرفته میشود) |
| Archived | ذخیرهشده در cold storage (بازیابی آن بیشتر طول میکشد) |
| Restoring | در حال بازیابی از archived storage |
| Failed | راهاندازی یا عملیات با خطا مواجه شد — میتوان ماشین را دوباره راهاندازی کرد |
| Terminated | بهطور دائمی متوقف شده |
ماشینها پس از ۶۰ دقیقه عدم فعالیت بهطور خودکار suspend میشوند و پس از ۲۴ ساعت در حالت suspend، archive میشوند.
سؤالات متداول
Section titled “سؤالات متداول”اگر ماشین توسعه از کار بیفتد، اپلیکیشن منتشرشدهام چه میشود؟
دادههای اپلیکیشن شما در لایه داده پلتفرم Proyecta (CMS) قرار دارند که مستقل از ماشین توسعه است و در دسترس باقی میماند. اما فایلهای frontend اپلیکیشن شما از ماشین توسعه سرو میشوند — اگر ماشین suspend یا archive شود، بازدیدکنندگان تا زمان از سرگیری ماشین با خطای 503 مواجه خواهند شد. این نکته را برای اپلیکیشنهایی که میخواهید بهصورت عمومی در دسترس باشند در نظر بگیرید؛ از سرگیری ماشین سایت را بازمیگرداند.
آیا میتوانم ماشین توسعه سریعتری داشته باشم؟
در حال حاضر همه ماشینهای توسعه با تخصیص منابع یکسانی اجرا میشوند. اگر برای یک پروژه بزرگ به ظرفیت بیشتری نیاز دارید، با پشتیبانی تماس بگیرید.
آیا میتوانم مستقیماً به ماشین توسعه دسترسی داشته باشم؟
خیر. در builder هیچ دسترسی terminal یا shell وجود ندارد. هوش مصنوعی از طرف شما دسترسی کامل به ماشین دارد — از او بخواهید دستوراتی اجرا کند، لاگها را بررسی کند یا فایلها را بررسی کند، و نتیجه را در چت به شما گزارش میدهد.