به تیم نویسندگان ما بپیوندید
حسن محمدزادهحسن محمدزاده
بازگشت به نمونه‌کارها

اوفیلم — پلتفرم پخش آنلاین ویدیو با معماری مقیاس‌پذیر

نقش من: طراحی معماری، توسعه‌ی کامل بک‌اند و فرانت‌اند، و پیاده‌سازی زیرساخت DevOps (Full-Stack + DevOps)
Nuxt 3LaravelPostgreSQLElasticsearchDockerKubernetesNginxGitLab CI/CD

معرفی پروژه

اوفیلم یک پلتفرم پخش آنلاین ویدیو است که با تمرکز ویژه روی مقیاس‌پذیری، پایداری در ترافیک بالا و تجربه‌ی کاربری روان طراحی و توسعه داده شده. بر خلاف پروژه‌های معمول، تمرکز اصلی این پروژه فقط روی فیچرهای کاربری نبود، بلکه از روز اول معماری‌ای طراحی شد که بتواند زیر بار سنگین کاربران هم‌زمان، بدون افت کیفیت سرویس، به کار خودش ادامه دهد.

امکانات کلیدی

  • پخش تطبیقی ویدیو (Adaptive Bitrate Streaming) که کیفیت پخش را بر اساس سرعت اینترنت کاربر به‌صورت خودکار تنظیم می‌کند
  • سیستم صف پردازش (Queue) برای ترنسکد خودکار ویدیوهای آپلودی به چندین کیفیت مختلف، بدون مسدودکردن درخواست‌های کاربر
  • موتور جست‌وجوی پیشرفته با Elasticsearch برای جست‌وجوی سریع و دقیق در میان هزاران عنوان
  • سیستم پیشنهاد محتوا (Recommendation) بر اساس سابقه‌ی تماشای هر کاربر
  • پنل مدیریت محتوا با امکان آپلود دسته‌ای، زمان‌بندی انتشار و مدیریت دسترسی کاربران
  • رندر سمت سرور (SSR) با Nuxt 3 برای بارگذاری سریع‌تر صفحات و سئوی بهتر

زیرساخت و DevOps

یکی از مهم‌ترین بخش‌های این پروژه، زیرساخت DevOps آن بود. سرویس‌ها به‌صورت کانتینریزه با Docker توسعه داده شدند و برای مدیریت مقیاس‌پذیری افقی، از Kubernetes برای ارکستریشن کانتینرها استفاده شده؛ یعنی با افزایش ترافیک، سیستم می‌تواند به‌صورت خودکار instance‌های بیشتری از سرویس‌ها را بالا بیاورد. ترافیک ورودی هم پشت Nginx به‌عنوان reverse proxy و load balancer توزیع می‌شود. برای استقرار، یک پایپ‌لاین CI/CD راه‌اندازی شده که هر تغییر کد، بعد از عبور از تست‌های خودکار، بدون قطعی سرویس (Zero-downtime Deployment) روی محیط عملیاتی مستقر می‌شود. دیتابیس اصلی PostgreSQL است و برای افزایش توان پاسخ‌گویی در حجم بالای درخواست، از معماری میکروسرویس برای جدا کردن بخش‌های مستقل سیستم (مثل سرویس ترنسکد و سرویس اصلی) استفاده شده است.

نقش من

در این پروژه، از طراحی معماری اولیه تا پیاده‌سازی کامل بک‌اند (Laravel)، فرانت‌اند (Nuxt 3) و زیرساخت DevOps (Docker، Kubernetes، Nginx، CI/CD) بر عهده‌ی من بوده است. همچنین مسئولیت پایش و بهینه‌سازی مداوم عملکرد سیستم زیر بار ترافیک واقعی هم با من بوده است.

اوفیلم — پلتفرم پخش آنلاین ویدیو با معماری مقیاس‌پذیر | حسن محمدزاده