به سوی آینده، روزی برای فناوری اطلاعات

زمانی که اروپا در تاریکی قرون وسطی به‌دنبال روزنه‌ای رو به روشنایی آگاهی و علم بود، یک نخبه ایرانی، دانشی را بنیان گذاشت که اکنون سراسر گیتی را متحول کرده است. آنچه امروز با عنوان دانش الگوریتم به‌عنوان مبنای علم انفورماتیک شناخته می‌شود، با توانمندی‌های حکیم «محمدبن موسی خوارزمی» بنیان نهاده شد …

مشاهده کامل خبر

عنوان اصلی خبر: به سوی آینده، روزی برای فناوری اطلاعات
لینک اصلی خبر
منبع: همشـهری  | عمادالدین قاسمی‌پناه، خبر‌نگار

اعطای اولین گواهینامه رتبه‌بندی مراکز داده به آسیاتک

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

به گزارش روابط عمومی سازمان نظام صنفی رایانه‌ای استان تهران، مراسم اعطای اولین گواهینامه رتبه‌بندی ارائه دهندگان خدمات مرکزداده در ایران با حضور امیر ناظمی، معاون وزیر ارتباطات و رئیس سازمان فناوری اطلاعات، برات قنبری، دبیر کل سازمان نصر کشور، بهنام ولی زاده، معاون دولت الکترونیک سازمان فناوری اطلاعات، مازیار مباشری، مدیر کل دفتر تدوین ضوابط فنی و …

 مشاهده کامل خبر

عنوان اصلی خبر: اعطای اولین گواهینامه رتبه‌بندی مراکز داده به آسیاتک/ نگاه ویژه بر استانداردهای جهانی
لینک اصلی خبر
منبع: سازمان نظام صنفی رایانه‌ای استان تهران

محاسبات در جایی که داده‌ها قرار گرفته‌اند

عنوان اصلی مقاله: Computing Where Data Resides
تاریخ انتشار و نویسنده: March 29th, 2021 – By: Ann Steffora Mutschler
وب‌سایت منتشر کننده: Semiconductor Engineering
لینک اصلی مقاله

ذخیره‌سازی محاسباتی و متعارف

رویکرد ذخیره‌سازی محاسباتی (رایانشی)، محدودیت‌های «توان» و «دیرکرد» را جابجا می‌کند.

در حالی که معماران سامانه‌ها، با چالش‌های هم‌زمانی چون افزایش تاثیر جابجایی مقادیر زیاد داده‌ها میان پردازنده‌ها، حافظه‌های سلسله‌مراتبی (Hierarchical memory) و ذخیره‌سازها بر عملکرد، مصرف انرژی و میزان دیرکرد (Latency) دست‌وپنجه نرم می‌کنند، کشش جدیدی برای استفاده از ذخیره‌سازی محاسباتی یا ذخیره‌سازی رایانشی (Computational storage) شروع به پدیدار شدن کرده‌است.

طبق گفته‌ی آی‌دی‌سی (IDC, International Data Corporation)، حجم داده‌های جهانی از ۴۵ زِتابایت در سال ۲۰۱۹ تا ۱۷۵ زِتابایت در سال ۲۰۲۵ رشد خواهد کرد. اما اساساً این داده‌ها بی‌فایده خواهند بود، مگر آنکه تجزیه و تحلیل شده و یا حداقل مقداری محاسبات بر روی آنها انجام شود؛ این در حالی است که انتقال این داده‌ها به پردازنده‌های مرکزی (CPU) بیشتر از خود محاسبات، انرژی صرف می‌کند. رویکردهایی مانند ذخیره‌سازی محاسباتی سعی در کاهش این مشکلات دارند.

مقایسه‌های متعدّدی میان ارزش نفت و داده (Data) انجام شده‌است. کارتک سِرینیواسان (Kartik Srinivasan)، مدیر بازاریابی گروه مراکز داده شرکت زیلینکس (Xilinx) می‌گوید: «به طور منطقی نفت و داده هر دو بی‌فایده هستند، مگر آنکه روی آنها کاری انجام دهید. نمی‌توانید نفت خام را در اتومبیلتان بریزید؛ برای اینکه قابل استفاده شود باید بر روی آن فرآوری انجام دهید. این حتی در رابطه با داده‌ها بیشتر چالش برانگیز است؛ چرا که میزان دیرکردی که در دسترسی به داده‌ها در طول فرایند تجزیه و تحلیل ایجاد می‌کنید، فوق‌العاده حیاتی است. هنگامی که یک کارگزار سهام، اطلاعاتی دریافت می‌کند که می‌گوید: «این معامله توسط موتور تحلیل بازار به شما پیشنهاد می‌شود.» اگر پنج دقیقه دیرتر به دستش برسد، دیگر فایده‌ای ندارد. بنابراین اگر تجزیه و تحلیل بر روی داده‌ها با میزان دیرکرد مناسب انجام نشود، ارزش داده از بین خواهد رفت.»

انواع و اقسام بسترهای اشتراک‌گذاری و پخش آنلاین (Streaming) داده‌ها باعث افزایش میزان تولید، مبادله و به اشتراک‌گذاری داده‌ها شده‌‎اند. طبق مشاهدات اسکات دورانت (Scott Durrant)، مدیر بازاریابی بخش ابری دیزاین‌ور آی‌پی (DesignWare IP) شرکت سیناپسیس (Synopsys)، همه‌گیری حاضر [کرونا] تقاضا را برای ظرفیت‌های بالاتر مراکز داده، سرعت شبکه، ظرفیت‌های ذخیره‌سازی و عملکرد بالاتر تشدید کرده است. «این امر با وجود کووید (Covid) به شکل نمایی افزایش یافته و انتظار می‌رود تغییراتی که در نحوه‌ی کار کردن، نحوه‌ی یادگیری، نحوه‌ی تعامل، و نحوه‌ی سرگرمی ما ایجاد شده‌اند، دائمی باقی بمانند.»

در نتیجه، اکنون طراحان «سامانه روی یک تراشه (SoC, System on a Chip)» که دستگاه‌هایی برای کاربردهای با سرعت بالا و دیرکرد پایین تولید می‌کنند، شروع به بررسی معماری‌های جایگزین از جمله ذخیره‌سازهای محاسباتی کرده‌اند.

دورانت می‌گوید: «هم‌زمان با این موضوع که می‌بینیم سامانه‌های کنترلی بیشتری برخط (Online) می‌شوند، اهمیت حیاتی میزان دیرکرد پایین نیز افزایش می‌یابد. در کنار این، یکی دیگر از موارد مورد توجه در مراکز داده، بهینه‌سازی در به‌کارگیری انرژی است. در حال حاضر یک حرکت بزرگ به سمت صفر کردن خالص رد پای کربنی در مراکز داده آغاز شده است که در واقع یک چالش بزرگ است؛ چرا که امروز مراکز داده مصرف‌کنندگان عظیم نیرو هستند؛ بنابراین از این پس دیگر تمام عناصر مرکز داده نقش خود را حول این چالش ایفا خواهند کرد. هر جا که صحبت از بهینه‌سازی مصرف نیرو شود، مراکز داده مسیر خود را به سمت آن چه به صورت سنّتی معماری دستگاه‌های همراه (Mobile) بوده است، تغییر می‌دهند. سال‌هاست که دستگاه‌های همراه در تلاش هستند با به حداقل‌رساندن مصرف نیرو و خاموش کردن آن قطعاتی از دستگاه که در یک زمان مشخص استفاده نمی‌شوند، عمر باتری خود را به حداکثر ممکن برسانند. امروز پیاده‌سازی‌های مشابهی در مراکز داده مشاهده می‌کنیم تا بهره‌وری نیرو به حداکثر رسانده شود. همچنین، معماری‌های جدیدی نیز برای پردازنده‌ها معرفی شده‌اند که به طور معمول در دستگاه‌های همراه استفاده می‌شدند. به عنوان نمونه، اکنون پردازنده‌های آرم (Arm) زیرساخت‌های مراکز داده را هدف قرار داده‌اند؛ ضمن آنکه پردازنده‌های آرم و ریسک-وی (RISC-V) به اندازه‌ی کافی آن آزادی دارند و باز هستند که بتوان آنها را برای یک بار کاری (Workload) خاص بهینه‌سازی کرد.»

تأثیر ذخیره‌سازی محاسباتی بر مصرف انرژی

تصویر ۱: تأثیر ذخیره‌سازی محاسباتی بر مصرف انرژی. منبع: سینوپسیس (Synopsys)، بیست و یکمین کنفرانس آی‌تریپل‌ای (IEEE) با موضوع اِچ‌پی‌سی‌سی (HPCC)، اوت ۲۰۱۹

این همان جایی است که ذخیره‌سازی محاسباتی، به کار می‌آید. سِرینیواسان می‌گوید: «ایده‌ی انجام رایانش مستقیماً بر روی داده‌ها از ابتدا مطرح بوده است. اما با تحول دیجیتال (Digital transformation)، اکنون سخت‌افزارهایی با قیمت معقول برای انجام تجزیه و تحلیل و نرم‌افزارهایی با چارچوب‌هایی که اجازه دهند آن تجزیه و تحلیل انجام شود، وجود دارند. اکنون این اجزاء به نحو مطلوبی در حال قرار گرفتن در کنار یکدیگر هستند؛ داده‌ها به شکل دیجیتال هستند، سخت‌افزارهای مقرون به صرفه موجود هستند، و چارچوب‌های نرم‌افزاری برای اجرا در دسترس هستند.»

البته، این دشوارتر از آن است که به نظر می‌رسد. استیون وو (Steven Woo)، همکار و مخترع برجسته در شرکت رَمبس (Rambus) می‌گوید: «دیسک‌ها و دیسک‌های متعددی مملو از داده‌ها وجود خواهند داشت، و ممکن است شما تنها به یک یا دو تکه از آنها نیاز داشته باشید، اما همه‌ی آنها باید جستجو شوند. روش مرسوم برای انجام این کار این است که همه چیز داخل دیسک‌ها را بردارید، آنها را به یک سی‌پی‌یو (CPU) منتقل کنید، و سپس سی‌پی‌یو همه چیز را جستجو کند و ۹۹٬۹۹۹٪ آنها را دور بیندازد. در واقع مقدار زیادی از کارهایی که انجام می‌دهد هَدر می‌رود. ممکن است به طریقی دیگر آرایه‌ای از دیسک‌ها وجود داشته باشد و سامانه به نحوی تنظیم شده باشد که تمام داده‌ها را به صورت موازی منتقل کند تا فرایند سریع‌تر شود؛ اما باز در نهایت، همچنان یک سی‌پی‌یو وجود دارد که در جستجوی داده‌ها بوده و خود یک گلوگاه می‌شود.»

وو می‌گوید: «این همان جایی است که ذخیره‌سازی محاسباتی واقعاً می‌درخشد. اگر هر یک از دیسک‌ها در خود کمی هوشمندی داشته باشند، چه رخ می‌دهد؟ آنگاه این امکان وجود خواهد داشت که به همه‌ی دیسک‌ها بگویید: «به طور موازی جستجو کنید؛ یعنی بروید و هر یک از شما تمام اطلاعات خود را مرور (Scan) کنید، فقط آنچه را که با این درخواست خاص من مطابقت دارد، به من برگردانید.» جالب اینجاست که من پهنای باند و انرژی را برای داده‌هایی که هرگز استفاده نخواهم کرد هَدر نمی‌دهم. همه چیز به صورت محلی (Local) باقی می‌ماند و من فقط چیزهایی را مشاهده می‌کنم که با معیارهای جستجوی من مطابقت دارند.»

کاربردهای گسترده

کشش جدیدی برای استفاده از ذخیره‌سازی محاسباتی در لایه‌ی لبه (Edge) شروع به پدیدار شدن کرده‌است؛ لایه‌ی لبه، یک سلسله‌مراتب نامرتب از منابع محاسباتی است که گستره‌ای از دستگاه‌های انتهایی (End devices) تا انواع مختلف سرورهای نصب‌شده را چه در محل (on-premise) و چه بیرون محل (off-premise) شامل می‌شود. هدف در همه‌ی آنها، در صورت امکان، انجام هرچه بیشتر محاسبات در نزدیکی منبع و محدود کردن فاصله‌ای است که آن داده نیاز به پیمودن دارد.

نیل وِردمولر (Neil Werdmuller)، مدیر راه‌حل‌های ذخیره‌سازی در شرکت آرم می‌گوید: «آنچه که امروز اتفاق می‌افتد این است که داده‌ها در هر صورت منتقل می‌شوند، حتی اگر در خود لایه‌ی لبه تولید شده باشند؛ چه تصاویر دوربین‌های نظارتی باشند و چه پلاک‌های خوانده‌شده‌ی خودروها. به طور معمول، تمام یک جریان داده به جایی دورتر برای سرور اصلی ارسال شده و سپس در آنجا پردازش می‌شود. تنها چیزی که ممکن است هر از چندگاهی از تمام آن جریان‌های سنگین داده‌ها استخراج شود، مثلاً یک شماره پلاک ساده است که این واقعاً دیوانگی است. اگر بتوانید پردازش را در خود لبه انجام دهید، آنگاه فقط همان تصویر یا مقدار استخراج‌شده‌ی مورد نیاز را به آن جایی که لازم باشد ارسال می‌کنید؛ این بسیار منطقی‌تر خواهد بود.»

مقایسه ذخیره‌سازی محاسباتی و متعارف

تصویر۲: ذخیره‌سازی محاسباتی در مقابل ذخیره‌سازی سنّتی. منبع: آرم

مثال دیگر می‌تواند در تنظیمات مخابراتی 5G باشد، زمانی که ذخیره‌سازی محاسباتی در پای برج‌های سلولی (Cell towers) پیاده‌سازی می‌شود. طبق گفته‌ی وِردمولر «اگر وسیله‌ی نقلیه‌ای از محدوده‌ی آن سلول خاص عبور کند، در صورتی می‌توان به آن خودرو خدمات نقشه با کیفیت بالا (HD) ارائه داد که کاشی‌های تصویری که نیاز هستند، در همان محلی که به آنها نیاز است ذخیره شده باشند؛ این در مقابل آن وضعیتی است که تمام وسایل نقلیه‌ای که از محدوده‌ی آن سلول عبور می‌کنند، مجبور باشند مکرّراً یک کاشی تصویری یکسان را هر بار از نقطه‌ای مرکزی بارگیری (Download) نمایند. تمام آن انتقال‌های رفت و برگشتی گران هستند، انرژی مصرف می‌کنند و موجب افزایش در «دیرکرد» می‌شوند؛ زیرا که غالباً با جابجایی داده‌ها در این روش، «دیرکرد» نیز موضوعیت پیدا می‌کند.»

همچنین، پردازش داده‌ها در لبه‌ دارای مزایایی از دست حریم خصوصی و امنیتی نیز هست.

اما همه‌ی داده‌ها را نمی‌توان در لایه‌ی لبه جمع‌آوری و پردازش کرد، در اَبر (Cloud) نیز فرصت بزرگی برای استفاده از ذخیره‌سازی محاسباتی وجود دارد.

وِردمولر می‌گوید: «مدیریت همه‌ی این داده‌ها واقعاً چالش برانگیز بوده و بارهای کاری به شدت در حال انفجار هستند. مدیریت تمام حجم‌کارها در سرور و اجبار به انتقال داده‌ها به آن سرور پیچیده است؛ مصرف نیرو را افزایش می‌دهد، به دیرکرد می‌افزاید. بنابراین اگر شما ذخیره‌سازی را در اختیار داشته باشید که داده‌های به‌خصوصی بر روی آن ذخیره شده‌اند، می‌توانید بار کاری به‌خصوصی نیز در اختیار داشته باشید که بر روی آن داده‌ها اعمال می‌کنید. به عنوان نمونه، اگر می‌خواهید از یادگیری ماشینی (Machine learning) با توانایی تشخیص چهره بر روی تعداد زیادی عکس بهره بگیرید، اگر بدانید که آن عکس‌ها کجا بر روی درایوها ذخیره شده‌اند، آنگاه اجرای آن بر روی داده‌های حقیقی بسیار منطقی‌تر به نظر می‌رسد؛ شما بار کاری کمتری را به شکل متمرکز مدیریت کرده‌اید و قادر می‌شوید بارهای کاری را توزیع نمایید.»

همه‌ی این‌ها به دلیل انرژی و زمانی که برای جابجایی داده‌ها صرف می‌شوند و افزایش حجم داده‌هایی که باید خیلی سریع پردازش شوند، برای شرکت‌ها جذابیت پیدا کرده‌اند. وو می‌گوید: «اگر انرژی و زمان زیادی صرف نمی‌شد، مشکلی نیز وجود نداشت. وقتی شما این توانایی را دارید که اطلاعات دارای موضوعیت را تنها برای رایانش مرکزی منتقل نمایید، شاید قادر باشید که مقدار کمی محاسبات ساده در فضای ذخیره‌سازی انجام دهید. حال اگر شما آن توانایی را داشته باشید که تنها مقادیر کمتری از داده‌های بسیار معنی‌دار را برای سی‌پی‌یو ارسال کنید، آنگاه سی‌پی‌یو تلاش خواهد کرد و تا زمانی که قادر باشد خواهد توانست آن داده‌ها را پیش خود نگه دارد؛ سی‌پی‌یو آن زمانی قادر است فنون یادگیری ماشینی را اجرا کند که داده‌ها را پیش خود نگه داشته‌باشد و تلاش کند آنها را جابجا نکند. چیزی که در تمام این‌ها به آن امیدوار هستید اتفاق بیفتد این است که جابجایی داده‌ها در دیسک‌ها را به حداقل برسانید. آنگاه، وقتی که چیزی معنی‌دارتر یافتید، می‌توانید آن را برای پردازنده‌ی مرکزی ارسال کنید، لذا دیگر پهنای باند هَدر نمی‌رود، چون تنها چیزهای معنی‌دار را ارسال کرده‌اید. آنگاه پردازنده آن را تا آنجا که ممکن باشد نگه داشته و سعی می‌کند آن را جابجا نکند. همه‌ی این‌ها برای به حداقل رساندن جابجایی داده‌ها طراحی شده‌اند.»

تکامل از اِس‌اِس‌دی (SSD) به سی‌اِس‌دی (CSD)

از منظر طراحی، مسیر حرکت از درایو حالت جامد (SSD, Solid state drive) به دستگاه ذخیره‌ساز محاسباتی (CSD, Computational storage device) یک مسیر تکاملی است.

بِن وایتهد (Ben Whitehead)، مدیر محصول راه‌حل‌های بخش تقلیدکننده (Emulation) در زیمنس ای‌دی‌اِی (Siemens EDA) می‌گوید: «تا حدود سال ۲۰۱۹، ما مشغول حل یکی از بزرگترین مشکلات «تقلیدکننده‌ها» بودیم، آنجایی که کاربران در تلاش بودند تا بتوانند در داخل اِس‌اِس‌دی‌ها (SSDs) کار کنند؛ یعنی  بتوانند عملکرد – به ویژه آیوپس (IOPS) (ورودی / خروجی در هر ثانیه) – و پهنای باند و میزان دیرکرد را اندازه‌گیری کنند. مشکل عظیم دیگر روش‌های تصدیق (Verification) در آن زمان، میزان دیرکرد در آنها بود، چرا که خیلی دقیق نبودند. شاید شما قادر بودید یک راه حل با عملکرد صحیح پیدا کنید، و در نظر اول با خود بگویید «وای، چه عالی»، ولی به محظ آن که شما نتیجه آخرین فاز طراحی (Tape-out) را بر می‌داشتید و وارد آزمایشگاه می‌شدید، متوجه می‌شدید که عملکرد آن به مرتبه بزرگی از پیش‌بینی‌های شما فاصله دارد. شرم‌آور بود که چه‌قدر بد عمل می‌کرد. کار می‌کرد، اما واقعاً ما در مرحله‌ی قبل از ساخت (Pre-silicon) قادر به اندازه‌گیری دقیق کارکرد نبودیم. این تازه دشواری کار با تنها یک اِس‌اِس‌دی‌ است. اما یک محصول جنبی جالب توجه که حاصل همه‌ی آن کارها بر روی اِس‌اِس‌دی‌‌ها بود، این بود که اِس‌اِس‌دی‌‌ها شروع به جای‌دادن پردازنده‌های متعدّد در درون خود کردند، پردازنده‌های بلادرنگ (Real-time). من بر روی طرح‌های هشت ریزپردازنده‌ی نسبتاً بزرگ در حال طراحی کار کردم و دیدم که چگونه آنها در یک سامانه‌ی دیجیتالی که ذخیره‌ساز شما در آن خاموش است، داده‌ها را خیلی سریع تحویل داده و سپس به نوعی بیکار (idle) می‌مانند. پردازنده‌ها بیشتر اوقات بی‌کار می‌نشینند و وقتی که به آنها نیاز شد، به یک باره واقعاً مورد نیاز می‌شوند. مانند یک خلبان جت جنگنده که چهار ساعت کسالت‌آور منتظر است و به دنبال آن ناگهان ۱۵ ثانیه‌ی وحشت‌آور تجربه می‌کند. این کاری است که درایوها انجام می‌دهند. آنها می‌نشینند، تنها در انتظار اینکه داده‌ها را به شکل انفجاری عقب و جلو کنند. با وجود تمام آن قدرت پردازشی که در آنها است، این منطقی بود که بخواهیم کار بیشتری با آنها انجام شود.»

سی‌اِس‌دی‌ها (CSD) به مشکل جابجایی داده‌ها پاسخ می‌دهند. وایتهد می‌گوید: «حافظه‌های نهان لایه‌ی دو، اِل‌تو کَش (L2 Cache) دائماً با درخواست‌های داده برای CPU روی مادربُرد (Motherboard)، بمب‌باران می‌شوند. وقتی پردازنده آن همه زمان صرف جابجایی داده‌ها به جلو و عقب می‌کند، این سؤال ایجاد می‌شود که، «ما داریم اینجا چه کار می‌کنیم؟» و نیز این درک را ایجاد می‌کند که بیشتر آن پردازش می‌تواند در جای دیگری انجام شود. آنجاست که واقعاً برای استفاده از سی‌اِس‌دی کشش ایجاد می‌شود، اینکه بتوانیم بخشی از آن توان پردازشی بر روی خود دستگاه‌های ذخیره‌ساز را استفاده کنیم.»

دیگران نیز موافق هستند؛ کورت شولر (Kurt Shuler)، معاون بازاریابی شرکت آرتریس آی‌پی (Arteris IP)، می‌گوید: «ده سال پیش درایوهای حالت جامد (SSDs) جدید بودند. در واقع هنوز چیزی به عنوان اِس‌اِس‌دی صنعتی یا سازمانی (Enterprise) وجود نداشت. بلکه ریزکنترل‌گرهای کوچکی بودند که بر روی درایوهای سخت از نوع صفحه‌ای نصب می‌شدند. این وضعیتی بود که نیمه‌هادی‌ها در آن زمان در آن قرار داشتند. از آن موقع، خیلی چیزها تغییر کرده است. تعداد زیادی شرکت‌های نوپا روی کنترل‌گرهای پیشرفته اِس‌اِس‌دی کار کرده‌اند که مشکل اولیه‌ی آنها مرتبط با این واقعیت بود که حافظه‌های فلش (NAND flash) در حین کار بخشی از خود را از کار می‌اندازند، بنابراین شما باید همیشه سلامت سلول‌ها را پایش کنید. هر زمان که بفهمید تعدادی سلول خراب شده‌اند، باید جدایشان کرده و اعلام کنید که دیگر هیچ چیز در آنجا ذخیره نشود. اگر یک درایو ۱ ترابایتی اِس‌اِس‌دی بخرید، در واقع بیش از ۱ ترابایت فضا دارد، چرا که در زمان عملیات، خودش را تا حد مرگ خسته می‌کند. در رابطه با کنترل‌گرهای اِس‌اِس‌دی، این چالش اولیه بود. اما اکنون شرکت‌های تولیدکننده‌ی دیسک‌های ذخیره‌ساز ادغام‌های زیادی را تجربه کرده‌اند. اگر به آنچه در ذخیره‌سازی محاسباتی رخ می‌دهد نگاهی بیندازید، مشاهده می‌کنید که ما الان مشتریانی داریم که در مراکز داده‌ی خود از حافظه‌ها و کنترل‌گرهای اِس‌اِس‌دی که برای یک کاربری خاص مانند نظارت تصویری متمرکز شده‌اند، استفاده می‌کنند. بنابراین در عمل آن محاسباتی که با یک موضوع خاص سر و کار دارند، داخل همان کنترل‌گرها انجام می‌شوند؛ این کاملاً جدید است. در این محاسبات، مواردی مانند تجزیه و تحلیل‌های الگوریتمی سنّتی اگر/آنگاه (if/then) را مشاهده می‌کنید. سپس، برخی از این‌ها موتورهای هوش مصنوعی (AI) آموزش‌دیده هستند. اکنون، مسیر حرکت تمام اِس‌اِس‌دی‌ها و کنترل‌گرهای اِس‌اِس‌دی صنعتی به همین سمت است.»

این امر در حال تغییر شکل فضای رقابتی است، به ویژه که شرکت‌های ذخیره‌سازی سنتی‌ای مانند وِسترن دیجیتال (Western Digital) شروع به طراحی شتاب‌دهنده‌های سخت افزاری متعلق به خود کرده‌اند.

درک ذخیره‌سازی محاسباتی

این مفهوم از نقطه نظر فنی نسبتاً ساده است. مارک گرینبرگ (Marc Greenberg)، مدیر گروه بازاریابی محصولات گروه مالکیت‌های معنوی در شرکت کَدنس (Cadence) می‌گوید: «یک تابع جمع‌کننده یا شمارنده‌ی ساده را در یک نرم‌افزار در نظر بگیرید، x = x + 1. اگر x چیزی باشد که ما زیاد از آن استفاده می‌کنیم، احتمالاً به هر ترتیب در یک حافظه‌ی نهان (Cache) یا حافظه‌ی چرک‌نویس (Scratchpad) بر روی قالب پردازنده‌ی مرکزی (CPU die) ذخیره خواهد شد. اما بیایید فرض کنیم که ما تعداد زیادی از این شمارنده‌ها داریم و یا خیلی اوقات از برخی از آنها استفاده نمی‌کنیم؛ آنگاه، برخی از آنها در حافظه‌ی خارجی مانند دی‌رَم (DRAM) ذخیره می‌شوند. وقتی زمان آن فرا برسد که آن عملیات x = x + 1 را انجام دهیم، باید یک صفحه را در حافظه فعال کنیم، x را از دی‌رَم بخوانیم، x را به یک پردازنده منتقل نماییم، 1 را به آن اضافه کنیم و سپس دوباره آن را در دی‌رَم بنویسیم. بسته به اینکه این فرایند چه مقدار طول بکشد، ممکن است لازم شود از قبل، صفحه را در حافظه شارژ کنیم و سپس زمانی که آماده نوشتن شدیم، دوباره آن صفحه را فعال کنیم. همه‌ی این‌ها انرژی صرف می‌کنند، هم برای اینکه داده‌ها بین دی‌رَم و سی‌پی‌یو و دوباره دی‌رَم جابجا شوند و هم به خاطر اینکه یک صفحه در دی‌رَم فعال شده و خود جریان می‌کشد و انرژی مصرف می‌کند.»

طبق نظر گرینبرگ اگر داخل دستگاه حافظه یک عنصر منطق ساده وجود داشت، یک تراکنش می‌توانست به این شکل ارسال شود: «عدد 1 را به محتوای حافظه در آدرس x اضافه کن و نتیجه را برگردان.» با این کار، انرژی مورد نیاز برای انتقال اطلاعات بین رابط‌ها به نصف کاهش می‌یابد، مدت زمان مورد نیاز برای فعال نگاه داشتن آن صفحه در حافظه کاهش می‌یابد و بار از روی سی‌پی‌یو برداشته می‌شود.

از همین مثال ساده می‌تواند یک میلیون حالت منشعب شود. او می‌گوید: «حالا، آیا باید این قابلیت به هر x = x + y نیز تعمیم داده شود؟ اگر سرریز (Overflow) کرد چه؟ آیا باید امکان تفریق نیز داشته باشد؟ ضرب چه‌طور؟ در مورد سایر توابع پایه واحد محاسبه و منطق (ALU) مانند مقایسه (Compare)، جابجایی (Shift)، توابع دودویی (Boolean) چه می‌کنید؟ در نهایت می‌بینید که به یک سی‌پی‌یوی ثانویه در حافظه تبدیل شده‌است که شاید لزوماً چیز بدی هم نباشد، اما امروزه با توجه به وجود مبنای فکری «همه‌منظوره ساختن»، چنین چیزی اتفاق نمی‌افتد. حداقل در کوتاه مدت این‌طور به نظر می‌رسد که این مسیر با پردازنده‌های دارای عملکرد ویژه‌ی داخل حافظه آغاز شود. به عنوان مثال، شرکت‌هایی هستند که بعضاً با ساخت دستگاه‌های سفارشی حافظه که توابع پردازش ریاضی هوش مصنوعی را در داخل خود دارند، برخی توابع هدایت‌شده‌ی هوش مصنوعی را در همان حافظه انجام می‌دهند.»

مشکلاتی که باید برطرف شوند

دارکو توموسیلوویچ (Darko Tomusilovic)، سرپرست بخش تصدیق در شرکت وی‌تول (Vtool)، می‌گوید: «برای اینکه این مفهوم کار کند، باید داخل حافظه، قدرت منطق اضافه شود و شما باید تعدادی کنترل‌گر را به عنوان بخشی از بلوک حافظه، بخشی از منطق حافظه اضافه کنید. این با فلسفه‌ی جداسازی پردازنده از حافظه تناقض دارد. حالا شما یک قطعه‌ی منطقی را در داخل خود حافظه قرار داده‌اید و حالا هنگامی که می‌خواهید کنترل‌گرهای حافظه را در فرایند تولید تصدیق کنید، باید در نظر داشته باشید که این دیگر فقط یک کنترل‌گر حافظه‌ی احمق و گنگ نیست. حالا می‌تواند یک کارهایی هم انجام دهد. این به طور کامل مفهوم تصدیق را به هم می‌ریزد. به عنوان نمونه، قبلاً مجبور بودیم ابتدا زیرسامانه‌ی حافظه را تست کنیم، و سپس آن زیرسامانه‌ی حافظه را در محیط کامل تراشه ادغام نماییم، لذا این موضوع که تست‌های نرم‌افزاری باید تنها به عنوان بخشی از تست کامل تراشه اجرا شوند، کم و بیش یک روش‌ متداول بود. اما در حال حاضر این‌ها بسیار بیشتر در هم تنیده شده‌اند. از همین منظر است که می‌بینیم تقاضای زیادی برای به خدمت گرفتن مهندسین متخصّصی ایجاد شده است که تمرکز اصلی آنها بر روی تصدیق کنترل‌گرهای حافظه است، حالا دیگر این تقریباً یک حرفه‌ی کاملا مستقل شده‌است. به عنوان یک شرکت خدمات‌دهنده، تقاضای زیادی را به طور خاص برای این حرفه می‌بینیم.»

اندی هاینیگ (Andy Heinig)، رئیس دپارتمان محصولات الکترونیکی کارآمد در فرانهوفر آی‌اِس‌اِس (Fraunhofer IIS)، خاطرنشان می‌کند: «در عین حال، برای چنین رویکردهایی در همه‌ی سطوح، دچار فقدان استاندارد هستیم. برنامه‌نویسان می‌خواهند که در چارچوب‌ها (Frameworks) برنامه‌نویسی کنند؛ به این معنی که در سطح بالا بر اساس کتابخانه‌ها (Libraries) (مانند تِنسورفلو (Tensorflow) برای برنامه‌نویسی هوش مصنوعی) برنامه‌نویسی کنند. نرم‌افزارها نیز در سطوح انتزاعی بسیار مختلفی برنامه‌نویسی می‌شوند، مانند برنامه‌نویسی راه‌اندازها (Drivers) در سطح پایین، کتابخانه‌ها در سطح اول، کتابخانه‌های در سطح بالاتر بر اساس قبلی‌ها، برنامه‌نویسی نرم‌افزارهای کاربردی (Applications). شاید این امکان وجود داشته باشد که محاسبات داخل حافظه‌ای را در سطح راه‌اندازها کپسوله کرد، اما تصور ما این است که امکان شناسایی تمام پتانسیل‌های این رویکرد از این طریق مقدور نباشد. تنها در صورتی بهره‌گیری از پتانسیل کامل امکان‌پذیر خواهد بود که شما به این مکانیزم از تمام سطوح برنامه‌نویسی دسترسی داشته باشید، چرا که در آن صورت الگوریتم نرم‌افزار کاربردی قادر خواهد بود به طور مستقیم از محاسبات شتاب‌داده‌شده بر روی داده‌ها استفاده نماید. اما، دسترسی از تمام سطوح برنامه‌نویسی به آن، به این معنی است که وجود استانداردها در همه‌ی سطوح برنامه‌نویسی، برای دستیابی به سازگاری میان کتابخانه‌های مختلف یک الزام است. برای تحقّق این نوع برنامه‌نویسی در سطح چارچوب، ابتدا این موضوع باید در تعداد زیادی سطوح پایین‌تر محقّق شود. اگر برای هر معماری لازم باشد کار از نو انجام شود، وقت‌گیر و نیروبر خواهد بود. بنابراین باید برای هر سطح از جمله سطح سخت‌افزار، نرم‌افزار و راه‌انداز استاندارد آن ایجاد شود.»

در بسیاری از پیاده‌سازی‌های سی‌اِس‌دی (CSD)، به جای استفاده از یک پردازنده‌ی بلادرنگ در داخل درایو، از یک پردازنده‌ی کاربردی (Applications processor) بهره گرفته می‌شود. آقای وایتهد از زیمنس ای‌دی‌اِی (Siemens EDA) خاطرنشان می‌کند: «پردازنده‌های کاربردی نیازمندی و روش به‌کارگیری کاملاً متفاوتی نسبت به پردازنده‌های بلادرنگ دارند. آنها کاملاً متفاوت هستند. برخی ارائه‌دهندگان پردازنده از جمله شرکت آرم، در پاسخ به وجود این اختلاف‌ها، به طور اختصاصی پردازنده‌هایی با چندین هسته برای ذخیره‌سازی محاسباتی تولید کرده‌اند که در آنها هر دو عنصر پردازنده‌های بلادرنگ و پردازنده‌های کاربردی ترکیب شده‌اند، و در نتیجه می‌توان پردازش را در هر دو وضعیت انجام داد.»

طبق گفته وایتهد، بیشتر مهندسینی که در خصوص پردازنده‌های بلادرنگ، اِس‌اِس‌دی‌ها و کنترل‌گرها تجربه دارند، به نحوه‌ی کارکرد این نوع سی‌پی‌یوها نیز آشنا هستند. «همراه با یک پردازنده‌ی آرم، شما یک سفت‌افزار (Firmware) دارید که روی آن اجرا می‌شود، خواندن‌ها و نوشتن‌ها و زباله‌روبی‌ها و تمام آن چیزهایی را که بر روی یک اِس‌اِس‌دی لازم دارید، انجام می‌دهد؛ اما اکنون شما یک پشته‌ی کامل لینوکس (Linux) نیز در داخل دستگاه تحت آزمون (DUT) خود اضافه کرده‌اید، و این پیامدهایی در طراحی و نیز در تصدیق به همراه خواهد داشت؛ چرا که شما الان دیگر یک سامانه‌ی کاملاً برپاشده در درایو خود دارید. در نظر یک کامپیوتر می‌آید، و این به معنی چیزهای مختلفی است. هنوز باید در ظاهر از منظر میزبان (Host) خود شبیه یک اِس‌اِس‌دی باشد که بتوانید آن را در داخلش نصب کنید. هنوز می‌گوید که «من یک درایو هستم، و می‌توانم تمام نیازهای ذخیره‌سازی شما را پاسخ دهم.» اما اگر این سامانه آگاه باشد که یک سامانه‌ی لینوکس نیز در داخل خود دارد، می‌توانید به داخل آن سامانه اِس‌اِس‌اِچ (SSH) بزنید، و بعد دقیقاً داخل آن درایو مشابه یک سرور بی‌سر (Headless) به نظر خواهد رسید.»

هر زمان که این موضوع را مد نظر قرار دهیم که بزرگ‌ترین کشمکش ما با مقوله‌ی «عملکرد» و «دیرکرد» است، مجموعه‌ی کاملاً متفاوتی از استانداردهای تصدیق مطرح می‌شوند.

او می‌گوید: «اکنون شما یک پردازنده‌ی کاربردی را داخل درایو خود اضافه کرده‌اید. چگونه آن را اندازه‌گیری می‌کنید؟ اگر در حال کار باشد و شما لازم داشته باشید آن را در وضعیت بلادرنگ، راه‌اندازی مجدد (Reboot) نمایید، چه اتفاقی رخ می‌دهد؟ حالا شما دیگر واقعاً متغیرهای دیرکرد خود را به هم ریخته‌اید و ارقام کاملاً کج و معوج دریافت خواهید کرد. شما باید پیش‌بینی این وضعیت‌ها را نیز بکنید.»

او در عنوان‌کردن این موضوع تنها نیست. وِردمولر از آرم می‌گوید: «اساساً، اگر به سراغ ایده‌ی لینوکس بروید، دیگر تفاوتی به غیر از میزان ممکن محاسبات وجود نخواهد داشت. اگر به عنوان نمونه به یک کارت شبکه‌ی هوشمند آرم نگاه کنید، یا یک سرور مبتنی بر آرم، یا یک سرور اینتل زِئون (Intel Xeon)، چون بارهای کاری بسیار زیادی دارد و در حال مدیریت خیلی از امور است، معمولاً محاسبات بسیار سنگینی در آن انجام می‌شود. این می‌تواند برای برخی از بارهای کاری رویکرد مناسبی باشد. البته در مواردی دیگر، واقعاً مزیت‌هایی در انجام محاسبات توزیع‌شده به شکل محلّی وجود دارند؛ وقتی به جای آنکه همه‌ی کارها برای یک محاسبه‌ی واقعاً سنگین جابجا شوند که مقدار زیادی نیرو صرف خواهد شد، هر درایو تکه‌های کوچکی از آن کار را انجام می‌دهد. باید توجه داشت که یک محدودیت مشخص برای مصرف نیرو وجود دارد؛ معمولاً حداکثر تا ۲۵ وات برای هر شکاف پی‌سی‌آی‌ای (PCIe) وجود دارد که بیش از ۲۰ وات آن برای تآمین نیرو به حافظه‌ی فلش (NAND) و رَم (RAM) در دستگاه مصرف می‌شود. بنابراین شما تنها ۵ وات برای تمام کارهای دیگر در اختیار دارید. به نظر کم می‌آید، اما همچنان با این سطح از محاسبات نیز می‌توانید کارهای زیادی انجام دهید.»

نتیجه‌گیری

با انتقال بیشتر محاسبات به حافظه‌ها، سایر قسمت‌های معماری محاسبات نیز در حال تغییر هستند. سِرینیواسان از زیلینکس (Xilinx) می‌گوید: «قبلاً، تعریف قدیمی ما از سرور این بود که یک پردازنده‌ی مرکزی در داخلش هست که مسؤولیت تمام اتفاقات را بر عهده دارد. تمام پردازش‌های کاربردی، تمام داده‌ها توسط سی‌پی‌یو انجام می‌شوند و بقیه‌ی تجهیزات جانبی تقریباً تنها مسؤول ورود داده‌ها به پردازنده، ذخیره‌سازی آنها یا اجازه به حافظه چرک‌نویس برای دسترسی به داده‌ها به هر دلیل محاسباتی میانی، هستند.»

او می‌گوید: «اکنون، همین‌طور که این صنعت به آرامی شروع به تکامل می‌کند، یک تقسیم مسؤولیت نیز ایجاد شده‌است. از اَبَرمقیاس‌های بزرگ گرفته تا سازمان‌های کوچک‌تر، همه‌ی آنها این واقعیت را پذیرفته‌اند که تمام بارهای کاری به یک شکل ایجاد نمی‌شوند. شما می‌خواهید قادر باشید از سی‌پی‌یوها در کار مناسب، از جی‌پی‌یوها (GPUs) در محل صحیح، و از اِف‌پی‌جی‌اِی‌ها (FPGAs) برای آن کاری که توانایی انجامش را دارند استفاده کنید. به همین منظور است که مفاهیم ذخیره‌سازی محاسباتی، در سطح درایو، پردازنده یا آرایه اعمال خواهند شد.»

منتشر شده در  وب‌سایت Semiconductor Engineering
۲۹ مارس ۲۰۲۱ – توسط: آن استِفورا موچلر
برگردان توسط حامد معین‌فر
در شرکت مهندسین فناور پندار آریا – پنداریا

مصرف‌پذیر کردن شبکه‌ها در مراکز داده به اندازه‌ی منابع محاسباتی

عنوان اصلی مقاله: Making Datacenter Networking as Consumable as Compute
تاریخ انتشار و نویسنده: May 24, 2021, Sponsored Content by Nokia
وب‌سایت منتشر کننده: The Next Platform
 لینک اصلی مقاله

شاید این یک کلیشه شده باشد که بگوییم همه‌گیری کرونا روش کاری ما را برای همیشه تغییر داده است، اما مطمئناً می‌توان اذعان نمود که توانسته است کانون‌های توجه را به سمت آن دسته از فناوری‌ها، فرایندها و شیوه‌هایی که به پایان عمر مفید خود نزدیک شده‌اند، متمرکز نماید.

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

مدیر ارشد مدیریت محصولات نوکیا، بروس والیس (Bruce Wallis) می‌گوید: «اینکه چگونه یک شبکه را راه‌اندازی کنیم، چگونه آن را عیب‌یابی نماییم، چگونه اطمینان حاصل کنیم قطعی‌ها در آن در حداقل میزان ممکن هستند، همه‌ی این سوال‌ها اهمیت بیشتری پیدا کرده‌اند؛ چرا که دیگر مثل گذشته روش‌های دمِ دستی مانند فراخواندن تکنیسین‌ها و کارشناسان و یا جایگزینی یک سوئیچ در یک زمان کوتاه، در دسترس ما نیستند.»

او اینگونه اضافه می‌کند: «به معنای دیگر، این موضوع مراکز داده را برای هر ماموریتی که دارند، بیش از پیش حیاتی ساخته‌است. چرا که اکنون وقتی بهره‌برداران با مشکلی روبرو می‌شوند، با توجه به کاهش توانایی‌هایشان در واکنش سریع به آن رویداد به علت کمبود منابع، تأثیر آن مشکل به مرتبه‌ی بزرگتری بیشتر از قبل حس می‌شود.» منابع اصلی، همان نیروهای آموزش‌دیده‌ی در اختیار هستند. با این وجود در چند دهه‌ی اخیر نحوه‌ی رویارویی صنعت با شبکه‌ها در مرکز داده تغییر چندانی نکرده‌است. تامین‌کنندگان سنتیِ زیرساخت‌های شبکه همچنان به تحمیل سیستم‌عامل‌‌های مالکانه (Proprietary) و جعبه‌سیاه‌های (Black box) خود ادامه می‌دهند که احتمالاً تنها بخشی و نه همه‌ی عملکرد داخلی آنها برای کاربر شفاف باشد و این انتخاب‌های در اختیار مشتریان را برای آنکه از چه ابزارهای مدیریتی استفاده کنند، محدود می‌سازد.

البته در همین رابطه در مقابل نیز بحثی وجود دارد که می‌گوید، این رویکرد با توجه به خاصیت محتاطانه‌ی خود نشان‌دهنده‌ی اهمیت ثبات و پایداری در شبکه‌ها است. اما از طرفی دیگر، این موضوع برای سازمان‌‌های جسورتر یا دارای ابتکار عمل در انتخاب پروتکل‌‌ها و مجموعه ابزارهای متمایز و یا حتی متمایل به توسعه‌ی ابزارهای جدید برای استفاده‌ی خود، محدودیت ایجاد کرده‌است. در بدترین حالت، تلاش برای جایگزینی هر یک از عناصر یک پُشته (Stack) یا بافت (Fabric) مالکانه می‌تواند منجر به جریمه‌ی آن مشتری توسط فروشنده‌ی آن تجهیز شود. و این انعطاف‌پذیری کاربران را در مدیریت گردش کار و فرایندهای خود محدود می‌سازد.

این کاملاً در تضاد با آنچه در توسعه‌ی زیرساخت‌های پردازشی، ذخیره‌سازی و نرم‌افزاری اتفاق افتاده‌است، می‌باشد. چنانچه می‌بینیم که چگونه مجازی‌سازی (Virtualization)، خودکارسازی (Automation)، استانداردهای باز (Open standards)، عملیات توسعه (DevOps) و ادغام مستمر/تحویل مستمر (CI/CD)، در کنار یکدیگر توانسته‌اند امکان استقرار خویش‌خدمت (Self-service)، بهبود تاب‌آوری و تحویل سریع را در این نوع زیرساخت‌ها فراهم آورند.

دیگر جعبه‌ی جادویی سیاه وجود ندارد

همان‌طور که گفته شد، اَبَرمقیاس‌هایی مانند فیس‌بوک و ارائه‌‌دهندگان بزرگ خدمات ابری، توانسته‌اند بخش بزرگی از عملیات خود را به صورت خودکار در آورند. این چه معنایی برای دیگران دارد؟ خُب، شما می توانید از نوآوری‌های آنها بهره‌مند شوید، اما تنها در صورتی که به بسترهای ابری آنها مهاجرت نمایید. زیرا همانطور که والیس توضیح می‌دهد، آنها هیچ علاقه و عجله‌ای برای «باز کردن» راه‌حل‌های متعلق به خود، به نحوی که شرکت‌‌ها یا ارائه‌دهندگان خدماتی که مجبور به اداره‌ی مراکز داده متعلق به خود هستند، امکان بهره‌گیری از آن ابزارها را پیدا کنند، از خود نشان نداده‌اند.

پاسخ نوکیا به این نیاز اینگونه بوده‌است که یک سیستم عامل شبکه (NOS) توسعه دهد که به طور پیش‌فرض «باز» است، بخشی با استفاده از اِس‌آر لینوکس (Service Router Linux – SR Linux)، که قسمتی از بافت سوئیچینگ مراکز داده (Data Center Switching Fabric) نوکیا بوده و نیز سامانه خدمات بافت (Fabric Services System) نوکیا را در خود جای داده‌است، و بخشی با استفاده از سَکوهای سخت‌افزاری سوئیچینگ (Switching hardware platforms) نوکیا.

مشتریان می توانند تمام پشته‌ها را به عنوان یک راه حل کلیددَردست (Turnkey) انتخاب نمایند. امّا همانطور که لینوکس به آن معروف است، این بستر به گونه‌ای طراحی شده‌است که «باز» باشد و به مشتریان این فرصت را می‌دهد تا برای هر سری از عناصر خاص مورد نظر خود به راه‌حل‌های ثالث مراجعه کنند یا به سادگی راه حل خود را توسعه دهند.

فهم آنچه در نرم‌افزارهای جریان اصلی اتفاق می‌افتد کار سختی نیست. اگرچه والیس در استفاده از اصطلاح «ریزخدمات (Microservices)» محتاط است، او می گوید هدف این است که NOS به قسمت‌های مدولار تقسیم شود؛ «هر یک از آن قسمت‌ها بلوک عملکردی خود را دارد» که رابط‌های کاربری و مدل‌‌های داده‌ی متعلق به خود را در اختیار می‌گذارند.

«بنابراین، اگر یک مدل کاری الزام نماید، تجهیز هنوز در نگاه شمال (بالاسر) خود مانند یک دستگاه یکپارچه به نظر رسیده و احساس می‌شود. نمایش گروهی از توابع به عنوان یک عنصر یکتای مدیریت‌شده منافع انکارناپذیری دارد، اما در زیر آن، سرویس‌‌هایی که شبکه را می‌سازند، همچون پروتکل‌ها، نمونه‌های شبکه (Network Instances) و غیره، مدولار هستند و می‌توانند برنامه‌ی خود را به برنامه‌ی کل سیستم که به شمال (بالاسر) آن شناسانده می‌شود، اضافه کنند». هدف این است که توابع «تا حد امکان مدولار و تجزیه‌شونده در سطح نرم‌افزار» باشند.

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

والیس پیش‌بینی می‌کند: «ایده‌ی کلی شکستن چیزها به قسمت‌های مدولار و ایجاد تغییر در آنها از طریق CI/CD، از جمله از فاز استقرار به فاز تولید، و استفاده از روش‌های استقرار قناری (Canary deployment) یا استقرار پراکنده (Scattered deployment)، و تمام آن مفاهیم خوب را به زودی در شبکه‌ها نیز مشاهده خواهید کرد.»

خودکارسازی برای شبکه‌کارها

او اضافه می‌کند، «البته، محدودیت‌هایی نیز وجود دارد. در یک دنیای ریزخدماتی، اگر دَه نقطه‌ی پایانی (Endpoint) مختلف داشته باشیم، دیگر برایمان برخط نبودن دو مورد از آنها مهم نیست. با این حال، اگر به دلیل خاموش‌شدن سوئیچ‌ها، رَک‌های شما به کل از مدار سرویس‌دهی خارج شوند، مثلاً چون در حال ارتقاء یا در حال انجام CI/CD بوده‌اید و در همان موقع مشکلی پیش آمده‌است، فریادتان بلند خواهد شد.»

او می گوید، با این وجود مهندسان شبکه کاملاً قادر به نوشتن کُدهای پایتون (Python) و تولید برنامه‌‌های کاربردی‌ای هستند که می‌توانند گردش کار آنها را بهبود بخشند. «آنچه که ما در تلاش هستیم انجام دهیم این است که به افرادی که ایده‌‌های بسیار جالبی در مورد چگونگی یا کمک به انجام خودکارسازی تغییرات در محیط‌های شبکه‌ی خود دارند تا زندگی راحت‌تری داشته باشند، تمام ابزارهایی که برای انجام این کار نیاز دارند، در اختیارآنها بگذاریم.»

از دیدگاه نوکیا، «ما به جای اینکه ۲۰ نوبت پشته‌ی مدیریت (Management stack) را برای ۲۰ برنامه‌ی مختلف اجرا کنیم، آن را یک بار پیاده‌سازی می‌کنیم و سپس رابط‌های برنامه‌نویسی تمیزی را برای استفاده آن برنامه‌ها از این پشته ارائه می‌دهیم. بنابراین، پشته‌ی BGP ما از همان رابط‌هایی استفاده می‌کند که برای مدیریت آنها در اختیار مشتری قرار داده‌ایم. این بدان معناست که مشتری می‌تواند، اگر بخواهد BGP ما را بردارد و پشته‌ی مورد نظر خود را در آن قرار دهد.»

به موازات، نوکیا رویکردی «باز» برای قابلیت دورسنجی (Telemetry) دراین سَکو (Platform) نیز در پیش گرفته است. «ما یک رابط gNMI (رابط مدیریت شبکه مبتنی بر gRPC) را برای همه‌ی برنامه‌‌های موجود در سامانه فراهم می‌کنیم. شما فقط باید مدل داده‌ی خود را به ما بدهید و خودتان داده‌ها را در آن مدلِ داده منتشر کنید، و ما ترتیب اعمال تغییرات در بستر دورسنجی را برای شما می‌دهیم.»

والیس می گوید، دورسنجی برای اتوماسیون شبکه‌های مراکز داده بسیار اهمیت دارد: «در مدل‌های عملیاتی امروز، سطح جزئیات داده‌هایی که از شبکه استخراج می‌کنیم به آن اندازه کافی نیستند تا این اطمینان را پیدا کنیم که می‌توانیم شبکه‌ها را با استفاده از ماشین‌ها اداره نماییم.»

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

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

با این کار، شکاف میانِ درک فروشنده از میزان خطای قابل قبول روی یک خط ارتباطی (Link) و تجربه‌ای که کاربر از وجود مشکلات احتمالاً جدی‌تر در شبکه دارد، از بین خواهد رفت؛ بدون آنکه نیاز به بررسی دستی تمام خطاها وجود داشته باشد.

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

حداکثر انعطاف‌پذیری

او می گوید: «اِس‌آر لینوکس پایه و اساس همه‌ی این قابلیت‌ها است. شما به دورسنجی با سرعت بالا، به برنامه‌‌های افزودنی، به همه چیز به شکل مدولار و نه یکپارچه نیاز دارید. مشتریان به انعطاف‌پذیری نیاز دارند تا آنچه را که می‌خواهند انتخاب کنند یا نکنند، آنها به توانایی افزودن آنچه می‌خواهند نیاز دارند.»

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

او توضیح می‌دهد: «به عنوان یک نمونه‌ی خیلی ساده، این مشتری یک برنامه‌ی خیلی کوچک دارد که در آنجا قرار گرفته و کنترل دورسنجی برای اطلاع از تغییرات در تنظیمات را در دست دارد. وقتی تغییری اتفاق می‌افتد، فقط یک Git add و یک Git commit و یک Git push انجام می‌شود. بنابراین تنظیمات را از دستگاه‌ها دریافت نموده و در واقع با استفاده از Git آنها را مدیریت می‌کند.» این برنامه اطلاعات آخرین باری را که با موفقیت تنظیمات را به Git repo رانده‌است منتشر می‌کند، بدین معنا که تمام این عملکرد می‌تواند از طریق gNMI راستی‌آزمایی شود.

« آنها یک برنامه‌‌ی ساده نوشته‌اند که این کار را انجام می‌دهد. لذا حالا تمام پیکربندی تنظیمات آنها متمرکز شده‌است. همه‌ی این‌ها جایی در یک Git repo نشسته و با نسخه‌بندی کنترل می‌شوند، چراکه Git این امکان را به آنها می‌دهد.»

این شاید یک پیشرفت جزئی به نظر برسد، اما همانطور که والیس اشاره می‌کند، اثر تجمیعی آن بسیار زیاد است؛ به دلیل میزان کار دستی‌ای که به طور بالقوه از میان بر می‌دارد.

او توضیح می‌دهد: «ما تصوّر می‌کنیم که مراکز داده کوچک هستند، چون بسیار متراکم ساخته می‌شوند، یا اگر هم فکر کنیم آنها بزرگ هستند، تصورمان این نیست که به اندازه‌‌ی شبکه‌ی جهانی بزرگ باشند. اما در واقعیت، مراکز داده از نقطه نظر تعداد نود (Node) شبکه به یک ترتیبی حتی از اینترنت جهانی نیز بزرگتر هستند.»

«این یک نوع مقیاس متفاوتی است که معمولاً مردم به آن عادت ندارند. اگر شما یک فرایند کوچکی بنویسید که تمام آن کاری که انجام می‌دهد این باشد که به دنبال یک مسأله‌ی خاص در شبکه بگردد و برخی رفع اشکال‌ها را به صورت خودکار اعمال نماید، تا شاید دیگر کسی در اواسط شب با یک تماس تلفنی زابه‌راه نشود … حالا این سناریو را برای دو هزار عنصری که در یک شبکه وجود دارند تصور کنید، آنگاه این یک تأثیر بزرگ در حجم کار روزانه‌ی شما خواهد داشت.»

منتشر شده در وب‌سایت The Next Platform
۲۴ مه ۲۰۲۱ – محتوای حمیات‌شده از سوی نوکیا
برگردان توسط حامد معین‌فر
در شرکت مهندسین فناور پندار آریا – پنداریا