دیپلوی برای بیشتر تیمها یک توالی دستی است: SSH بزن، کد را بکش، بیلد بگیر، سرویس را ریاستارت کن و بعد چند دقیقه با استرس لاگ نگاه کن. اگر پروژهات یک وباپلیکیشن متعارف است، هیچکدام از این کارها ارزش افزوده نیست؛ فقط هزینهٔ نگهداری است.
سرویس PaaS برای حذف همین حلقه ساخته شده: کد را push میکنی و پلتفرم از بیلد، استقرار، مقیاس و دامنه مراقبت میکند. ولی جواب کوتاه «PaaS چیست» کافی نیست؛ باید بدانی کدام بخش از مسئولیتها از دوش تو برداشته میشود، کجا جواب نمیدهد و هزینهاش چطور حساب میشود. همینها را باز میکنیم و آخرش یک پروژه را واقعاً بالا میآوریم.
در یک نگاه
- تعریف
- پلتفرمی که کدت را میگیرد و سرور، بیلد، استقرار، مقیاس و SSL را خودش مدیریت میکند
- مسئولیت تو
- کد، پورت، متغیرهای محیطی و انتخاب دیتابیس
- پایهٔ فنی
- Kubernetes با دو کلاستر مستقل ایران و آلمان
- پشتیبانی
- بیش از ۱۵ نوع پروژه: Laravel، Next.js، Node.js، Django، FastAPI، Go، .NET، React، Vue، Angular، Docker و Supervisor
- دیتابیس
- مدیریتشده (PostgreSQL، MySQL، Redis، MongoDB و…) با آدرس داخلی و پشتیبانگیری خودکار
- دامنه
- سابدامین HTTPS رایگان برای هر پروژه، با امکان اتصال دامنهٔ خودت
- هزینه
- ساعتی و بر اساس منابع مصرفی، بدون حداقل مصرف
سرویس PaaS چیست؟
PaaS یا پلتفرم ابری (Platform as a Service) یک لایه بین کد تو و سرور است. تو میگویی چه چیزی اجرا شود؛ پلتفرم سیستمیعامل، بیلد، زمان اجرا، لود بالانسر، گواهی SSL و مقیاسدهی را میگرداند. سروری وجود دارد، ولی تو آن را نمیبینی و لازم هم نیست ببینی.
هاست اشتراکی هم «مدیریتشده» است، ولی به یک نسخهٔ ثابت PHP، یک پنل و منابع مشترک گره خورده. در PaaS محیط تو یک کانتینر ایزوله با نسخهٔ دلخواه زبان است؛ اگر همسایهٔ کناریات ترافیکش چند برابر شود، ظرفیت تو کم نمیشود.
از هاست اشتراکی تا سرور اختصاصی
هر لایه یک بخش از کار را از دوش تو برمیدارد و در عوض اختیار میگیرد. جدول زیر همین معامله را نشان میدهد:
| لایه | چه چیزی میگیری | چه چیزی مدیریت میکنی |
|---|---|---|
| هاست اشتراکی | پنل و PHP/MySQL آماده، منابع مشترک | فایلها، دیتابیس، افزونهها |
| PaaS | کانتینر ایزوله، پایپلاین، مقیاس، SSL | کد، پورت و متغیرهای محیطی |
| IaaS / VPS | ماشین مجازی با دسترسی ریشه | سیستمعامل، سرویسها، امنیت، بکاپ |
| سرور اختصاصی | سختافزار کامل و مجازیسازی دلخواه | همهچیز، تا لایهٔ سختافزار |
PaaS چه چیزی را از دوش تو برمیدارد؟
فهرست زیر همان کارهایی است که روی یک VPS هر ماه وقت میبرد و در PaaS وجود ندارد:
| کار | روی VPS | روی PaaS |
|---|---|---|
| نصب و آپدیت سیستمعامل | خودت، همراه با پچهای امنیتی | با پلتفرم است |
| بیلد و وابستگیها | اسکریپت دستی یا CI خودت | پایپلاین خودکار بعد از هر push |
| استقرار بدون قطعی | نیاز به پیکربندی لود بالانسر و دو نسخه | پیشفرض همین است |
| مقیاس افقی | راهاندازی استک و پیکربندی شبکه | تعداد replica را تغییر میدهی |
| SSL و دامنه | اجاره، رکورد DNS و تمدید گواهی | سابدامین رایگان با HTTPS |
| مانیتورینگ منابع | نصب و نگهداری Prometheus/Grafana | داشبورد آمادهٔ CPU، RAM، دیسک و شبکه |
| بازگشت به نسخهٔ قبل | بکاپ و بازگردانی دستی | نسخهٔ قبلی در دسترس است |
تفاوت PaaS با IaaS و VPS
VPS یک ماشین در اختیار تو میگذارد؛ PaaS یک محیط اجرا. تفاوت عملیاش در سه چیز است: سرعت رسیدن به نسخهٔ قابل استفاده، مقدار کار نگهداری و مرز اختیار.
| PaaS | VPS / IaaS | |
|---|---|---|
| کنترل | کد و تنظیمات اپلیکیشن | سیستمعامل، کرنل، شبکه و نرمافزار |
| زمان راهاندازی | چند دقیقه از اتصال گیت تا دامنه | چند ساعت تا چند روز |
| مقیاس | عمودی و افقی از پنل | دستی یا با پیکربندی خودت |
| هزینه | ساعتی، بر اساس منابع مصرفی | ماهانه و ثابت |
| تخصص لازم | کدنویسی | لینوکس، شبکه، امنیت و دواپس |
| انعطاف | محدود به پشتههای پشتیبانیشده | هر نرمافزاری |
چه زمانی PaaS انتخاب کنیم؟
- تیم کوچک است: کسی برای نگهداری سرور نداری و نمیخواهی داشته باشی.
- پشتهٔ پروژه متعارف است: لاراول، Next.js، جنگو، FastAPI، Node یا یک اپ Docker.
- بار کاری نوسان دارد: ماه پیش ۲۰ بازدید در روز بود، این ماه کمپین داری.
- استیجینگ میخواهی: محیط تست که فقط وقتی کار میکنی روشن باشد.
چه زمانی VPS انتخاب کنیم؟
- به سطح پایین نیاز داری: ماژول کرنل، تیونینگ شبکه، پروتکل خاص یا نرمافزاری که فقط با دسترسی ریشه نصب میشود.
- سرویس شبکهای خاص داری: سرور بازی، VPN، پراکسی یا هر چیزی که به UDP و تنظیمات فایروال خام نیاز دارد.
- بار کاری سنگین و پیوسته داری: دیتابیس با IOPS بالا یا پردازش همیشگی که از سقف منابع PaaS رد میشود.
- GPU میخواهی: کارت گرافیک روی سرور GPU است، نه روی کانتینر PaaS.
خیلی از تیمها هر دو را کنار هم میگذارند: برنامه روی PaaS، دیتابیس بهصورت سرویس مدیریتشده یا روی یک VPS جدا، و کارهای پشتیبان روی یک ماشین دیگر. هیچکدام جای دیگری را نمیگیرد.
پلتفرم ابری لکسویا: چه چیزی واقعاً میگیری؟
پلتفرم ابری لکسویا روی Kubernetes اجرا میشود و همانطور که پنل خودش از API استفاده میکند، همهٔ کارها از طریق API هم قابل انجام است؛ یعنی agentهای هوش مصنوعی میتوانند پروژه بسازند و دیپلوی کنند، نه فقط آدمها.
چه چیزهایی را میشود دیپلوی کرد؟
برای هر پشته یک تایپ آماده وجود دارد، پس لازم نیست Dockerfile بنویسی: Node.js، Express.js، Next.js، Nuxt.js، React، Vue، Angular، JavaScript، Laravel (بههمراه Octane و Reverb)، Django، FastAPI، Golang، .NET، Flutter PWA و Static HTML.
اگر پشتهات در این فهرست نیست، دو راه فرار داری: Docker با Dockerfile اختصاصی خودت، یا Supervisor برای پردازشهایی که نمیخواهی به فریمورک گره بخورند. عملاً یعنی هیچ چیز اینجا بنبست نیست، فقط مقدار پیکربندی بیشتر میشود.
دو کلاستر: ایران یا آلمان
این انتخاب به کاربرِ پروژه بستگی دارد، نه به سلیقه. دو کلاستر مستقل هستند؛ پروژه در یکی ساخته میشود و دادهٔ بینشان جابهجا نمیشود. اگر هنوز بین گزینههای ایرانی مردد هستی، مقایسهٔ PaaS ایرانی را ببین.
| کلاستر | دیتاسنتر | برای چه کسی |
|---|---|---|
| ایران | دیتاسنتر امین | کاربر داخل ایران، تأخیر شبکهٔ کم |
| آلمان | Hetzner | سرویسهایی که به APIهای تحریمشده وصل میشوند یا کاربر جهانی دارند |
اگر پروژهات به OpenAI، Stripe یا سرویسی وصل میشود که از داخل ایران جواب نمیدهد، کلاستر آلمان گزینهٔ اول است. اگر کاربرانت داخل ایراناند و تأخیر شبکه برایت مهم است، ایران.
کنارِ پروژه چه سرویسهایی هست؟
- دیتابیس مدیریتشده: PostgreSQL، MySQL، Redis، MongoDB و گزینههای HA با پشتیبانگیری خودکار شبانه. پروژه نباید از
localhostاستفاده کند؛ آدرس داخلی و پورت را از تنظیمات سرویس میگذاری در متغیر محیطی. - دیسک ابری: برای دادهای که باید بعد از دیپلوی بماند (آپلود کاربر، فایلهای آپلیکیشن). فایلسیستم کانتینر ماندگار نیست.
- فضای S3: برای فایلهای حجیم، بکاپ و داراییهای استاتیک که نباید در ریپو و دیسک کانتینر باشند.
- دامنه: هر پروژه از لحظهٔ ساخت یک سابدامین رایگان با HTTPS میگیرد و دامنهٔ خودت هم بعداً وصل میشود.
- مانیتورینگ و لاگ: مصرف CPU، RAM، دیسک و شبکه بههمراه لاگ زمان اجرا و لاگ هر مرحله از پایپلاین.
استقرار اولین پروژه در پنج قدم
- حساب گیت را وصل کن. در پنل، حساب GitHub، GitLab یا Gitea را authorize کن و ریپازیتوری و برنچ مورد نظر را انتخاب کن. دسترسی فقط به همان ریپو داده میشود.
- پروژه را بساز. تایپ پروژه (مثلاً
Next.jsیاDocker)، کلاستر ایران یا آلمان، و پورت کانتینر را میدهی. همینجا اولین پایپلاین خودکار اجرا میشود و webhook روی ریپازیتوری ثبت میشود تا هر push بعدی هم خودکار دیپلوی شود. - پورت و متغیرها را درست بده. پرتکرارترین اشتباه این است: کد پورت را hard-code میکند یا فقط روی
127.0.0.1گوش میدهد. پلتفرم پورت را از محیط میدهد:
رمزها و کلیدها هم فقط در متغیرهای محیطی مینشینند، هرگز در ریپو.const port = Number(process.env.PORT ?? 3000); app.listen(port, "0.0.0.0"); - پایپلاین را بخوان. سه مرحلهٔ کلون، بیلد و استقرار قابل مشاهدهاند؛ اگر بیلد شکست خورد، لاگ همان مرحله دقیقاً میگوید کدام وابستگی یا دستور مشکل داشته. استقرار موفق بدون قطعی انجام میشود و نسخهٔ قدیم تا سالم شدن نمونهٔ جدید در دسترس میماند.
- دامنه را بردار و یک تست واقعی بزن. با سابدامین رایگان یا دامنهٔ خودت یک درخواست واقعی بزن: صفحهٔ اول، یک API که به دیتابیس وصل است، و مسیر سلامت اگر گذاشتهای.
خطاهای رایج اولین دیپلوی
| نشانه | علت معمول | راهحل |
|---|---|---|
| بیلد در مرحلهٔ نصب وابستگیها میشکند | lockfile ناسازگار، نسخهٔ زبان یا نبود متغیر محیطی | لاگ مرحله را بخوان و نسخهٔ زبان یا متغیر بیلد را اصلاح کن |
| دیپلوی سبز است ولی 502 میگیری | پورت اشتباه یا گوش دادن روی 127.0.0.1 | پورت کانتینر را با پورت برنامه یکی کن و روی 0.0.0.0 بایست |
| اتصال به دیتابیس برقرار نمیشود | استفاده از localhost در متغیرها | از آدرس داخلی و پورت سرویس دیتابیس استفاده کن |
| فایلهای آپلودی بعد از دیپلوی گم میشوند | نوشتن روی فایلسیستم کانتینر | دیسک ابری یا S3 را به مسیر آپلود وصل کن |
| دامنه باز نمیشود یا SSL خطا دارد | رکورد DNS اشتباه یا پروپاگیشن ناتمام | رکورد را با آنچه پنل میگوید تطبیق بده و کمی صبر کن |
اگر خطا از جنس رفتار برنامه بود نه پیکربندی (پورت را از محیط نمیخوانی، مسیر سلامت نداری، لاگ بیفایده تولید میکنی)، در مقالهٔ دیپلوی چیست؟ همان دستورها با جزئیات آمده است.
هزینه: چرا مدل ساعتی برای تیمهای کوچک جواب میدهد؟
در PaaS منابع (CPU، RAM و دیسک) بهصورت ساعتی حساب میشوند و حداقل مصرف ماهانه وجود ندارد. یعنی پروژهای که ماه آینده فقط ۴۰ ساعت روشن باشد، هزینهٔ ۷۲۰ ساعت را نمیدهد. برخلاف VPS که ماه را کامل از تو میگیرد، عددِ صورتحساب از رفتار واقعی پروژه میآید.
همین مدل برای استیجینگ، محیط تست و پروژههای فصلی تفاوت ایجاد میکند. برای کار پیوسته و سنگین هم ماهانه بستن منطقیتر است، ولی تصمیمش را با عدد میگیری نه با حدس: ماشینحساب هزینهٔ لکسویا را باز کن و منابع پروژهات را بگذار.
هزینهٔ شروع هم ساده است: پرداخت ساعتی بهازای مصرف، با ۱۰۰ هزار تومان اعتبار اولیه هنگام ثبتنام (آبان ۱۴۰۵). اگر پروژهات به سرویسهای تحریمشده وصل میشود، کلاستر آلمان را از همان ابتدا انتخاب کن تا بعداً مجبور به مهاجرت نشوی.
کجا PaaS انتخاب درستی نیست
- کرنل و سطح پایین: ماژول اختصاصی، eBPF سنگین یا تنظیمات TCP که فقط با روت ممکن است.
- سرور بازی و VPN: UDP و شبکهٔ خام جزو قابلیت پیشفرض کانتینر نیست.
- کارت گرافیک: برای آموزش و اجرای مدل، سرور GPU لازم است، نه پلتفرم.
- دیتابیس با IOPS بالا: اگر دیتابیس بار اصلی پروژه است، سرویس مدیریتشده یا VPS اختصاصی جواب بهتری میدهد.
- نرمافزار با لایسنس سختافزاری: بعضی محصولات تجاری به تعداد سوکت یا ماشین گره خوردهاند.
جمعبندی
سرویس PaaS یک انتخاب تکنیکی نیست؛ یک انتخاب دربارهٔ این است که وقت تیمت کجا خرج شود. اگر محصولت یک وباپلیکیشن متعارف است و میخواهی تیم روی محصول کار کند نه روی سرور، پلتفرم ابری سریعترین راه رسیدن به نسخهٔ زنده و مقیاسپذیر است. اگر به کنترل کامل، شبکهٔ خاص یا GPU نیاز داری، VPS و سرور اختصاصی سر جای خودشان میمانند.
در لکسویا هر دو در یک حساب جمع شدهاند: پروژه روی پلتفرم ابری، دیتابیس بهصورت سرویس مدیریتشده و اگر لازم شد، سرور GPU یا VPS کنارش. یکی را انتخاب کن که مسئلهٔ امروزت را حل میکند و راه مهاجرت را باز بگذار.
اولین پروژهات را روی پلتفرم ابری بالا بیاور
اتصال گیت، انتخاب فریمورک، دامنهٔ رایگان و پرداخت ساعتی؛ بدون نصب هیچ سروری.
سؤالات متداول
سرویس PaaS چیست و چه فرقی با هاست معمولی دارد؟
PaaS یک پلتفرم مدیریتشده است که کد را در یک کانتینر ایزوله میسازد و اجرا میکند؛ سرور، بیلد، استقرار بدون قطعی، SSL و مقیاسدهی کار پلتفرم است و تو فقط کد و متغیرهای محیطی را مدیریت میکنی. هاست اشتراکی منابع و نسخهٔ زبان را مشترک و ثابت نگه میدارد و تو را به پنل و همان نسخه محدود میکند.
تفاوت PaaS و VPS در یک جمله چیست؟
روی VPS یک ماشین با دسترسی ریشه میگیری و خودت سیستمعامل، امنیت و استقرار را میچرخانی؛ روی PaaS یک محیط اجرا میگیری و کنترل را با حذف کار نگهداری معاوضه میکنی. برای وباپلیکیشن متعارف PaaS سریعتر است، برای کرنل، شبکهٔ خاص و GPU هنوز VPS لازم است.
روی PaaS لکسویا چه فریمورکهایی اجرا میشود؟
بیش از ۱۵ نوع پروژه: Node.js، Express.js، Next.js، Nuxt.js، React، Vue، Angular، JavaScript، Laravel (با Octane و Reverb)، Django، FastAPI، Golang، .NET، Flutter PWA و Static HTML. اگر پشتهات در فهرست نیست، با تایپ Docker و Dockerfile خودت یا با Supervisor هر برنامهای را اجرا میکنی.
هزینهٔ PaaS چطور محاسبه میشود؟
منابع (CPU، RAM و دیسک) بهصورت ساعتی و بر اساس مصرف حساب میشوند و حداقل مصرف ماهانه وجود ندارد؛ پروژهای که ماهی ۴۰ ساعت روشن باشد هزینهٔ ۴۰ ساعت را میدهد نه ۷۲۰ ساعت. هنگام ثبتنام هم ۱۰۰ هزار تومان اعتبار اولیه داده میشود.
دیتابیس را کجا بگذارم؟
بهترین گزینه سرویس دیتابیس مدیریتشده است که پشتیبانگیری خودکار و گزینهٔ دسترسی بالا دارد. آدرس داخلی و پورت سرویس را در متغیر محیطی پروژه میگذاری؛ استفاده از localhost کار نمیکند چون دیتابیس در کانتینر پروژه نیست.
کلاستر ایران را انتخاب کنم یا آلمان؟
برای کاربران داخل ایران و تأخیر کم، کلاستر ایران (دیتاسنتر امین) مناسب است. اگر پروژه به APIهای تحریمشده مثل OpenAI یا Stripe وصل میشود یا کاربر جهانی دارد، کلاستر آلمان (Hetzner) را از ابتدا انتخاب کن؛ دو کلاستر مستقلاند و داده بینشان جابهجا نمیشود.
آیا میتوانم دامنهٔ خودم را وصل کنم؟
بله. هر پروژه از لحظهٔ ساخت یک سابدامین رایگان با HTTPS میگیرد و دامنهٔ اختصاصی هم با تنظیم رکورد DNS در پنل وصل میشود. گواهی SSL توسط پلتفرم صادر و تمدید میشود.
منابع
- مستندات پلتفرم ابری لکسویا، فهرست تایپهای پروژه، پایپلاین و مقیاسدهی.
- صفحهٔ رسمی پلتفرم ابری، قابلیتها و کلاسترها.
- قیمتگذاری و ماشینحساب هزینه، عددهای بهروز منابع.
مطالب مرتبط
- دیپلوی لاراول روی پلتفرم ابری برای وقتی پروژهات لاراول است و مسیر git push تا صف و دامنه را میخواهی.
- دیپلوی چیست؟ برای مراحل دقیق انتشار و دیباگ خطاهای رایج.
- مقایسهٔ PaaS ایرانی اگر بین لیارا، پارسپک، چابکان و لکسویا مردد هستی.
- Next.js چیست و چه سروری لازم دارد اگر پروژهات سمت سرور رندر میشود و میخواهی روی پلتفرم بالا بیاید.
- مقایسهٔ قیمت VPS در ایران برای وقتی که به ماشین کامل نیاز داری.
- مقیاس افقی و عمودی برای اینکه بدانی کِی replica اضافه کنی و کِی منابع.
- سرور MCP لکسویا اگر میخواهی دیپلوی را به agent بسپاری.