توسعه بکاند
معماری مقیاسپذیر با Django برای میکروسرویس و سیستم پرترافیک. امنیت سازمانی، بهینهسازی پایگاه داده و استقرار production بخشی از تحویل است.
این خدمت برای چه سیستمی است؟
بکاند در DevOff یعنی سرویس سمت سرور که داده، احراز هویت، صف و گزارش را نگه میدارد. مخاطب: محصول SaaS، پنل سازمانی، و APIای که چند کلاینت وب و موبایل به آن وصل میشوند.
زبان و چارچوب پیشفرض Django و PostgreSQL است. Redis برای کش و صف، Celery برای کار پسزمینه. همین ترکیب در نوبیتا، آیسند و درسکتاب به کار رفته است.
بکاند Django برای محصول فارسی یعنی چه؟
منطق کسبوکار روی سرور میماند، نه فقط در مرورگر. مجوز نقشها، پیامک، پرداخت و خروجی گزارش باید قابلحسابرسی باشد. اسلگ یونیکد برای مسیر فارسی در مدلها پشتیبانی میشود اگر محصول به آن نیاز داشته باشد.
امنیت سازمانی اینجا یعنی احراز هویت استاندارد، محدودیت نرخ روی مسیر عمومی، و جدا کردن تنظیمات تست از تولید. ایمیل production روی بعضی پروژهها هنوز جدا پیکربندی میشود؛ در محدودهٔ قرارداد مینویسیم چه کانالی برای اعلان روشن است.
فرآیند کار
کشف نیاز: موجودیتها، نقشها، و اینکه کدام عمل نباید در ساعت اوج قفل شود. طراحی: مونولیت ماژولار یا چند سرویس؛ پیشفرض ما یک دامنهٔ مشخص است تا پیچیدگی زود اضافه نشود.
اسپرینت دو هفتهای با دمو روی API واقعی. تست واحد و یکپارچگی قبل از merge. استقرار با Docker؛ مانیتورینگ سلامت و لاگ متمرکز در تحویل production میآید.
اگر فرانت جداست، قرارداد API را با توسعه API هممسیر میکنیم تا نسخهبندی و مستند OpenAPI یکی باشد.
استک
Django، PostgreSQL، Redis، Celery، Docker. GraphQL را وقتی کلاینتهای متعدد فیلدهای تودرتو میخواهند انتخاب میکنیم؛ وگرنه REST واضحتر است. JWT و OAuth2 بر اساس اینکه کلاینت مرورگر است یا سرویسبهسرویس.
بهینهسازی کوئری بخشی از کار است، نه مرحلهٔ بعد از شکایت کاربر. ایندکس و N+1 را در بازبینی کد میگیریم.
خروجی و مالکیت
مستندات فنی، تست، پایپلاین CI/CD و استقرار production در فهرست تحویل است. کد پس از تسویه مال شماست.
نمونهٔ معماری محصول خودمان را در نمونهکار نوبیتا بخوانید: API نسخهبندی، صف پیامک، کش تقویم.
چه وقت بکاند جدا لازم نیست؟
اگر فقط یک سایت محتوایی با فرم تماس میخواهید، بکاند سبک همان فرم و خبرنامه کافی است و لازم نیست میکروسرویس تعریف شود. اگر ERP میخواهید، مسیر Odoo است نه بازنویسی تمام ماژولهای سازمانی با Django.
پرسشهای پرتکرار
دیتابیس را روی سرور شما نگه میدارید؟
محل داده در قرارداد است: سرور کارفرما، یا زیرساختی که با DevOps بالا میآید. پشتیبانگیری را در همان محدوده مینویسیم.
میکروسرویس از روز اول؟
فقط اگر تیم و ترافیکش را توجیه کند. شروع با دامنهٔ مشخص معمولاً ارزانتر و پایدارتر است.
درخواست را از فرم تماس بفرستید.
در جلسه کشف نیاز بکاند چه میپرسیم؟
نقشها، سقف همزمانی روی یک منبع (مثلاً تقویم نوبت)، و کانال اعلان: پیامک، ایمیل، یا هیچکدام. اگر پیامک باشد، قطع سرویس ارائهدهنده نباید ثبت فرم را بشکند؛ این را در نوبیتا جدا دیدهایم و در پروژهٔ شما هم جدا مینویسیم.
دادهٔ شخصی کجا ذخیره میشود و چه کسی export میگیرد. پشتیبان روزانه یا نه. محیط تست با دادهٔ واقعی یا ساختگی.
صف و کار پسزمینه
Celery برای کاری است که نباید کاربر را منتظر بگذارد: پیام، گزارش سنگین، OCR. اگر حجم صف مشخص نباشد، اول همان را اندازه میگیریم. Redis را هم برای کش و هم برای بروکر صف استفاده میکنیم مگر جدا باشد.
لاگ متمرکز یعنی بعد از حادثه بتوانید درخواست را با شناسه پیدا کنید، نه اینکه SSH بزنید و فایل را بخوانید. جزئیات ابزار در DevOps است.
هفتهٔ اول مدل داده و یک مسیر خواندن/نوشتن با تست است. هفتهٔ دوم نقشها. ادمین جنگو را زود میدهیم تا خودتان دادهٔ آزمایش ببینید؛ ظاهر ادمین را فارسی میکنیم اگر در محدوده باشد. اعداد داخل محصول با fa-IR است مگر گزارش مالی لاتین بخواهد.
ویژگیها
- معماری میکروسرویس و مونولیت ماژولار
- طراحی RESTful و GraphQL API
- بهینهسازی کوئری و کش Redis
- احراز هویت JWT و OAuth2
- مانیتورینگ و لاگینگ متمرکز
تکنولوژیها
تحویلها
- • مستندات فنی کامل
- • تست واحد و یکپارچگی
- • CI/CD pipeline
- • استقرار production
آماده ساخت محصول بعدی هستید؟
جلسه مشاوره رایگان ۳۰ دقیقهای — بدون تعهد، فقط گفتگوی صادقانه درباره اهداف شما.