دانشجو
بازآفرینی مجازی سازی با "نیترو سیستم" آمازون

در شرکتهایی با ابعاد شرکت آمازون اکثر مشکلاتی که با آنها مواجه میشوید از آن دست نیستند که یک دستورالعمل یا راه حل مشخص برای آن وجود داشته باشد. به همین خاطر این شرکتها دائما در حال خلق فناوریها و مفاهیم جدید هستند تا بتوانند سرویسهای خود را از نظر کمی و کیفی گسترش دهند. زمانی که یک شرکت تصمیم به ارائه خدمات به مشتریان میگیرد با حجم زیادی از درخواستها و انتظارات مشتریان مواجه میشود که برای پاسخگویی به آنها نیاز به نوآوری بسیار دارد. در این مطلب سعی دارم شما را با یکی از نوآوریهای شرکت آمازون به نام نیترو سیستم(Nitro System) آشنا کنم که یک پلتفرم زیر لایه برای سرویس EC2 آمازون است.
پس از چندین سال بهبود سیستمهای مجازی سازی سنتی برای غلبه بر محدودیتهای آنها شرکت آمازون به این نتیجه رسید که برای بهبود عملکرد و امنیت سرویسهایش باید یک تصمیم بزرگ در رابطه با سیستم مجازی سازی خود بگیرد. این تجدید نظر جرقهای برای ایجاد نیترو سیستم شد؛ اولین پلتفرم زیرساخت برای استقرار و هدایت عملکردهای مجازی سازی به نرم افزار و سخت افزار مناسب. در حال حاضر شرکت آمازون با این سیستم بهترین بازدهی مالی و عملکردی فضای ابری را در یک محیط بسیار امن و نوآورانه ارائه میدهد. در ادامه چگونگی شکل گیری نیترو سیستم و ارزشی که برای مشتریان خلق کرده است میپردازیم.
در آغاز
ناظر مجازی سازی(hypervisor) یک جزء از سیستم نرم افزاری است که ماشینهای مجازی را ارائه میکند، که در آن کاربران میتوانند سیستم عاملها و برنامههای خود را اجرا کنند. هایپروایزر ماشینهای مجازی را از یکدیگر ایزوله میکند تا بتوانند مستقل از یکدیگر اجرا شوند و به ماشینهای مختلف اجازه میدهد تا سیستم عامل خود را داشته باشند و اجرا کنند. هایپروایزرها به طور معمول برای استفاده در یک محیط ابری چند لایه طراحی نشدهاند(هایپروایزرهای خام یا آماده). اما با انجام تغییرات و سفارشی سازیهای عمیق میتوان آنها را برای این محیط سازگار کرد. این کار ساخت و مدیریت ماشینهای مجازی را ساده میکند و هزینهها(مالی و منابع) را برای شرکت و مشتریان کاهش میدهد.
در اولین روزهای تولد EC2 آمازون برای حفاظت از سخت افزار و سیستم عامل خود از هایپروایزر Xen استفاده میکرد که کاملا نرم افزاری بود. این هایپروایزر توانایی مجازی سازی شبکه، پردازنده و حافظه را دارد و قابلیتهای مدیریتی فراوانی را در اختیار استفاده کننده قرار میدهد. اما با معماری معمول خود حدود 30% از منابع سیستم را برای مدیریت و ساماندهی عملیاتهای یک نمونه ماشین مجازی استفاده میکند!

30% عدد واقعا بزرگی است که این مقدار مستقیما برای مشتری ارزشی به همراه ندارد. برای آمازون این موضوع روشن بود که اگر میخواهد عملکرد، امنیت و چابکی را برای مشتریان خود بهبود بخشد باید بیشتر ویژگیهای هایپروایزر را به سخت افزارهایی اختصاصی منتقل کند تا این اتلاف منابع بر روی سیستم مشتری تاثیر نداشته باشد. اینجا بود که آمازون تصمیم به طراحی نیترو سیستم در سال 2012 گرفت.
درب یک طرفه!
در آمازون مهندسان خیلی با تصمیمات یک طرفه(غیر قابل بازگشت) و دو طرفه(قابل بازگشت) مواجه میشوند. تصمیم گیری دو طرفه باعث میشود سریع حرکت کنید زیرا حتی اگر زمانی را هم تلف کرده باشید میتوانید تصمیم خود را برگردانید و به سراغ تصمیم دیگر بروید. اما در تصمیم گیری یک طرفه بازگشت تقریبا غیر ممکن است به همین دلیل شما باید این تصمیمات را با نهایت دقت و صرف وقت برای مشورت و طراحیهای مختلف کنید.
ساخت نیترو یک تصمیم یک طرفه بود. آنها میدانستند که با این کار از قابلیتهای تکنیکهای سنتی مجازی سازی پیشی میگیرند و برای این کار نیاز به نوآوری دارند. اما تصمیم گیری برای آن را راحت و سریع انجام ندادند. این مسیر برای آنها 5 سال طول کشید و در این بین آزمون و خطاهای بسیاری انجام شد و برای هر مرحله تاییدیههای زیادی باید گرفته میشد.
نیترو سیستم از سه بخش اصلی تشکیل شده است: کاردهای نیترو(Nitro Cards)، تراشه امنیتی نیترو(Nitro Security Chip) و هایپروایزر نیترو. کاردهای نیترو گروهی از کاردها هستند که ورودی و خروجی(IO) را برای عملکردهایی از جمله VBC، EBS و Instance Storage بارگیری و تسریع میکنند و در نتیجه عملکرد کلی سیستم را افزایش میدهند. آمازون اولین نوع کارد خود را از نوع C3 و در سال 2013 راه اندازی کرد و بار پردازشهای شبکه را بر روی سخت افزار منتقل کرد. پس از آن و در سال 2014 نوع C4 وارد کار شد و بار حافظه EBS را به سخت افزار منتقل کرد. در C4 آمازون برای اولین بار با یک شرکت به نام Annapurna Labs همکاری کرد، فناوری و تیم این شرکت آنقدر آمازون را تحت تاثیر قرار داد که آمازون این شرکت را در اوایل سال 2015 خریداری کرد. تا سال 2017 آمازون آخرین اجزای نیترو سیستم را با صفحه کنترل، هایپروایزر جدید و باقی مانده کاردها با عنوان C5 تکمیل کرد. این سیستم نه تنها از نظر مالی یک سرمایه گذاری اساسی به حساب میآمد، بلکه یک تعهد و دلگرمی طولانی مدت برای کارکنان و کارمندان بود تا سالهای زیادی کنار یکدیگر برای رشد و بهبود این سیستم تلاش کنند.

معماری نیترو به آنها این اجازه را میدهد که لایه هایپروایزر را اختیاری کنند و بتوانند پلنهای Bare-Metal ارائه دهند. در این پلنها مشتری به پردازنده و منابع دیگر سرور دسترسی مستقیم و کامل دارد. این مورد برای کارهایی که نیاز به دسترسی به ویژگیهای سخت افزاری مانند Intel® VT-x دارند و یا برنامههایی که برای اجرا نیاز به محیط غیر مجازی دارند مهم است. در مجموع همه اینها برای مشتریان آمازون به معنای عملکرد، قیمت و امنیت بهتر است و اجازه نوآوری بیشتری را به آنها میدهد.
مزایای نیترو برای مشتریان
بازدهی و قیمت بهتر
سرویس EC2 با استفاده نیترو سیستم عملکرد بهتری در شبکه، پردازنده و ذخیره سازی دارد، زیرا این عملکردها به کاردهای نیترو منتقل شده. مسدود نکردن منابع برای نرم افزار مدیریت به معنای آزاد شدن منابع برای استفاده کاربران است. همچنین نیترو بر جیتر(Jitter) نیز تاثیرگذار بود. توانایی کاهش دریافت جیتر به میکروثانیه امکان انجام سناریوهایی را در ابرها میدهد که تا قبل از آن امکان پذیر نبودند(مثل real-time computing). شکل 3 مقایسه جالبی را برای یک مشتری(ارائه دهنده خدمات فضایی و ماهوارهای) نشان میدهد که از نمونههایی با کانفیگ مختلف استفاده میکند. همانطور که میبینید در C5 و I3.metal که بعد از استقرار نیترو سیستم به وجود آمدهاند(c4 نسل قبل از استقرار نیترو است)، مقدار جیتر به شکل قابل توجهی کاهش یافته. همچنین میتوانید مشاهده کنید که تاثیر عملکرد هایپروایزر در یک نمونه non-bare metal کم است.

بهبود امنیت
یکی از بزرگترین مزایای نیترو سیستم امنیت آن است:
- اولا این سیستم طوری طراحی شده تا در خصمانهترین شبکهها نیز دوام بیاورد. این سیستم نه تنها تمام کانالها را رمزگذاری میکند بلکه از قابلیت بوت امن نیز برخوردار است.
- دوما این سیستم مبتنی بر تراشه امنیت و در سخت افزار مهندسی شده که به مهندسان اجازه میدهد رمزنگاری را مداوما اندازه گیری و اعتبار سنجی کنند.
- سوما این سیستم طوری طراحی شده که دسترسی اپراتور بسیار محدود باشد. در یک هایپروایزر معمولی مدیر دسترسی کامل به سیستم دارد و میتواند هر چیزی را تغییر دهد اما در نیترو این تواناییها با استفاده از رابط کاربری یک API محدود را در اختیار مدیر قرار میدهد که دسترسی به دادههای دیگران و جهش در عملکردهای سیستم را غیر ممکن میکند.
- چهارما در سیستمهای مجازی سنتی ارائه دهندگان خدمات سرورها را با کاربرد و کانفیگ عمومی ارائه میکنند که شامل قابلیتهای غیر ضروری است و امنیت را نیز کاهش میدهند. در مقابل نیترو یک گام بزرگ رو به جلو در استفاده از سرورهایی است که با هدف خاص و برای اجرای یک هایپروایزر کانفیگ شدهاند. این ویژگی نه تنها آسیب پذیری امنیتی را کاهش میدهد بلکه امکان هدایت عملکردهای خاص را به نرم افزار و سخت افزار مشخص و ویژه میدهد.
ممنونم از زمانی که صرف مطالعه این مطلب کردید، امیدوارم که برای شما مفید واقع شده باشد. پذیرای انتقادات و نظرات شما عزیزان هستم.
مطلبی دیگر از این نویسنده
خلق ارزش؛ بهتر از هدف
مطلبی دیگر در همین موضوع
مفاهیم IoC، DIP و DI در برابر هم
افزایش بازدید بر اساس علاقهمندیهای شما
چرا ثبت زمان های کار و فعالیت ها برای کارمندان سخت است؟