
به اشتراک بگذارید

به اشتراک بگذارید
💡 سرور برای اپلیکیشن = آشپزخانه پشت ویترین اپ شما
🔶 زیرساخت بکاند اپ در وبداده
Mobile App (Android / iOS)
⬇️ HTTPS + JSON
[ Nginx: TLS + load balancing ]
⬇️
[ API containers (Docker) ] ➡️ [ Redis cache ]
⬇️ ➡️ [ Queue + workers ]
[ PostgreSQL / MySQL ]
Workers ➡️ FCM ➡️ Android / APNs ➡️ iOS
🔸 نکته فنی: API بدون حالت (Stateless)


| مرحله | معماری پیشنهادی | نوع سرور | نقطه ضعف اصلی |
|---|---|---|---|
| MVP و تست بازار | API و دیتابیس روی یک سرور با Docker Compose | سرور مجازی یا ابری | یک نقطه خرابی واحد |
| رشد اولیه | جداسازی دیتابیس، افزودن Redis و صف | سرور اختصاصی برای دیتابیس و سرور جدا برای API | سقف مقیاس عمودی دیتابیس |
| مقیاس بالا | چند نمونه API پشت لود بالانسر و Replica برای دیتابیس | چند سرور اختصاصی یا کلاستر Kubernetes | پیچیدگی عملیات و مانیتورینگ |
📚 از منابع معتبر
⚠️ محدودیت سرویسهای خارجی

⚠️ محدودیت را هم بدانید
به نوع سرور (مجازی، ابری یا اختصاصی)، تعداد سرورها، حجم ترافیک، لایسنس نرمافزارها و زمان نیروی فنی برای نگهداری بستگی دارد. عدد ثابتی نمیتوان گفت؛ اپی که ویدیو پخش میکند با اپ یادداشتبرداری هماندازه، نیازهای کاملاً متفاوتی دارد. بهترین روش، شروع کوچک و افزایش منابع بر اساس داده مانیتورینگ است.
برای MVP و ماههای اول، سرور مجازی معمولاً کافی و بهصرفه است. وقتی مصرف CPU یا دیسک دیتابیس در ساعات اوج به سقف میرسد یا به منابع ثابت و بدون اشتراک نیاز دارید، زمان مهاجرت دیتابیس یا کل بکاند به سرور اختصاصی رسیده است.
اپلیکیشن سرور نرمافزاری مثل WildFly یا Apache Tomcat است که کد برنامههای جاوا را اجرا میکند و روی خود سرور نصب میشود. اگر بکاند شما با Node.js، Laravel یا Django نوشته شده، معمولاً به آن نیاز ندارید و محیط اجرای همان زبان کافی است. خرید جداگانه هم لازم نیست؛ بیشتر این نرمافزارها متنباز هستند.
برای API ساده PHP ممکن است کار کند، اما معمولاً مناسب نیست. هاست اشتراکی اجازه اجرای فرایندهای دائمی مثل Node.js، WebSocket یا Workerهای صف را نمیدهد، منابع با دیگران مشترک است و دسترسی root ندارید. برای اپ جدی، دستکم یک سرور مجازی با دسترسی کامل لازم است.
Firebase و سرویسهای مشابه برای نمونه اولیه سریعاند و نگهداری سرور ندارند. در مقابل، هزینه آنها به میزان استفاده وابسته است، به ارتباط بینالملل نیاز دارند و کنترل کمتری روی داده میدهند. بسیاری از تیمها از ترکیب هر دو استفاده میکنند: FCM برای اعلان و سرور بکاند اختصاصی برای API و دیتابیس.
اگر بیشتر کاربران داخل ایران هستند، سرور داخلی مسیر شبکه کوتاهتر دارد، در زمان اختلال بینالملل در دسترس میماند و امکان ثبت IP برای نیمبها شدن ترافیک کاربران را فراهم میکند. اگر کاربران شما بینالمللی هستند یا به سرویسهای خارجی زیادی وابستهاید، ترکیب سرور داخلی و خارجی را بررسی کنید.
الزامی نیست، اما بسیار مفید است. مستندات Docker آن را بستری برای توسعه، انتقال و اجرای برنامهها معرفی میکند که برنامه را از زیرساخت جدا میکند. نتیجه عملی این است که همان محیطی که روی لپتاپ توسعهدهنده تست شده، روی سرور هم اجرا میشود و مهاجرت به سرور قویتر سادهتر است.
چند نشانه رایج: مصرف CPU یا رم در ساعات اوج نزدیک سقف است، زمان انتظار دیسک (iowait) بالا رفته، کوئریهای کند در لاگ دیتابیس زیاد شده و زمان پاسخ API در لحظات شلوغ چند برابر میشود. ابزارهای مانیتورینگ این نشانهها را پیش از شکایت کاربران نشان میدهند.