Next.js و NestJS production
DEVNU / TECHNOLOGY / DOCKER
Docker وقتی مفید است که محیط اجرا را قابل تکرار کند، نه وقتی فقط commandها را طولانیتر کند.
Containerها مرز dependency، network و startup هر سرویس را واضح میکنند. برای VPS و معماری چندسرویسی، Docker Compose میتواند deployment قابل فهمی بدهد بدون اینکه از روز اول Kubernetes وارد پروژه شود.
Docker در پروژه چه مسئولیتی دارد؟
در productionهای DEVNU، frontend، API و database معمولاً سرویسهای جدا با network خصوصی هستند؛ Nginx ترافیک public را میگیرد و database port عمومی نمیشود. image build، env، migration و healthcheck بخشی از release process هستند.
جایی که استفاده از آن باید یک مسئله مشخص را حل کند.
PostgreSQL روی network خصوصی
worker و queue service
environmentهای staging و production
build قابل تکرار
rollback و recreate کنترلشده
چه زمانی انتخابش میکنیم
چند سرویس، dependency native، deployment روی VPS، environmentهای staging/production و نیاز به rollback/rebuild fit خوبی هستند. Compose همچنین handoff را بهتر میکند چون topology سرویس در کد ثبت میشود.
چه زمانی انتخابش نمیکنیم
برای یک صفحه استاتیک ساده که platform host خودش build و CDN را مدیریت میکند، container ممکن است هیچ ارزشی اضافه نکند. Docker همچنین جای configuration management، backup یا monitoring نیست.
استفاده از ابزار مهم نیست؛ نحوه نگهداری آن مهم است.
- 01multi-stage build
- 02image کوچک و dependency production-only
- 03healthcheck واقعی
- 04secret خارج از image
- 05volume فقط برای state لازم
- 06network public/private واضح
چند سؤال مهمتر از اسم stack هستند.
Compose یا Kubernetes؟
تا زمانی که orchestration چندنودی، autoscaling یا rollout پیچیده لازم نیست، Compose روی VPS اغلب سادهتر و قابل نگهداریتر است.
Database داخل container؟
میتواند باشد، به شرط volume، backup، upgrade و recovery روشن. container بودن database مسئولیت state را حذف نمیکند.
latest tag؟
برای dependencyهای production نسخه یا digest مشخص ترجیح دارد تا rebuild فردا نتیجه متفاوتی از امروز ندهد.
پروژههایی که Docker در stack آنها ثبت شده است.
وبسایت و سامانه مدیریتی SUMY
وبسایت دوزبانه گروه صنعتی SUMY بههمراه API، پایگاهداده و پنل اختصاصی برای مدیریت صفحات، محصولات، برندها و درخواستهای ورودی.
- React
- TypeScript
- NestJS
- PostgreSQL
- Prisma
- Docker
پاسارگارد؛ فروشگاه و پنل عملیاتی تلگرام
محصول شخصی برای جمعکردن ثبت سفارش، کیف پول، تحویل سرویس و مدیریت نمایندگان در یک جریان واحد داخل ربات و Mini App تلگرام.
- Telegram
- React
- TypeScript
- FastAPI
- PostgreSQL
- Redis
- Docker
- Nginx
ChatNU؛ پیامرسان سبک و قابل استقرار
یک پیامرسان ساده با کلاینت اندروید، ارتباط WebSocket و Relay که برای راهاندازی سریع، تجربه کاربری کماصطکاک و شرایط ارتباطی محدود طراحی میشود.
- Android
- Kotlin
- WebSocket
- Node.js
- PostgreSQL
- Docker
فناوری درون یک خروجی واقعی معنا پیدا میکند.
پرسشهای متداول درباره Docker
01آیا DEVNU برای هر پروژه Docker استفاده میکند؟+
خیر. وقتی hosting platform خودش runtime را مدیریت میکند یا پروژه بسیار ساده است، container ممکن است لازم نباشد.
02Docker امنیت سرور را حل میکند؟+
خیر. firewall، SSH، image hygiene، secret management، network exposure و patching همچنان باید جداگانه طراحی و نگهداری شوند.
09 / NEXT STEP
اول مسئله را ببینیم، بعد stack را انتخاب کنیم.
اگر پروژه به این فناوری نیاز داشته باشد، دلیلش باید در معماری، عملکرد، تجربه کاربر یا هزینه نگهداری قابل توضیح باشد.
شرح پروژه