از طریق این تعامل، ما توانستیم درک بهتری از اولویتهای آزمایش به دست آوریم، و سپس توجه خود را به ایجاد اسکریپتها و چارچوب برای تولید خودکار کد پوششی که در آزمایش عملکرد API استفاده میشود، معطوف کردیم. با این ایجاد شده، ما شروع به کار بر روی نوشتن موارد آزمایشی واقعی کردیم. حتی اگر ما به نقطه عطف 1000 مورد آزمایشی رسیده ایم، فقط حدود 70٪ از ویژگی های SAI را پوشش می دهد. کار ما با شرکا و جامعه برای ایجاد 30 درصد باقیمانده از موارد آزمایش ادامه دارد.
به تلاش برای ایجاد SAI بهتر بپیوندید
به تلاش در https://github.com/opencomputeproject/SAI/tree/master/ptf بپیوندید
فن آوری
زمانی که حدود یک سال پیش این پروژه را شروع کردیم، تعاریف عملکردی بسیار کمی از ویژگی ها وجود داشت که به این معنی بود که عملکرد واقعی آنها تا حدودی مبهم بود. موارد آزمایشی وجود داشت، اما چندین سال بود که به روز نشده بودند. کیفیت تست نیز با پوشش تست لکه دار و کمبود تست های استاندارد ضعیف بود. در نهایت، فرآیند ایجاد یک آزمون دشوار و زمانبر بود و یکی از موانع اصلی برای ایجاد آزمایشهای جدید بود.
تست های جدید به نوآوری در شبکه ها کمک می کند
SAI یک API پیچیده با بیش از 50 شی و 1000 ویژگی است. هر یک از این ویژگی ها باید به روشی مشابه اجرا شوند تا اطمینان حاصل شود که هر سوئیچ در شبکه به یک فرمان به یک روش پاسخ می دهد. اما مستندات SAI در مورد معنایی بحث نمی کند، که به فروشندگان سخت افزار شبکه اجازه می دهد تا ویژگی های SAI را به روش های مختلف تفسیر کنند. اگر فروشندگان از عملکردهای توصیف شده در اسناد طراحی API بسیار دور شوند، می تواند بر قابلیت همکاری چند فروشنده تأثیر بگذارد.
Sunil Ahluwalia، اینتل
نمونههای عالی این پردازندههای پارچه هوشمند Intel® Tofino® (Intel Tofino™ IFPs) هستند. IFP های Tofino اینتل از قابلیت برنامه ریزی P4 استفاده می کنند که می تواند از پروتکل های جدید یا پشته های پروتکل سفارشی شده پشتیبانی کند. با قابلیت Match-Action IFP های Tofino اینتل، قابلیت پردازش بسته های پیشرفته را می توان در صفحه داده شامل تعادل بار، QoS، تابع صفحه کاربر (UPF) و موارد دیگر ارائه کرد. در نهایت، IFP های Tofino اینتل، تله متری پیشرفته را برای دید در جریان ترافیک شبکه تسهیل می کنند. همه این ویژگیهای فعالشده با P4 را میتوان با افزودن ویژگیهای SAI پیکربندی و مدیریت کرد.
توسعه موارد آزمایشی
یکی از پاسخهای محبوب به این چالش، سیستمهای عامل شبکه چند فروشنده (NOS) مانند SONiC است که به مدیران شبکه مرکز داده یک رابط واحد برای مدیریت و راهاندازی شبکه چند فروشنده خود میدهد. این NOSها به یک رابط برنامه نویسی کاربردی (API) به نام رابط انتزاعی سوئیچ (SAI) برای ترجمه دستورات NOS به زبان صفحه کنترلی هر سوئیچ و بالعکس وابسته هستند.
به عنوان بخشی از توسعه موارد آزمایشی، ما با جوامع توسعه دهندگان SONiC و SAI و همچنین شرکای کلیدی درگیر شدیم. هدف از این تعامل اطمینان از این بود که موارد آزمایشی می توانند به همه کاربران SAI کمک کنند تا قابلیت همکاری چند فروشنده را توسعه دهند. مایکروسافت برای پروژه مهم بود زیرا SONiC را ایجاد کرده بود و کاربر بزرگی از NOS بود. ما میخواستیم دیگران را در جامعه – هم مراکز داده و هم ارائهدهندگان خدمات ارتباطی – درگیر کنیم تا مطمئن شویم که موارد آزمایشی توسط جامعه پذیرفته میشوند.
من علاقه و هیجان زیادی را از سوی جوامع SAI و SONiC در پاسخ به بهبود تست SAI دیدهام. ما اپراتورهای مرکز داده و تولیدکنندگان تجهیزات شبکه بیشتری را تشویق میکنیم که از این چارچوب استفاده کنند و در موارد آزمایشی باقیمانده مشارکت داشته باشند تا بتوانیم این چارچوب را کامل کنیم. تلاشهای شما واقعاً باعث میشود که SAI فعال شود و نسل بعدی شبکهها را فعال کند.
به دلیل افزایش استفاده از صفحات کنترل اختصاصی و پروتکل های داخلی و پشته های نرم افزار کنترل، شبکه های مرکز داده پیچیده تر می شوند. ماهیت بسته این فناوریها، مدیریت شبکههای چند فروشنده را برای اپراتورهای مرکز داده چالشبرانگیزتر میکند.
SAI توسط مایکروسافت برای استفاده با SONiC NOS ایجاد شده است. مایکروسافت در سال 2015 هر دو پلتفرم نرم افزاری را به پروژه محاسبات باز (OCP) کمک کرد تا آنها را منبع باز و به طور گسترده در دسترس قرار دهد. SAI قرار است به سهولت ادغام سوئیچ های جدید با SONiC کمک کند، اما تا همین اواخر هیچ پلت فرم آزمایشی جامعی وجود نداشت که عملکرد SAI را در هر پلت فرم سوئیچ تایید کند. این بدان معناست که تلاش زیادی برای ادغام یک سوئیچ جدید در شبکه مرکز داده مورد نیاز است و تیمهای ادغام باید از طریق چالش نقشهبرداری عملکرد سوئیچ در SONiC کار کنند.
یک چارچوب تست SAI جدید
برای پر کردن این خلأ آزمایش، اینتل سیستمی را برای تولید خودکار چارچوب تست SAI ایجاد کرده است که در بالای آن موارد آزمایشی خاص را می توان نوشت. این تستهای با کیفیت بهتر و فرآیندی را فراهم میکند که برای آزمایش ویژگیهای جدید API قابل توسعه است. این چارچوب با همکاری مایکروسافت، گوگل، گروه علی بابا و جامعه SAI ایجاد شد. در حال حاضر، ما 1000 مورد آزمایشی را ارائه کردهایم که امروزه میتوان از آنها استفاده کرد.
در حالی که اپراتورهای مرکز داده چیزهای زیادی از بهبود تست SAI به دست می آورند، تولید کنندگان تجهیزات شبکه نیز همین کار را می کنند. هنگامی که این فروشندگان ویژگیهای جدید ابتکاری را توسعه میدهند، میتوانند یک ویژگی جدید و مورد آزمایشی ایجاد کنند تا امکان ادغام آسان در NOS را فراهم کنند.