چرا نباید در لیارا از PM2 و یا Nodemon و Forever استفاده کنیم!
۲۳ اسفند ۱۳۹۷
احتمالا شما هم مانند سایر برنامهنویسهای JavaScript از یکی از ابزارهای بروزرسانی خودکار برنامهیتان استفاده میکنید. این ابزار ها در اجرای برنامههای NodeJS در سمت کاربر یا سرور نقشی اساسی دارند. اما در سرویس ابری لیارا اکیدا توصیه میکنیم که از هیچکدام از این ابزارها استفاده نکنید. شاید سادگی زیباتر است 🙂
node app.js
خب، پس از این مقدمه کوتاه بیایید نگاهی دقیقتر به کاربردهای این ابزارهای محبوب بیندازیم. بیشترین استفاده های این ابزار ها برای موارد زیر است:
- بروزرسانی خودکار مرورگر
- بروزرسانی برنامه پس از تغییر کدهای برنامه
- تلاش برای اجرای دوباره برنامه پس از دریافت خطا و بستهشدن ناگهانی آن
- استفاده برای مانیتور کردن منابع مصرفی برنامه
- کلاسترکردن برنامه و افزایش سرعت
همانطور که مشاهده میکنید، اکثر این کاربریها در زمان توسعهی نرمافزار کاربردی هستند و در زمان اجرای برنامه برای کاربران نهاییمان و یا همان نسخهی production برنامه، نیازی به این امکانات نداریم و بیشتر باعث کندشدن برنامه میشوند.
هر بار که برنامهیتان را روی سرورهای لیارا مستقر میکنید، بهصورت خودکار بهروز شده و restart میشود. نکتهی جذابتر این است که هر زمان برنامهیتان با یک خطای کنترل نشده مواجه شود و اصطلاحا crash کند، لیارا به صورت خودکار برنامه را ریاستارت میکند تا برنامهیتان پاسخگوی کاربرانتان باشد. در این زمان میتوانید با خیال راحت لاگهای برنامه را از داشبورد لیارا مشاهده کنید و خطا را رفع کنید. ضمنا لیارا گزارشات منابع مصرفی برنامهیتان را در اختیارتان قرار میدهد. بهزودی هم قابلیت کلاسترکردن برنامه به پنل لیارا اضافه میشود.
با این شرایط، همیشه بهتر است که اسکریپت start تان، یک node app.js
ساده باشد.
اما برای محیط توسعه چه کنیم؟ در هر حال، در محیط توسعه به این ابزارها نیاز داریم. برای حل این مشکل، میتوانید یک اسکریپت دیگر با نام دلخواهتان به لیست اسکریپتها در فایل package.json
برنامهیتان اضافه کنید و از ابزار دلخواهتان برای سرو کردن برنامه استفاده کنید.
// package.json
{
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}
}
در مثال بالا مشاهده میکنید که از ۲ اسکریپت برای اجرای برنامه در محیطهای توسعه و پروداکشن استفاده شدهاست. لیارا از دستور npm start
برای اجرای برنامه استفاده خواهد کرد و شما برای محیط توسعهیتان میتوانید از npm run dev
استفاده کنید که برنامه را با Nodemon اجرا خواهد کرد.
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
![liara testimonial]()
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
![liara testimonial]()
jadi
با قدرت میتونم بگم تیم پشتیانی لیاراliara_cloud@یکی از بهترین تیمهای پشتیبانی که تا حالا دیدم. کارشون ارائه سرویسهای PaaS هست ولی من سوال در سطح برنامه خودمم(نه زیرساخت پلتفرم) که میپرسم بازم کامل و به موقع راهنمایی میکنن.
Amir
![liara testimonial]()
amirmazinani_ir
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
![liara testimonial]()
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
![liara testimonial]()
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
![liara testimonial]()
vanenshi