استفاده از eBPF – در Netflix، زیرساخت GPU، برنامه های ویندوز و موارد دیگر
Summarize this content to 400 words in Persian Lang
در اصل توسط Will Searle به reasonly.io ارسال شده است
نکات مهم از نشست eBPF 2024
چگونه سازمان ها از eBPF برای حل مشکلات واقعی در مشاهده پذیری، امنیت، پروفایل و شبکه استفاده می کنند؟ این سوالی است که در حین کار در فضای مشاهدهپذیری و اطراف آن، متوجه شدم که از خود میپرسم – و زمانی که نشست اخیر ایزووالنت eBPF پاسخهایی را ارائه کرد، بسیار شگفتزده شدم.
برای کسانی که تازه با eBPF آشنا شده اند، این یک فناوری منبع باز است که شیوه های مشاهده پذیری را تقویت می کند. بسیاری از سازمان ها و فروشندگان آن را به عنوان منبع داده (از جمله Causely، جایی که ما از آن برای بهبود ابزار دقیق خود برای Kubernetes استفاده می کنیم) استفاده کرده اند.
بسیاری از جلسات eBPF چالشهای واقعی شرکتها و نحوه استفاده از eBPF برای غلبه بر آنها را برجسته کردند. در روحیه کمک به دیگران، یادداشتهای صخرهای و نکات کلیدی من از نشست eBPF در زیر آمده است.
سازمان هایی مانند Netflix و Datadog از eBPF به روش های جدید و خلاقانه استفاده می کنند
استفاده از eBPF در نتفلیکس
یکی از سخنرانیهای کلیدی توسط شوتا صراف ارائه شد که مشکلات خاصی را که نتفلیکس با استفاده از eBPF بر آن غلبه کرد، مانند همسایگان پر سر و صدا، توصیف کرد. این یک مشکل رایج است که بسیاری از شرکتها با محیطهای بومی ابری با آن مواجه هستند.
نتفلیکس از eBPF برای اندازهگیری مدت زمان صرف فرآیندها در وضعیت برنامهریزی شده CPU استفاده میکند. هنگامی که فرآیندها بیش از حد طول می کشد، معمولاً نشان دهنده یک گلوگاه عملکرد در منابع CPU است – مانند throttling CPU یا تخصیص بیش از حد. (تیم محاسبات و عملکرد نتفلیکس اخیراً وبلاگی با جزئیات بسیار بیشتر در مورد این موضوع منتشر کرده است.) برای حل مشکل همسایه پر سر و صدا، تیم نتفلیکس همچنین ابزاری به نام bpftop ایجاد کرد که برای اندازه گیری استفاده از CPU از کد eBPF که ابزارسازی کرده بودند طراحی شده است.
تیم نتفلیکس bpftop را برای استفاده جامعه منتشر کرد و در نهایت به سازمانها کمک میکند تا برنامههای eBPF کارآمد را اجرا کنند. این به ویژه در صورتی مفید است که یک برنامه eBPF آویزان باشد، به تیم ها اجازه می دهد تا به سرعت هر سرباری را که یک برنامه eBPF دارد شناسایی کنند. ما به دایره کامل رسیده ایم: نظارت بر برنامه های نظارتی ما 😁
استفاده از eBPF در Datadog
یکی دیگر از موارد استفاده برای eBPF – و موردی که به راحتی می توان نادیده گرفت – در مهندسی آشوب است. اسکات جرینگ، یک مدافع فنی در Datadog، تجربه خود را در این مورد به اشتراک گذاشت. این نقل قول در من طنین انداز شد: “با eBPF… ما این زبان جهانی تخریب را داریم” – تخریب کنترل شده.
مزیت eBPF این است که میتوانیم شکستها را بدون نیاز به بازنویسی کد یک برنامه به سیستمهای بومی ابری تزریق کنیم. جالب اینجاست که پروژههای منبع باز برای مهندسی آشوب وجود دارد که قبلاً از eBPF استفاده میکنند، مانند ChaosMesh.
اسکات چند مثال مانند Kernel Probes را که به سیستم openat متصل شده اند، فهرست کرده است که باعث خطای عدم دسترسی برای 50 درصد از تماس های انجام شده توسط فرآیندهای سیستم می شود که کاربر می تواند انتخاب یا تعریف کند. یا با استفاده از زیرسیستم کنترل ترافیک برای رها کردن بستهها برای سوکتها روی فرآیندی که میخواهید علامتگذاری کنید برای شکست.
eBPF زیربنای توسعه هوش مصنوعی خواهد بود
توماس گراف، یکی از بنیانگذاران و CTO Isovalent، نقشه راه eBPF و آنچه را که بیشتر از همه در مورد آن هیجان زده است، ارائه کرد. قابل ذکر است: eBPF در فعال کردن موج زیرساخت GPU و DPU که توسط هوش مصنوعی تغذیه می شود، ارزش ارائه می دهد. هوش مصنوعی بدون شک یکی از داغ ترین موضوعات در حال حاضر در فناوری است. بسیاری از شرکتها از GPU و DPU برای سرعت بخشیدن به وظایف هوش مصنوعی و ML (Machine Learning) استفاده میکنند، زیرا پردازندهها نمیتوانند قدرت پردازشی مورد نیاز مدلهای هوش مصنوعی امروزی را ارائه دهند.
همانطور که تام اشاره کرد، اینکه آیا موج هوش مصنوعی چیزی معنیدار تولید میکند جای بحث دارد، اما شرکتها بدون شک تلاش خواهند کرد و سرمایهگذاری قابل توجهی در GPU و DPU در طول مسیر انجام خواهند داد. قابلیتهای eBPF برای این موج جدید زیرساخت به همان شیوهای که برای CPUها اعمال شد، اعمال خواهد شد.
پردازندههای گرافیکی و واحدهای پردازش گرافیکی گران هستند، بنابراین شرکتها نمیخواهند قدرت پردازشی خود را برای برنامههایی که باعث افزایش استفاده میشوند هدر دهند. کارایی برنامههای eBPF میتواند به به حداکثر رساندن عملکرد پردازندههای گرافیکی پرهزینه کمک کند. به عنوان مثال، eBPF را می توان برای پروفایل GPU با اتصال به رویدادهای GPU مانند حافظه، همگام سازی و راه اندازی هسته استفاده کرد. باز کردن قفل این نوع دادهها میتواند برای درک اینکه کدام هستهها بیشتر استفاده میشوند، استفاده میشود و کارایی توسعه هوش مصنوعی را بهبود میبخشد.
پشتیبانی eBPF برای ویندوز در حال رشد است
یکی دیگر از نقاط عطف جالب در سفر eBPF، پشتیبانی از ویندوز است. در واقع، یک مخزن Git در حال رشد برای برنامههای eBPF در ویندوز وجود دارد که امروزه وجود دارد: https://github.com/microsoft/ebpf-for-windows
این پروژه از ویندوز 10 یا بالاتر و ویندوز سرور 2019 یا جدیدتر پشتیبانی می کند و در حالی که هنوز برابری ویژگی ها برای لینوکس وجود ندارد، پیشرفت های زیادی در این فضا وجود دارد. جامعه سخت در حال کار بر روی ابزارهای مشابه برای eBPF در لینوکس است، اما این یک تلاش چالش برانگیز است زیرا نقاط قلاب برای اجزای لینوکس eBPF (مانند کامپایل Just-In-Time یا امضاهای بایت کد eBPF) در ویندوز متفاوت است.
تماشای قابلیت های مشابه شبکه، امنیت و قابلیت مشاهده eBPF در لینوکس که برای ویندوز در دسترس هستند، هیجان انگیز خواهد بود.
نیاز به مشاهده پذیری بهتر باعث رشد اکوسیستم eBPF می شود
ابزارهای eBPF توسط جامعه هم برای کاربردها و هم برای موارد استفاده از زیرساخت ایجاد شده است. 9 پروژه بزرگ برای برنامه های کاربردی و بیش از 30 پروژه هیجان انگیز در حال ظهور برای برنامه های کاربردی وجود دارد. قابل ذکر است، در حالی که چند زمان اجرا و ابزار آماده تولید در اکوسیستم زیرساخت وجود دارد (مانند لینوکس و کامپایلر LLVM)، پروژههای در حال ظهور بسیاری مانند eBPF برای ویندوز وجود دارد.
با داشتن پایگاه کاربر در سراسر متا، اپل، کپیتال وان، لینکدین و والمارت (فقط به نام چند مورد)، میتوان انتظار داشت که تعداد پروژههای eBPF در سالهای آینده به طور قابل توجهی افزایش یابد. تعداد کل پروژه ها در واقع تا پایان سال 2025 سه رقمی پیش بینی می شود.
یکی از کاتالیزورهای برتر برای رشد؟ نیاز فوری برای مشاهده بهتر. از میان تمام موضوعات در KubeCon سال گذشته در شیکاگو، قابلیت مشاهده بالاترین رتبه را کسب کرد و موضوعات رقیب مانند هزینه و اتوماسیون را شکست داد. مانند هر ابزار دیگری، eBPF میتواند به سازمانها اجازه دهد دادههای زیادی را جمعآوری کنند، اما «چرا» مهم است. آیا از آن دادهها برای ایجاد نویز بیشتر و هشدارهای بیشتر استفاده میکنید، یا میتوانید آن را برای رسیدن به علت اصلی مشکلات موجود یا برای برنامههای دیگر اعمال کنید؟
تماشای جامعه eBPF در حال توسعه و اجرای راههای خلاقانه جدید برای استفاده از eBPF هیجانانگیز است و نشست eBPF 2024 منبع عالی از موارد استفاده از eBPF در دنیای واقعی و ابزارهای تولید شده توسط جامعه بود (و هنوز هم هست).
در اصل توسط Will Searle به reasonly.io ارسال شده است
نکات مهم از نشست eBPF 2024
چگونه سازمان ها از eBPF برای حل مشکلات واقعی در مشاهده پذیری، امنیت، پروفایل و شبکه استفاده می کنند؟ این سوالی است که در حین کار در فضای مشاهدهپذیری و اطراف آن، متوجه شدم که از خود میپرسم – و زمانی که نشست اخیر ایزووالنت eBPF پاسخهایی را ارائه کرد، بسیار شگفتزده شدم.
برای کسانی که تازه با eBPF آشنا شده اند، این یک فناوری منبع باز است که شیوه های مشاهده پذیری را تقویت می کند. بسیاری از سازمان ها و فروشندگان آن را به عنوان منبع داده (از جمله Causely، جایی که ما از آن برای بهبود ابزار دقیق خود برای Kubernetes استفاده می کنیم) استفاده کرده اند.
بسیاری از جلسات eBPF چالشهای واقعی شرکتها و نحوه استفاده از eBPF برای غلبه بر آنها را برجسته کردند. در روحیه کمک به دیگران، یادداشتهای صخرهای و نکات کلیدی من از نشست eBPF در زیر آمده است.
سازمان هایی مانند Netflix و Datadog از eBPF به روش های جدید و خلاقانه استفاده می کنند
استفاده از eBPF در نتفلیکس
یکی از سخنرانیهای کلیدی توسط شوتا صراف ارائه شد که مشکلات خاصی را که نتفلیکس با استفاده از eBPF بر آن غلبه کرد، مانند همسایگان پر سر و صدا، توصیف کرد. این یک مشکل رایج است که بسیاری از شرکتها با محیطهای بومی ابری با آن مواجه هستند.
نتفلیکس از eBPF برای اندازهگیری مدت زمان صرف فرآیندها در وضعیت برنامهریزی شده CPU استفاده میکند. هنگامی که فرآیندها بیش از حد طول می کشد، معمولاً نشان دهنده یک گلوگاه عملکرد در منابع CPU است – مانند throttling CPU یا تخصیص بیش از حد. (تیم محاسبات و عملکرد نتفلیکس اخیراً وبلاگی با جزئیات بسیار بیشتر در مورد این موضوع منتشر کرده است.) برای حل مشکل همسایه پر سر و صدا، تیم نتفلیکس همچنین ابزاری به نام bpftop ایجاد کرد که برای اندازه گیری استفاده از CPU از کد eBPF که ابزارسازی کرده بودند طراحی شده است.
تیم نتفلیکس bpftop را برای استفاده جامعه منتشر کرد و در نهایت به سازمانها کمک میکند تا برنامههای eBPF کارآمد را اجرا کنند. این به ویژه در صورتی مفید است که یک برنامه eBPF آویزان باشد، به تیم ها اجازه می دهد تا به سرعت هر سرباری را که یک برنامه eBPF دارد شناسایی کنند. ما به دایره کامل رسیده ایم: نظارت بر برنامه های نظارتی ما 😁
استفاده از eBPF در Datadog
یکی دیگر از موارد استفاده برای eBPF – و موردی که به راحتی می توان نادیده گرفت – در مهندسی آشوب است. اسکات جرینگ، یک مدافع فنی در Datadog، تجربه خود را در این مورد به اشتراک گذاشت. این نقل قول در من طنین انداز شد: “با eBPF… ما این زبان جهانی تخریب را داریم” – تخریب کنترل شده.
مزیت eBPF این است که میتوانیم شکستها را بدون نیاز به بازنویسی کد یک برنامه به سیستمهای بومی ابری تزریق کنیم. جالب اینجاست که پروژههای منبع باز برای مهندسی آشوب وجود دارد که قبلاً از eBPF استفاده میکنند، مانند ChaosMesh.
اسکات چند مثال مانند Kernel Probes را که به سیستم openat متصل شده اند، فهرست کرده است که باعث خطای عدم دسترسی برای 50 درصد از تماس های انجام شده توسط فرآیندهای سیستم می شود که کاربر می تواند انتخاب یا تعریف کند. یا با استفاده از زیرسیستم کنترل ترافیک برای رها کردن بستهها برای سوکتها روی فرآیندی که میخواهید علامتگذاری کنید برای شکست.
eBPF زیربنای توسعه هوش مصنوعی خواهد بود
توماس گراف، یکی از بنیانگذاران و CTO Isovalent، نقشه راه eBPF و آنچه را که بیشتر از همه در مورد آن هیجان زده است، ارائه کرد. قابل ذکر است: eBPF در فعال کردن موج زیرساخت GPU و DPU که توسط هوش مصنوعی تغذیه می شود، ارزش ارائه می دهد. هوش مصنوعی بدون شک یکی از داغ ترین موضوعات در حال حاضر در فناوری است. بسیاری از شرکتها از GPU و DPU برای سرعت بخشیدن به وظایف هوش مصنوعی و ML (Machine Learning) استفاده میکنند، زیرا پردازندهها نمیتوانند قدرت پردازشی مورد نیاز مدلهای هوش مصنوعی امروزی را ارائه دهند.
همانطور که تام اشاره کرد، اینکه آیا موج هوش مصنوعی چیزی معنیدار تولید میکند جای بحث دارد، اما شرکتها بدون شک تلاش خواهند کرد و سرمایهگذاری قابل توجهی در GPU و DPU در طول مسیر انجام خواهند داد. قابلیتهای eBPF برای این موج جدید زیرساخت به همان شیوهای که برای CPUها اعمال شد، اعمال خواهد شد.
پردازندههای گرافیکی و واحدهای پردازش گرافیکی گران هستند، بنابراین شرکتها نمیخواهند قدرت پردازشی خود را برای برنامههایی که باعث افزایش استفاده میشوند هدر دهند. کارایی برنامههای eBPF میتواند به به حداکثر رساندن عملکرد پردازندههای گرافیکی پرهزینه کمک کند. به عنوان مثال، eBPF را می توان برای پروفایل GPU با اتصال به رویدادهای GPU مانند حافظه، همگام سازی و راه اندازی هسته استفاده کرد. باز کردن قفل این نوع دادهها میتواند برای درک اینکه کدام هستهها بیشتر استفاده میشوند، استفاده میشود و کارایی توسعه هوش مصنوعی را بهبود میبخشد.
پشتیبانی eBPF برای ویندوز در حال رشد است
یکی دیگر از نقاط عطف جالب در سفر eBPF، پشتیبانی از ویندوز است. در واقع، یک مخزن Git در حال رشد برای برنامههای eBPF در ویندوز وجود دارد که امروزه وجود دارد: https://github.com/microsoft/ebpf-for-windows
این پروژه از ویندوز 10 یا بالاتر و ویندوز سرور 2019 یا جدیدتر پشتیبانی می کند و در حالی که هنوز برابری ویژگی ها برای لینوکس وجود ندارد، پیشرفت های زیادی در این فضا وجود دارد. جامعه سخت در حال کار بر روی ابزارهای مشابه برای eBPF در لینوکس است، اما این یک تلاش چالش برانگیز است زیرا نقاط قلاب برای اجزای لینوکس eBPF (مانند کامپایل Just-In-Time یا امضاهای بایت کد eBPF) در ویندوز متفاوت است.
تماشای قابلیت های مشابه شبکه، امنیت و قابلیت مشاهده eBPF در لینوکس که برای ویندوز در دسترس هستند، هیجان انگیز خواهد بود.
نیاز به مشاهده پذیری بهتر باعث رشد اکوسیستم eBPF می شود
ابزارهای eBPF توسط جامعه هم برای کاربردها و هم برای موارد استفاده از زیرساخت ایجاد شده است. 9 پروژه بزرگ برای برنامه های کاربردی و بیش از 30 پروژه هیجان انگیز در حال ظهور برای برنامه های کاربردی وجود دارد. قابل ذکر است، در حالی که چند زمان اجرا و ابزار آماده تولید در اکوسیستم زیرساخت وجود دارد (مانند لینوکس و کامپایلر LLVM)، پروژههای در حال ظهور بسیاری مانند eBPF برای ویندوز وجود دارد.
با داشتن پایگاه کاربر در سراسر متا، اپل، کپیتال وان، لینکدین و والمارت (فقط به نام چند مورد)، میتوان انتظار داشت که تعداد پروژههای eBPF در سالهای آینده به طور قابل توجهی افزایش یابد. تعداد کل پروژه ها در واقع تا پایان سال 2025 سه رقمی پیش بینی می شود.
یکی از کاتالیزورهای برتر برای رشد؟ نیاز فوری برای مشاهده بهتر. از میان تمام موضوعات در KubeCon سال گذشته در شیکاگو، قابلیت مشاهده بالاترین رتبه را کسب کرد و موضوعات رقیب مانند هزینه و اتوماسیون را شکست داد. مانند هر ابزار دیگری، eBPF میتواند به سازمانها اجازه دهد دادههای زیادی را جمعآوری کنند، اما «چرا» مهم است. آیا از آن دادهها برای ایجاد نویز بیشتر و هشدارهای بیشتر استفاده میکنید، یا میتوانید آن را برای رسیدن به علت اصلی مشکلات موجود یا برای برنامههای دیگر اعمال کنید؟
تماشای جامعه eBPF در حال توسعه و اجرای راههای خلاقانه جدید برای استفاده از eBPF هیجانانگیز است و نشست eBPF 2024 منبع عالی از موارد استفاده از eBPF در دنیای واقعی و ابزارهای تولید شده توسط جامعه بود (و هنوز هم هست).