مهاجرت نتفلیکس به Amazon Aurora؛ افزایش ۷۵ درصدی عملکرد و کاهش ۲۸ درصدی هزینه‌ها

نتفلیکس با انتقال زیرساخت پایگاه‌داده رابطه‌ای خود به سرویس مدیریت‌شده Amazon Aurora، به بهبود چشمگیر عملکرد و کاهش قابل توجه هزینه‌های عملیاتی دست یافته است.

نتفلیکس فرآیند یکپارچه‌سازی گسترده‌ای را برای انتقال زیرساخت پایگاه‌داده‌های رابطه‌ای خود به Amazon Aurora به پایان رسانده و اعلام کرده که این مهاجرت تا ۷۵ درصد بهبود عملکرد و ۲۸ درصد کاهش هزینه‌ها را به همراه داشته است. این شرکت با کنار گذاشتن PostgreSQL خودمدیریت‌شده روی EC2 و حرکت به سمت Aurora، به روند رو‌به‌رشدی در صنعت پیوسته که هدف آن کاهش سربار عملیاتی از طریق استفاده از پلتفرم‌های ابری بومی است.

تیم Online Data Stores (ODS) نتفلیکس پیش از این با محیطی پراکنده از پایگاه‌داده‌ها مواجه بود و مدیریت باینری‌های سفارشی، اعمال وصله‌ها و مقیاس‌پذیری دستی، بار عملیاتی سنگینی را تحمیل می‌کرد. معماری قبلی که بر PostgreSQL توزیع‌شده و خودمدیریت‌شده متکی بود، با مشکلاتی مانند نوسان تأخیر و فرآیندهای پیچیده بازیابی در زمان خرابی همراه بود. مهاجرت به Amazon Aurora PostgreSQL-Compatible Edition با هدف یکپارچه‌سازی راهبرد پایگاه‌داده‌ها و در عین حال حفظ سازگاری با PostgreSQL برای توسعه‌دهندگان انجام شد.

نتایج این مهاجرت به‌سرعت در سرویس‌های حیاتی نتفلیکس نمایان شد. پلتفرم تحویل مستمر Spinnaker کاهش ۵۰ درصدی میانگین تأخیر را تجربه کرد و این عدد از ۶۷.۵۷ میلی‌ثانیه به ۴۱.۷۰ میلی‌ثانیه رسید. سرویس Policy Engine نیز بهبود چشمگیرتری داشت و تأخیر برخی اندپوینت‌های کلیدی آن تا ۷۵ درصد کاهش یافت؛ از ۲۶.۷۲ میلی‌ثانیه به ۶.۵۱ میلی‌ثانیه. این بهبودها عمدتاً به معماری Aurora نسبت داده می‌شوند که در آن لایه محاسبات از ذخیره‌سازی جدا شده و از رویکرد نوشتن مبتنی بر لاگ استفاده می‌شود. این طراحی امکان تخصیص ۷۵ درصد حافظه نمونه به بافرهای اشتراکی را فراهم می‌کند؛ رقمی که در PostgreSQL استاندارد معمولاً بین ۲۵ تا ۴۰ درصد است.

عمار خاکو، مهندس ارشد نرم‌افزار در تیم ODS نتفلیکس، درباره این تغییر می‌گوید: «دیگر نیازی نیست باینری‌های سفارشی را روی EC2 بسازیم و مستقر کنیم یا وصله‌های امنیتی و متریک‌ها را خودمان مدیریت کنیم. استفاده از Aurora PostgreSQL مدیریت‌شده به ما اجازه می‌دهد روی منطق کسب‌وکار و الگوهای دسترسی به داده تمرکز کنیم.»

تجربه نتفلیکس مشابه مسیر سایر شرکت‌های بزرگ است. سامسونگ الکترونیکس بیش از ۱.۱ میلیارد کاربر را از پایگاه‌داده‌های قدیمی Oracle به Aurora منتقل کرده و پاناسونیک اویونیکس نیز از کاهش ۸۰ درصدی هزینه‌ها و بهبود سرعت کوئری‌ها پس از مهاجرت خبر داده است. این نمونه‌ها نشان می‌دهند حذف هزینه‌های لایسنس و کاهش بار مدیریتی، عامل اصلی بازگشت سرمایه در این مهاجرت‌هاست.

با این حال، Aurora راه‌حل همه‌کاره برای تمام بارهای کاری نیست. برخی بنچمارک‌های مستقل نشان می‌دهند در سناریوهای خاص، مانند بارهای کاری سنگین time-series، افزونه‌هایی نظیر Timescale می‌توانند نرخ ingestion بالاتر و هزینه ذخیره‌سازی کمتری نسبت به Aurora ارائه دهند. همچنین گزینه‌های SQL توزیع‌شده مانند CockroachDB یا TiDB با پشتیبانی از چند نویسنده همزمان، محدودیت تک‌نویسنده‌ای Aurora را برطرف می‌کنند؛ محدودیتی که در اپلیکیشن‌های جهانی با نوشتن سنگین می‌تواند به گلوگاه تبدیل شود.

با وجود این تفاوت‌ها، مزایای عملیاتی Aurora برای نتفلیکس کاملاً ملموس بوده است. این مهاجرت از قابلیت failover سریع Aurora استفاده کرده که در آن replicaهای خواندنی می‌توانند در کمتر از ۱۰۰ میلی‌ثانیه به نویسنده ارتقا یابند؛ موضوعی که در مقایسه با مداخلات دستی گذشته، دسترس‌پذیری سیستم را به‌طور قابل توجهی افزایش داده است. ترکیب این پایداری با حذف کارهای سنگین و غیرمتمایز، به نتفلیکس کمک می‌کند با چابکی بیشتری از پایگاه کاربری عظیم خود پشتیبانی کند.