PaaS یا «پلتفرم بهعنوان سرویس» راهی برای انتشار برنامه است که در آن بهجای نصب و نگهداری مستقیم سرور، کد، مخزن Git، فایل Docker یا Image آماده را تحویل پلتفرم میدهید. پلتفرم مسیر ساخت، اجرا، سلامت سرویس، دامنه و بخش زیادی از عملیات روزمره را مدیریت میکند. در این آموزش PaaS، مسیر انتشار یک پروژه واقعی را از ابتدا تا بررسی نسخه آنلاین دنبال میکنیم.
PaaS برای چه پروژهای مناسب است؟
اگر یک وبسایت پویا، API، داشبورد، بات دارای پنل وب یا برنامهای ساختهشده با ابزارهای هوش مصنوعی دارید، PaaS معمولاً شروع سادهتری از مدیریت VPS است. برای نیازهایی که کنترل کامل سیستمعامل، شبکه یا نرمافزارهای سطح پایین لازم دارند، IaaS انتخاب منعطفتری است. تفاوت مسئولیتها را در «IaaS چیست؟ تفاوت IaaS، PaaS و SaaS در رایانش ابری» توضیح دادهایم. برای مقایسه هزینهها هم میتوانید مقاله «PaaS یا سرور مجازی؟ کدام برای تیم شما مقرونبهصرفهتر است» را بخوانید.
گام اول: سورس پروژه را آماده کنید
پروژه باید اطلاعات کافی برای نصب dependencyها و اجرای نسخه production داشته باشد. پاستا فایلهای شناختهشده را بررسی میکند و تنظیم پیشنهادی را پیش از ساخت نشان میدهد.
- برای Node.js یا Next.js فایل
package.jsonو lockfile واقعی پروژه را نگه دارید. - برای Python فایل
requirements.txtیاpyproject.tomlرا اضافه کنید. - برای PHP و Laravel فایلهای
composer.jsonوcomposer.lockرا همراه سورس بفرستید. - اگر پروژه
Dockerfileیاcompose.yamlدارد، همان فایل قرارداد ساخت و اجرای سرویس است.
پوشههای خروجی و dependency مانند node_modules، فایلهای موقت و هر فایل دارای رمز یا کلید خصوصی را وارد مخزن یا ZIP نکنید.
گام دوم: روش ورود پروژه را انتخاب کنید
برای شروع سریع میتوانید ZIP پروژه را بارگذاری کنید. اتصال GitHub یا GitLab برای پروژهای که مرتب تغییر میکند مناسبتر است، چون انتشارهای بعدی از همان Branch ساخته میشوند. Docker Image نیز زمانی مناسب است که فرایند Build را قبلاً در CI خودتان انجام دادهاید. همه روشها در راهنمای روشهای استقرار کنار هم آمدهاند.
پروژه آماده را روی پاستا منتشر کنید.
روش ورود سورس، منابع و هزینه پیش از ساخت نمایش داده میشوند.
گام سوم: فرمان اجرا و پورت را بررسی کنید
برنامه وب باید روی آدرس 0.0.0.0 و مقدار متغیر PORT گوش دهد. اتصال به localhost باعث میشود برنامه داخل کانتینر اجرا شود اما سرویس نتواند به آن ترافیک بفرستد. فرمان Start باید نسخه production را اجرا کند؛ سرورهای توسعه برای ترافیک واقعی و restart قابلاعتماد طراحی نشدهاند.
گام چهارم: Secret، دیتابیس و فایل پایدار را جدا کنید
رمز دیتابیس، Token و کلید API را بهعنوان Secret ثبت کنید، نه داخل کد. اگر برنامه داده ساختاریافته دارد، PostgreSQL، MySQL، MongoDB یا Redis مدیریتشده را به پروژه متصل کنید. فایلهای آپلودی یا دادهای که باید پس از انتشار دوباره باقی بماند روی Volume پایدار یا فضای object storage قرار میگیرد. گزینهها و مرز بازیابی در صفحه دیتابیس مدیریتشده توضیح داده شدهاند.
گام پنجم: منابع و هزینه را پیش از ساخت ببینید
CPU و حافظه را متناسب با مصرف فعلی انتخاب کنید و برای شروع بیش از نیاز رزرو نکنید. دیتابیس و Volume هزینه جدا دارند و باید همراه سرویس در جمعبندی نهایی دیده شوند. از محاسبهگر قیمت برای مقایسه منابع استفاده کنید. اگر برنامه رشد کرد، پلن را بعداً تغییر دهید.
گام ششم: Build و Health Check را دنبال کنید
بعد از تأیید، دریافت سورس، نصب dependency، Build و اجرای نسخه تازه مرحلهبهمرحله نمایش داده میشوند. Health Check باید یک مسیر سریع با پاسخ موفق باشد و برای هر درخواست کار سنگین انجام ندهد. ترافیک فقط بعد از آمادهشدن نسخه تازه به آن منتقل میشود؛ در نتیجه شکست Build نباید نسخه سالم فعلی را از دسترس خارج کند.
گام هفتم: دامنه و HTTPS را متصل کنید
هر پروژه ابتدا روی یک دامنه موقت قابل بررسی است. پس از اطمینان از سلامت برنامه، دامنه شخصی را اضافه و رکورد DNS پیشنهادی را ثبت کنید. وضعیت مالکیت و DNS بررسی میشود و HTTPS پس از اتصال درست فعال خواهد شد. تا پیش از آمادهشدن گواهی، تغییرهای متوالی DNS را متوقف کنید و فرصت انتشار رکوردها را در نظر بگیرید. جزئیات این مراحل را در راهنمای «اتصال دامنه اختصاصی و فعالسازی SSL رایگان» دنبال کنید.
گام هشتم: نسخه آنلاین را تحویل بگیرید
- صفحه اصلی، API و مسیر Health Check را از بیرون باز کنید.
- لاگ Runtime را برای خطاهای اتصال و متغیرهای جاافتاده بررسی کنید.
- هشدار مصرف و دسترسپذیری را فعال کنید.
- برای دیتابیس و Volume برنامه بکاپ تنظیم و بازیابی را آزمایش کنید.
- Rollback را بشناسید تا در انتشار ناموفق سریع به نسخه سالم برگردید.
نمونه مسیر برای استکهای رایج
برای جزئیات فنی هر Runtime، راهنمای هاست Next.js، هاست PHP و هاست n8n را ببینید. اگر هنوز میان سرور و پلتفرم تصمیم نگرفتهاید، مقایسه هزینه PaaS و VPS نقطه شروع بعدی است.
پاسخ کوتاه به پرسشهای این مطلب
PaaS چیست و چه کاری انجام میدهد؟
PaaS کد یا Image برنامه را میگیرد و مسیر Build، اجرا، سلامت سرویس، دامنه و HTTPS را مدیریت میکند؛ بنابراین تیم بهجای نگهداری مستقیم سرور روی محصول تمرکز میکند.
برای شروع آموزش PaaS چه فایلهایی لازم است؟
سورس کامل پروژه و فایل dependency مانند package.json، requirements.txt یا composer.json لازم است. اگر Dockerfile یا compose.yaml دارید، همان فایلها مبنای Build و اجرا قرار میگیرند.
آیا دیتابیس و فایلهای پروژه با انتشار دوباره حذف میشوند؟
اگر داده را در دیتابیس مدیریتشده، Volume یا object storage نگه دارید، از چرخه کانتینر برنامه جدا میماند. داده موقتی داخل خود کانتینر با جایگزینی نسخه میتواند از بین برود.
بعد از انتشار PaaS چه چیزهایی را بررسی کنیم؟
پاسخ صفحه و API، Health Check، لاگ Runtime، اتصال دیتابیس، HTTPS، هشدار مصرف و برنامه بکاپ را بررسی کنید و مسیر Rollback به آخرین نسخه سالم را بشناسید.
مسیر استقرار استک خود را ببینید.
تنظیم Build، پورت و Runtime هر فناوری در صفحه اختصاصی آن توضیح داده شده است.
نظرها
هنوز نظری ثبت نشده است. اولین نفر باشید.