تست سایه

ساخت وبلاگ

آزمایش سایه یکی از روش های کاهش ریسک قبل از تولید است. آزمایش سایه نیز به عنوان "Shadow Deployment" یا "Shadowing Traffic" شناخته می شود و شباهت هایی با "راه اندازی تاریک" دارد.

چه موقع باید استفاده کرد

وقتی می خواهید محیط فعلی (V-Current) را با محیط کاندید با ویژگی جدید (V-Next) جایگزین کنید، آزمایش سایه خطرات را کاهش می دهد. این رویکرد، نظارت و ثبت تفاوت های بین دو محیط است، سپس قبل از معرفی یک ویژگی/آزادی جدید، همه خطرات را مقایسه کرده و کاهش می دهد.

در موارد آزمایشی ما، پوشش کد بسیار مهم است، اما گاهی اوقات ارائه پوشش کد می تواند برای تکرار ترکیبات و احتمالات واقعی دشوار باشد. در این رویکرد، برای آزمایش محیط V-Next که در کنار هم استقرار داریم، همان ترافیک را با محیط V-Current تکرار می کنیم و همان ترافیک را به محیط V-Next هدایت می کنیم، تنها تفاوت این است که ما هیچ پاسخی را بر نمی گردانیم. از محیط V-Next به کاربران، اما ما این پاسخ ها را برای مقایسه با پاسخ های V-Current جمع آوری می کنیم.

Shadow Testing Overview

با اشاره به یکی از اصول مهندسی آشوب، به اهمیت نمونه برداری از ترافیک واقعی مانند زیر اشاره می کند:

سیستم ها بسته به محیط و الگوهای ترافیک رفتار متفاوتی دارند. از آنجایی که رفتار استفاده می تواند در هر زمان تغییر کند، نمونه برداری از ترافیک واقعی تنها راه برای گرفتن مطمئن مسیر درخواست است. برای تضمین اعتبار روشی که سیستم در آن اعمال می شود و ارتباط آن با سیستم فعلی مستقر شده، Chaos قویاً ترجیح می دهد مستقیماً روی ترافیک تولید آزمایش کند.

با این رویکرد آزمایش سایه، ما از رفتار مشتری واقعی در محیط V-Next با نمونه برداری از ترافیک واقعی و کاهش خطراتی که کاربران ممکن است در تولید با آن مواجه شوند، استفاده می کنیم. در همان زمان، زیرساخت محیط V-Next را برای مقیاس بندی با ترافیک نمونه برداری واقعی آزمایش می کنیم. V-Next باید با همان روش V-Current مقیاس شود. ما در حال آزمایش رفتار واقعی محصول هستیم و از آنجایی که ترافیک در محیط V-next تکرار می شود، تأثیری بر تولید برای آزمایش ویژگی های جدید ندارد.

شباهت هایی با Dark Launching وجود دارد، Dark Launching پیشنهاد می کند که ویژگی جدید را در کد تولید ادغام کند، اما کاربران نمی توانند از این ویژگی استفاده کنند. در بک اند می توانید ویژگی خود را آزمایش کنید و عملکرد را تا زمانی که قابل قبول باشد بهبود دهید. همچنین شبیه به ویژگی Toggles است که به شما امکان می دهد ویژگی جدید خود را در تولید در سطح UI فعال یا غیرفعال کنید. با این رویکرد ویژگی جدید شما برای کاربران قابل مشاهده خواهد بود و می توانید بازخورد جمع آوری کنید. استفاده از Dark Launching با ویژگی Toggles می تواند برای معرفی یک ویژگی جدید بسیار مفید باشد.

قابل اجرا برای

  • استقرار تولید: V-Next در تست Shadow همیشه به طور جداگانه کار می کند و تولید را تحت تأثیر قرار نمی دهد. کاربران با این تست تحت تاثیر قرار نمی گیرند.
  • زیرساخت: آزمایش سایه که همان ترافیک را تکرار می کند، در محیط آزمایشی می توانید همان ترافیک را در تولید داشته باشید. این به تولید سناریوهای آزمایش زندگی واقعی کمک می کند
  • Handling Scale: تمام ترافیک تکرار می شود، و شما این فرصت را دارید که ببینید سیستم شما چگونه مقیاس می شود.

چارچوب ها و ابزارهای تست سایه

ابزارهایی برای اجرای آزمایش سایه وجود دارد. هدف اصلی این ابزارها مقایسه پاسخ های V-Current و V-Next و یافتن تفاوت هاست.

یکی از محبوب ترین ابزارها Diffy است. در توییتر ایجاد و استفاده شد. اکنون نویسنده اصلی و یکی از کارمندان سابق توییتر نسخه خود را از این پروژه به نام Opendiffy حفظ می کنند. توییتر این ابزار را در وبلاگ مهندسی خود به عنوان «تست خدمات بدون آزمون نوشتن» معرفی کرد.

از امروز Diffy در تولید توسط شرکت های Twitter، Airbnb، Baidu و Bytedance استفاده می شود. دیفی ویژگی تست سایه را اینگونه توضیح می دهد:

Diffy با استفاده از نمونه های در حال اجرا کد جدید و کدهای قدیمی در کنار هم، اشکالات احتمالی را در سرویس شما پیدا می کند. Diffy به عنوان یک پروکسی رفتار می کند و هر درخواستی را که دریافت می کند به هر یک از نمونه های در حال اجرا چندپخش می کند. سپس پاسخ ها را با هم مقایسه می کند و هرگونه رگرسیونی را که ممکن است از آن مقایسه ها ظاهر شود گزارش می دهد. فرض برای Diffy این است که اگر دو پیاده سازی سرویس پاسخ های «مشابه» را برای مجموعه ای از درخواست ها به اندازه کافی بزرگ و متنوع برگردانند، آن گاه این دو پیاده سازی را می توان معادل تلقی کرد و پیاده سازی جدیدتر بدون رگرسیون است.

Diffy Shadow Testing Architecture

نتیجه

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

نرم افزار مفید تریدر...
ما را در سایت نرم افزار مفید تریدر دنبال می کنید

برچسب : نویسنده : احمد شاملو بازدید : 37 تاريخ : چهارشنبه 23 فروردين 1402 ساعت: 15:03