Performance Vitals: یک سیستم امتیازدهی یکپارچه برای هدایت سلامت عملکرد و اولویت بندی | توسط Coinbase | آگوست 2022

Tl;dr: پست زیر نحوه اندازه گیری عملکرد مشتری را در محصولات و تیم های چندکاره در Coinbase شرح می دهد. توسط لئوناردو زیزامیا، مهندس نرم افزار ارشد کارکنان از سال 2018 که تیم وب Coinbase فقط از چند مهندس تشکیل شده بود، چیزهای زیادی تغییر کرده است. در آن زمان، در حالی که برای سریع‌تر

کد خبر : 246898
تاریخ انتشار : جمعه ۴ شهریور ۱۴۰۱ - ۱۸:۳۱
Performance Vitals: یک سیستم امتیازدهی یکپارچه برای هدایت سلامت عملکرد و اولویت بندی |  توسط Coinbase |  آگوست 2022


Tl;dr: پست زیر نحوه اندازه گیری عملکرد مشتری را در محصولات و تیم های چندکاره در Coinbase شرح می دهد.

توسط لئوناردو زیزامیا، مهندس نرم افزار ارشد کارکنان

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

در سال 2022، Coinbase اکنون مهندسانی دارد که در چندین محصول و چهار پلتفرم کار می کنند: React Web، React Native، Server Side Rendering و Chrome Extension. عملکرد در هر چهار پلتفرم قبلاً هرگز استاندارد نشده بود، بنابراین ما نیاز به بررسی چندین جنبه داشتیم: فقدان داده‌های کافی و کامل برای برخی از پلتفرم‌ها، از دست دادن کارایی زمانی که فرصت‌های عملکردی شناسایی نشدند، و اولویت‌بندی ثابت در همه تیم‌ها.

با دانستن این موضوع، Performance Vitals را معرفی کردیم: یک سیستم امتیازدهی سطح بالا که واضح، قابل اعتماد و قابل درک است. خلاصه کردن سلامت عملکرد یک برنامه کاربردی در یک امتیاز قابل اعتماد و سازگار به افزایش فوریت کمک می کند و توجه و منابع شرکت را به سمت پرداختن به هر فرصت عملکرد هدایت می کند.

گسترش Google Web Vitals

جامعه توسعه دهندگان وب دارای استاندارد Core Web Vitals برای کمک به اندازه گیری عملکرد مشتری است که ما آن را به طور فعال در Coinbase پذیرفته ایم و از آن استفاده می کنیم.

معیارهای حیاتی با آستانه‌هایی متمایز می‌شوند که هر اندازه‌گیری عملکرد را به‌عنوان یک دسته‌بندی می‌کند.خوب“، “نیاز به بهتر شدن دارد“، یا “فقیر“.

در زیر نمونه‌ای از جایی که آستانه می‌تواند برای یکی از Web Vitals، Time to First Byte باشد، آمده است.

برای طبقه‌بندی عملکرد کلی یک محصول مشتری، کوین‌بیس بهترین شیوه‌ها را دنبال می‌کند و از ارزش صدک ۸۵ تمام اندازه‌گیری‌ها برای آن صفحه یا صفحه استفاده می‌کند. به عبارت دیگر، اگر حداقل 85 درصد اندازه گیری ها در سایتی که آستانه “خوب” را برآورده می کند، سایت به عنوان دارای عملکرد “خوب” برای آن معیار طبقه بندی می شود. این معیار 10 امتیاز بالاتر از استاندارد Google Web Vitals است و به ما پهنای باند کافی برای رفع رگرسیون های احتمالی می دهد.

ابزار اولیه ای که ما برای ثبت این معیارها استفاده می کنیم، کتابخانه Perfume.js است، یک پوشش در اطراف Performance Observer API که به ما کمک می کند تمام Core Web Vitals را اندازه گیری کنیم. با این حال، از آنجایی که ما نگهدارنده اصلی این کتابخانه هستیم، از این فرصت برای تحقیق و توسعه راه‌حل‌های جدید پیرامون اندازه‌گیری عملکرد وب و روش‌های انتساب استفاده کردیم.

امروز ما یک معیار ابتکاری و داخلی را معرفی می کنیم که آن را آن می نامیم زمان مسدود شدن کل ناوبری (NTBT). NTBT مدت زمانی را که ممکن است برنامه از پردازش کد در طول پنجره 2 ثانیه پس از حرکت کاربر از صفحه A به صفحه B مسدود شود، اندازه گیری می کند. این روش فراخوانی می شود.

تصویر زیر نمونه‌ای از علامت عملکرد NTBT در coinbase.com است که به مهندس مشتری کمک می‌کند تا کار طولانی را ردیابی کرده و بهبود بخشد. پاسخگویی هنگام پیمایش بین صفحات

یکی دیگر از راه‌های مفید برای استفاده از Perfume.js این است که می‌توانیم تمام معیارها را با اطلاعات Navigator API غنی‌سازی کنیم تا بین تجربه‌های رده پایین و سطح بالا تفاوت قائل شویم.

پس از پذیرش و گسترش Web Vitals، گام بعدی برای ما این بود که این دانش را در سراسر پشته خود به کار گیریم.

کوین بیس عملکرد حیاتی

ما علاوه بر ساختن برنامه های وب، برنامه های تلفن همراه React Native و سرویس هایی را که داده های آنها را ارائه می دهند، می سازیم. ما از بهترین شیوه های Web Vitals دوباره استفاده کردیم و معیارهای جدیدی را برای ارائه برنامه های کاربردی React Native و خدمات Backend خود ایجاد کردیم. ما با هم آنها را “عملکرد حیاتی“، و آنها یک دید کلی از امتیازات عملکرد همه برنامه های ما، از پایین دست (مرورگر و برنامه ها) تا بالادست (سرویس های پشتیبان) به ما می دهند.

همانطور که در نمودار زیر مشاهده می شود، Performance Vitals به صورت سرتاسری، از پایین دست به بالادست تقسیم می شوند.

ایجاد React Native Vitals

هنگام ارزیابی عملکرد React Native، Vitals اولیه را توسعه دادیم رندر برنامه کامل شد و زمان مسدود کردن کل ناوبری.

  • رندر برنامه کامل (ARC): مدت زمانی را که طول می کشد از شروع برنامه تا ارائه کامل محتوا به کاربر بدون بارگیری نشانگرها اندازه گیری می کند. آستانه خوب 5 بر اساس راهنمایی از تحقیقات رسمی انجمن اندروید است.
  • زمان مسدود کردن کل ناوبری (NTBT): مدت زمانی که ممکن است برنامه از پردازش کد در طول پنجره 2s پس از حرکت کاربر از صفحه A به صفحه B مسدود شود را اندازه گیری می کند.

برای NTBT از دانش موجود در مورد زمان انسداد کل از Web Vitals برای تعیین آستانه برای تلفن همراه استفاده کردیم. با توجه به اینکه یک TBT خوب در وب 200 میلی‌ثانیه است و پیش‌بینی می‌کنیم تلفن همراه بیشتر طول بکشد، استاندارد وب را دو برابر کردیم تا به 400 میلی‌ثانیه برای موبایل برسیم.

ویدئوی زیر نشان می‌دهد که چگونه یک مهندس محصول می‌تواند وظایف طولانی را تشخیص دهد، زمان مسدود شدن کل را هنگام پیمایش بین صفحات و اندازه‌گیری‌های اضافی NTBT را اندازه‌گیری کند.

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

مشابه تجربه وب، Coinbase یک کتابخانه داخلی React Native Core Vitals برای اندازه‌گیری این عملکرد ساخت، با هدف: منبع باز کشف ما در سه ماهه آینده به جامعه باز می گردد.

ایجاد Backend Vitals

همانطور که با Web و React Native Vitals انجام دادیم، استاندارد Vitals را به خدمات باطنی شامل GraphQL و Backend Services گسترش دادیم.

دو معیاری که ما ابتدا ایجاد کردیم عبارتند از:

  • زمان پاسخگویی GraphQL (GRT): زمان رفت و برگشت برای سرویس GraphQL برای ارائه درخواست.
  • زمان پاسخ بالادستی (URT): زمان رفت و برگشت برای API Gateway برای ارائه خدمات باطنی.

برای تعیین یک امتیاز خوب برای نشان دادن تاخیر باطن، چندین نکته را در نظر گرفتیم:

  1. از منظر کاربر، زمان پاسخگویی سیستم زمانی که کمتر از 1 ثانیه باشد، بلافاصله احساس می شود.
  2. همچنین باید در نظر بگیریم که هزینه شبکه می‌تواند بین 50 میلی‌ثانیه تا 500 میلی‌ثانیه متغیر باشد، بسته به اینکه کاربر از کدام منطقه به محصول ما می‌رسد.
  3. بر اساس نقاط 1 و 2، تأخیر GraphQL نباید از 500 میلی‌ثانیه تجاوز کند، به این معنی که سرویس‌های بالادستی باید کمتر از 300 میلی‌ثانیه پاسخ دهند، زیرا درخواست‌های GraphQL باید منتظر کندترین نقطه پایانی باشند.
  4. بنابراین، به این نتیجه رسیدیم که آستانه نمره GRT Good 500 میلی‌ثانیه و امتیاز URT خوب 300 میلی‌ثانیه است.

حداقل برای Backend Vitals هدف ماست 99 درصد اندازه گیری ها برای هر درخواست ثبت شده برای رسیدن به آستانه “خوب”.

همانطور که به بهبود عملکرد خود ادامه می‌دهیم، سالانه امتیازهای خوب خود را مجدداً بررسی می‌کنیم، حتی به طور بالقوه آنها را در طول زمان کاهش می‌دهیم تا بتوانیم تاخیر بیشتری را برای کاربران خود کاهش دهیم.

ابزار دقیق برای Backend Vitals از سه قطعه ضروری تشکیل شده است. اول، ما از کتابخانه تجزیه و تحلیل داخلی خود برای تعریف ابرداده مانند محصول، پلت فرم و صفحات استفاده می کنیم. سپس، ما این اطلاعات را در API های خود منتشر می کنیم و در نهایت معیارهای عملکرد را با ابرداده های Web یا React Native به صورت مشترک قرار می دهیم.

قابلیت کشف و اولویت بندی Performance Vitals

با استفاده از همین امتیاز دهی متریک و نسبت دادن سیستم در سراسر تخصص های مختلف در Coinbase شناسایی زمینه های فرصت را آسان می کند و مهندسان فرانت اند و باطن را در تلاش های عملکردی همسو می کند.

همه Performance Vitals بر اساس داده‌های بلادرنگ از برنامه‌های تولید ما هستند و می‌توانند توسط آنها کشف شوند فیلترهای استانداردمانند: نام محصول، پلتفرم، صفحه، وارد شده است، منطقه جغرافیایی، عملیات GraphQL، و سرویس Backend.

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

در صورت رگرسیون عملکرد، از درصد رگرسیون استفاده می‌کنیم تا تعیین کنیم که آیا باز کردن یک حادثه و کاهش مشکل در اسرع وقت حیاتی است یا ایجاد اشکالی که می‌تواند در سرعت بعدی حل شود.

برنامه ریزی فصلی و سالانه

Performance Vitals برای برنامه ریزی KR عالی هستند، زیرا امتیاز آنها از 0 تا 100 اندازه گیری می شود و می توان آنها را به راحتی برای بیش از یک سال ذخیره کرد. زبان مشترک برای همه KRهای عملکرد نیز ایجاد اهداف مشترک برای تیم‌ها در سراسر سازمان را آسان‌تر می‌کند.

چند نمونه از نحوه قاب بندی KR های خود عبارتند از:

  • [Year KR] به امتیاز خوب NTBT 90٪، از 70٪ در برنامه موبایل Coinbase.
  • [Quarter KR] امتیاز خوب LCP را از 70٪ به 85٪ در وب کوین بیس بهبود دهید.

تا بعدی

Performance Vitals به یافتن یک زبان مشترک، چه استانداردسازی فیلترها، تنظیم KR های فصلی یا یکپارچه سازی یک سیستم امتیازدهی، بازمی گردد. از یک تیم کوچک که روی یک رگرسیون API کار می کند تا ابتکارات بزرگ که توسط چندین سازمان رهبری می شود، صحبت کردن به یک زبان به همه انواع اولویت بندی محصول کمک می کند.

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



لینک منبع : هوشمند نیوز

آموزش مجازی مدیریت عالی حرفه ای کسب و کار Post DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت عالی و حرفه ای کسب و کار DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت کسب و کار MBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
ای کافی شاپ
مدیریت حرفه ای کافی شاپ
خبره
حقوقدان خبره
و حرفه ای
سرآشپز حرفه ای
آموزش مجازی تعمیرات موبایل
آموزش مجازی ICDL مهارت های رایانه کار درجه یک و دو
آموزش مجازی کارشناس معاملات املاک_ مشاور املاک
ارسال نظر شما
مجموع نظرات : 0 در انتظار بررسی : 0 انتشار یافته : ۰
  • نظرات ارسال شده توسط شما، پس از تایید توسط مدیران سایت منتشر خواهد شد.
  • نظراتی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • نظراتی که به غیر از زبان فارسی یا غیر مرتبط با خبر باشد منتشر نخواهد شد.