سرفصل مطالب نوشته
انگیزه -مقدمه
وقتی عکسی را در اینستاگرام مشاهده میکنیم، میتوانیم سیگنالهای مختلفی را از عکس دریافت کنیم که به ما مربوط میشود: این که آیا عکس پرندهای در آن وجود دارد، حاوی غذای آبخوری است یا عکسی از یک رشته کوه است. در اینستاگرام ، ما سعی میکنیم سیگنالهای مختلفی را توسعه دهیم تا محتوا را بهتر به افراد در سطوح مختلفمان، مانند فید Home و صفحه کاوش ، توصیه کنیم .
همانطور که محصول مقیاس شده است، سازمان ما نیز افزایش یافته است، و در نتیجه تیم های متعددی برای تولید سیگنال با هم کار می کنند (تیم هایی که بر ایجاد سیگنال هایی مانند پاراگراف بالا تمرکز می کنند: برای مثال یک آشکارساز پرنده، یا یک آشکارساز کوه) و مصرف سیگنال (مثلاً). ، فید صفحه اصلی، صفحه کاوش ) ایجاد روابط چند به چند بین آنها.
تصویر زیر: مثالی از روابط چند به چند که ممکن است رخ دهد

این روابط چند به چند می تواند باعث تعدادی از مسائل بالقوه شود، مانند:
- هر تیم تولید کننده سیگنال باید با هر تیم مصرف کننده سیگنال در مورد چگونگی ایجاد سیگنال، نحوه تحویل سیگنال، نحوه به روز رسانی آن و غیره مذاکره کند.
- با زوم کردن در تحویل سیگنال، هر تیم مصرف سیگنال برای استفاده از سیگنال ارائه شده باید با زیرساخت های مختلف ارائه شده توسط تیم تولید کننده سیگنال سازگار شود.
- قابلیت اطمینان سیستم، نظارت بر کیفیت، و مدیریت چرخه عمر سیگنال (برقراری/ ارتقاء/ استهلاک) باید با هر جفت تیم مذاکره شود زیرا زیرساخت ها و موارد استفاده می توانند متفاوت باشند.
این همان جایی است که پلتفرم سیگنال ها وارد می شود. پلت فرم سیگنال ها بین این رابطه چند به چند قرار می گیرد و انتشار و مصرف سیگنال را با ارائه یک API و زیرساخت یکپارچه متمرکز می کند.
تصویر زیر: افزودن یک لایه غیرمستقیم بین تولیدکنندگان سیگنال و مصرف کنندگان سیگنال

نمایی از پلتفرم سیگنال ها
بیایید به یک نمای کوچک از اینکه نیازها و طراحی پلت فرم سیگنال چگونه به نظر می رسد شیرجه بزنیم. ما دو حوزه اصلی را پوشش خواهیم داد: شروع جریان و پردازش پس از سیگنال.
تصویر زیر: نمای کلی در سطح بالا از جریان پلت فرم سیگنال ها

شروع جریان
زمانهای مختلفی وجود دارد که یک تیم میخواهد یک سیگنال محاسبه شود. در بیشتر موارد، به نظر می رسد که این در زمان آپلود یک عکس است. با این حال، اگر سیگنال حیاتی نیست، ممکن است بخواهیم محاسبه را به تعویق بیندازیم، یا ممکن است بخواهیم سیگنال را در زمان دیگری دوباره محاسبه کنیم. بخشی از مسئولیت پلت فرم سیگنال، ارائه انتخاب این نقاط ورودی است که به جریانی که منبع سیگنال است، کلید می خورد. علاوه بر این، پلت فرم سیگنال ها زیرساختی را برای گسترش مجموعه نقاط ورودی موجود فراهم می کند و به تیم های اینستاگرام اجازه می دهد در صورت لزوم نقاط ورودی بیشتری را اضافه کنند.
مدل آبشار
بیشتر این سیگنال ها از مدل های یادگیری ماشین می آیند. چیزی که یک لایه پیچیدگی اضافی را به مشکل وارد می کند این است که این مدل های یادگیری ماشینی اغلب می توانند بر خروجی سایر مدل های یادگیری ماشین تکیه کنند. در نتیجه، شروع جریان به سادگی ارائه یک تماس برای آپلود عکس نیست. ما باید یک رابط برای منتظر تماس های این مدل ها که در زمان آپلود عکس اجرا می شوند، فراهم کنیم و خروجی ها را به شکل متعارف جمع آوری کنیم تا به مدل های پایین دستی منتقل شوند و اجرا شوند.
پر کردن سیگنال ها
به دلایل مختلف، سیگنالهای اینستاگرام ممکن است برای بخشی از آپلودها محاسبه نشود. این ممکن است به دلیل خطاهایی در سیستم باشد، یا سیگنالی به تازگی وارد شده است و هنوز برای بخش زیادی از آپلودها اجرا نشده است. در نتیجه، مشتری پلت فرم سیگنال ممکن است بخواهد یک محاسبه مجدد adhoc مجموعه ای از سیگنال ها را در صف قرار دهد. ما نه تنها میخواهیم یک نقطه ورود به جریان را برای این منظور فراهم کنیم، بلکه میخواهیم یک رابط در بالای آن ایجاد کنیم تا امکان سلفسرویس فراهم شود.
پردازش پست سیگنال
پس از اجرای جریان و جمع آوری سیگنال، کار ما هنوز تمام نشده است. همانطور که قبلاً بحث شد، سیگنال به روشهای مختلفی مانند ارسال به ذخیرهسازی (که بعداً بازیابی میشود) یا به یک جریان زمان واقعی (برای استفاده فوری از اطلاعات) تحت فشار قرار میگیرد.

در پایان، ما این را در یک جریان UI مختصر قرار می دهیم و به مشتریان خود اجازه می دهیم سیگنال های خود را مشاهده، مدیریت و نظارت کنند.
ملاحظات اضافی
در کنار ارائه جریان اصلی بازیابی سیگنالهای اینستاگرام و پردازش، سه مشکل دیگر نیز وجود دارد که باید در نظر گرفت:
- ارائه اجزای حیاتی مرتبط با سلامت سیستم ما و در نتیجه بخشهایی از اینستاگرام که در آن از این سیگنالها استفاده میشود که در هنگام ساختن سیستمهای ما در مقیاس اینستاگرام یک ملاحظات کلیدی است.
- تضمین کیفیت سیگنال که برای آن نظارت بر توزیع سیگنال را از طریق شاخص پایداری جمعیت ارائه می کنیم
- فعال کردن مدیریت چرخه حیات سیگنال که برای آن تنظیم خودکار پارامتر آنلاین را فراهم کردهایم
مقیاس گذاری با اینستاگرام
ما به عنوان ارائهدهنده اصلی سیگنالهای اینستاگرام برای موارد استفاده پایین دستی حیاتی، تعهدی نسبت به قابلیت اطمینان و تأخیر کم داریم. این مشکل زمانی پیچیدهتر میشود که باید مقیاس ترافیک اینستاگرام و همچنین توسعه گسترده سیگنال داخلی و مصرفکنندگان پایین دستی را در نظر بگیریم.
نتیجه:
در نتیجه، ما معیارهای متعدد مربوط به تحویل سیگنال و تأخیر را پیگیری میکنیم و در بهینهسازی زیرساختهای خود برای انجام تعهدات خود با این معیارها سرمایهگذاری کردهایم. علاوه بر این، ما در صورت امکان از زیرساخت های مشترک استفاده می کنیم تا قفل پیروزی ها را در این فضا باز کنیم و به ما این امکان را می دهد که روی مسائل خاص دامنه و بهینه سازی های اضافی تمرکز کنیم.
یک پیروزی اخیر در این فضا، انتقال راه حل ذخیره سازی پس از پردازش ما به یک زیرساخت مشترک بود.
در ابتدا ما یک راه حل ذخیره سازی سفارشی برای مورد استفاده خود ارائه کردیم، اما به سرعت قدیمی، کارآمدتر و غیرقابل اعتماد شد.
این به ما این امکان را میدهد تا برندههای بهرهوری را که با زیرساختهای اختصاصی بهروز هستند را باز کنیم.
نظارت بر توزیع سیگنال
نظارت بر توزیع سیگنال برای اطمینان از ثبات زمان واقعی خروجی مدل و سلامت سیگنال های عبوری از پلت فرم ما حیاتی است. تنها ردیابی توان سیگنال کافی نیست.
روشی که ما برای نظارت بر توزیع سیگنال پیادهسازی کردهایم، استفاده از شاخص پایداری جمعیت (PSI) برای اندازهگیری جامع تغییر توزیع امتیاز سیگنال است.
با نرمال کردن PSI، میتوانیم یک محاسبه استاندارد در سراسر سیگنالهای ارائهشده روی پلتفرم ایجاد کنیم. این ما را قادر میسازد تا آستانههایی را برای تشخیص ناهنجاری تنظیم کنیم و از پایداری توزیع زمان واقعی سیگنالها اطمینان حاصل کنیم.
مدیریت چرخه حیات سیگنالهای اینستاگرام
چرخه عمر سیگنال شامل نصب سیگنالهای اینستاگرام به پلت فرم، ارتقاء سیگنال و منسوخ کردن سیگنال است. انتزاع، اتوماسیون و تقسیم بندی مناسب برای اطمینان از اینکه ما به هدف پلتفرم وفادار بمانیم، کلیدی است.
در نتیجه، ما باید آزمایشهای آنلاین را برای تعیین، تأیید و نهایی کردن پارامترها در ارتقا یا نصب سیگنال اجرا کنیم.
این به یک فرآیند دستی وقت گیر برای تنظیم دستی این پارامترها تبدیل می شود. برای کاهش این مشکل، از بهینهسازی بیزی استفاده میکنیم تا با تنظیم خودکار این پارامترها، به نتایج آنلاین مورد نظر خود برسیم.
با متصل کردن انتزاعهای موارد استفاده پاییندست خود به تنظیم پارامترهای خودکار، به تولیدکنندگان سیگنال خود اجازه میدهیم تا سیگنالها را بهطور خودکار ارتقا دهند.
کلمات فراق
طراحی یک پلت فرم سیگنالهای اینستاگرام برای خدمت به تمام اینستاگرام مستلزم رسیدگی به مشکلات بزرگ و مرتبط با یکدیگر میباشد.
همچنین وجدا کردن اجزای قابل اجرا به منظور طراحی مناسب زیرساخت پایدار و توسعه پذیر در کناار آن است.
ما متعهد به ارائه یک پلت فرم قابل اعتماد، با کیفیت و جامع هستیم تا تیمهای اینستاگرام را قادر به ارائه بهترین ارزش کاربری کنند. اگر علاقه مند به پیوستن به یکی از تیم های مهندسی ما هستید، لطفا از صفحه مشاغل ما دیدن کنید .
مقالات مرتبط