Momento کش اشیاء را به عنوان یک سرویس به Ampere Altra منتقل می کند
عکس فوری
سازمان
زیرساخت ذخیره لحظه ای برای برنامه های ابری پیچیده و زمان بر است. راهحلهای کش سنتی نیاز به تلاش قابل توجهی در تکرار، مدیریت شکست، پشتیبانگیری، بازیابی و مدیریت چرخه حیات برای ارتقا و استقرار دارند. این بار عملیاتی منابع را از فعالیت های تجاری اصلی و توسعه ویژگی منحرف می کند.
راه حل
Momento یک راهحل کش بدون سرور با استفاده از نمونههای Google Tau T2A مبتنی بر Ampere ارائه میکند که مدیریت و بهینهسازی منابع را خودکار میکند و به توسعهدهندگان اجازه میدهد تا یک کش سریع و قابل اعتماد را بدون نگرانی در مورد زیرساختهای زیربنایی ادغام کنند. بر اساس پروژه منبع باز Apache Pelikan، کش بدون سرور Momento نیاز به تهیه دستی و وظایف عملیاتی را از بین می برد و یک API قابل اعتماد برای نتایج یکپارچه ارائه می دهد.
ویژگی های کلیدی
معماری بدون سرور: هیچ سروری برای مدیریت، پیکربندی یا نگهداری وجود ندارد.
پیکربندی صفر: بهینه سازی مستمر زیرساخت بدون مداخله دستی.
عملکرد بالا: هدف سطح سرویس 2 میلی ثانیه زمان رفت و برگشت را برای درخواست های حافظه پنهان در P99.9 حفظ می کند و از تأخیرهای دم پایین اطمینان می دهد.
مقیاسپذیری: از گرههای ذخیرهسازی چند رشتهای و سنجاق هسته برای مدیریت بارهای بالا به طور موثر استفاده میکند.
خدمات اضافی: مجموعه محصولات توسعه یافته شامل اتوبوس های پیغام میخانه-زیر است.
نوآوری های فنی
Context Switching Optimization: سربار عملکرد را با پین کردن رشتهها به هستههای خاص و اختصاص هستهها به شبکه ورودی/خروجی کاهش میدهد، که در یک نمونه ۱۶ هستهای به بیش از یک میلیون عملیات در ثانیه دست مییابد.
تاثیر
سرویس کش بدون سرور Momento که توسط Google Tau T2A مبتنی بر Ampere ارائه میشود، تجربه توسعهدهنده را تسریع میکند، بار عملیاتی را کاهش میدهد و یک سیستم مقرونبهصرفه و با کارایی بالا برای برنامههای ابری مدرن ایجاد میکند.
زمینه: مومنتو کیست و چیست؟
مومنتو زاییده ی بنیانگذاران خواجه شمس و دانیلا میائو است. آنها چندین سال در AWS به عنوان بخشی از تیم DynamoDB با هم کار کردند، قبل از اینکه Momento را در اواخر سال 2021 راه اندازی کنند. اصل محرک این شرکت این است که زیرساخت برنامه های کاربردی معمولی باید ساده تر از امروز باشد.
تیم Momento به دلیل تجربه گسترده خود با کش اشیاء در AWS، به ذخیره سازی برای محصول اولیه خود رضایت دادند. آنها از آن زمان مجموعه محصولات خود را گسترش دادهاند تا خدماتی مانند اتوبوسهای پیامهای میخانه-زیر را در بر بگیرد. حافظه پنهان بدون سرور Momento، بر اساس پروژه منبع باز Apache Pelikan، به مشتریان خود امکان می دهد تا مدیریت منابع و کارهای بهینه سازی را که با اجرای یک حافظه پنهان کلید ارزش همراه است، به طور خودکار انجام دهند.
همه برنامههای ابری به شکلی از حافظه پنهان استفاده میکنند. کش یک ذخیرهسازی با تأخیر کم برای اشیاء رایج درخواستی است که زمان سرویس را برای سرویسهای پرکاربرد کاهش میدهد. برای یک وبسایت، برای مثال، صفحه اصلی، تصاویر یا فایلهای CSS که به عنوان بخشی از صفحات وب محبوب ارائه میشوند، یا محبوبترین آیتمها در یک فروشگاه وب، ممکن است در حافظه پنهان ذخیره شوند تا زمانی که افراد درخواست میکنند زمان بارگذاری سریعتری داشته باشند.
عملیاتیسازی حافظه نهان شامل مدیریت مواردی مانند Replication، Fail-over زمانی که یک گره اولیه از کار میافتد، پشتیبانگیری و بازیابی پس از قطع شدن، و مدیریت چرخه حیات برای ارتقاء و استقرار است. همه این کارها نیازمند تلاش، دانش و تجربه است و از کاری که می خواهید انجام دهید، زمان می برد.
به عنوان یک شرکت، مومنتو مسئولیت خود را آزاد کردن مشتریان خود از این کار، ارائه یک API قابل اعتماد و قابل اعتماد می داند که می توانید در برنامه های خود از آن استفاده کنید، تا بتوانید بر ارائه ویژگی هایی تمرکز کنید که ارزش کسب و کار را ایجاد می کند. از دیدگاه تیم Momento، "تامین کردن" نباید یک کلمه در واژگان کاربران کش آن باشد - هدف نهایی این است که در صورت نیاز یک کش سریع و قابل اعتماد در دسترس داشته باشید، با توجه به تمام نگرانی های مدیریتی. برای شما
استقرار: سهولت قابلیت حمل به پردازنده آمپر
در ابتدا، تصمیم Momento برای استقرار راهحل کش بدون سرور خود در نمونههای Google T2A مجهز به آمپر، به دلیل مزیتهای قیمت/عملکرد و کارایی بود.
ماشینهای مجازی Tau T2A مبتنی بر آمپر که از ابتدا طراحی شدهاند، عملکرد بالا و مقیاسپذیری خطی قابل پیشبینی را ارائه میکنند که به برنامههای کوچکسازی امکان میدهد به سرعت اجرا شوند و بیش از 30 درصد از VMهای x86 موجود بهتر عمل کنند.
با این حال، طی مصاحبه اخیر، دانیلا میائو، یکی از بنیانگذاران و مدیر ارشد فناوری Momento، همچنین به انعطاف پذیری ارائه شده با پذیرش Ampere اشاره کرد زیرا این یک پیشنهاد همه یا هیچ نبود: «این یک دری یک طرفه نیست. شما می توانید در حالت ترکیبی اجرا کنید، اگر می خواهید مطمئن شوید که برنامه شما قابل حمل و انعطاف پذیر است، می توانید برخی از [برنامه خود را] در Arm64 و برخی را در x86 اجرا کنید.
علاوه بر این، تجربه مهاجرت به پردازندههای آمپر بسیار راحتتر از آن چیزی بود که تیم ابتدا انتظار داشت.
"قابلیت حمل به نمونه های Tau T2A مبتنی بر Ampere واقعا شگفت انگیز بود - ما مجبور نبودیم کار زیادی انجام دهیم، و فقط کار می کرد. "
مصاحبه ویدیویی کامل را تحلیل کنید تا از دانیلا بیشتر بشنوید، زیرا او در مورد اینکه Momento چه کار میکند، مشتریانش به چه چیزهایی اهمیت میدهند، چگونه کار با Ampere به آنها کمک کرده ارزش واقعی را به مشتریان ارائه دهند و همچنین برخی از بهینهسازیها و تغییرات پیکربندی را که برای فشرده کردن انجام دادهاند، بشنوید. حداکثر عملکرد از نمونه های آمپر آنها.
نتایج: چگونه Ampere به Momento کمک می کند تا محصول بهتری ارائه دهد
Momento به دقت به تأخیرهای دم نگاه می کند - معیار اصلی آنها زمان پاسخگویی P99.9 است - به این معنی که 99.9٪ از تمام تماس های حافظه پنهان در آن زمان به مشتری باز می گردند. هدف آنها حفظ هدف سطح سرویس 2 میلی ثانیه زمان رفت و برگشت برای درخواست های کش در P99.9 است.
چرا اینقدر به تاخیرهای دم اهمیت می دهیم؟ برای چیزی مانند حافظه پنهان، بارگذاری یک صفحه وب ممکن است صدها درخواست API را در پشت صحنه ایجاد کند، که به نوبه خود ممکن است صدها درخواست حافظه پنهان ایجاد کند - و اگر در زمان پاسخ P99 دچار افت شدید، تقریباً همه کاربران شما را تحت تأثیر قرار دهد. . در نتیجه، P99.9 می تواند معیار دقیق تری برای نحوه تجربه کاربر معمولی شما از سرویس باشد.
دانیلا میائو، مدیر ارشد فناوری، او میگوید : «مارک بروکر، که ما در اینجا در Momento از او پیروی میکنیم، یک پست وبلاگ عالی دارد که تأثیر تأخیرهای دم شما را روی کاربران شما به تصویر میکشد. برای بسیاری از برنامهها و مشاغل بسیار موفق، احتمالاً 1٪ از درخواستهای شما تقریباً بر تک تک کاربران شما تأثیر میگذارد. […] ما واقعاً روی تأخیرهای P three nines (P99.9) برای مشتریان خود تمرکز می کنیم.
بهینه سازی سوئیچینگ زمینه
به عنوان بخشی از فرآیند بهینهسازی، Momento سربار عملکرد را به دلیل تغییر زمینه در هستههای خاص شناسایی کرد. تغییر متن زمانی اتفاق میافتد که یک پردازنده اجرای یک کار را متوقف میکند تا کار دیگری را انجام دهد و میتواند ناشی از موارد زیر باشد:
وقفه های سیستم: هسته برنامه های کاربر را برای انجام وظایفی مانند پردازش ترافیک شبکه قطع می کند.
بحث پردازنده: تحت بار زیاد، فرآیندها برای زمان محاسباتی محدود با یکدیگر رقابت می کنند که منجر به "تعویض" گاه به گاه وظایف می شود.
در تحلیل عمیق Momento در این موضوع، آنها توضیح میدهند که سوئیچهای زمینه پرهزینه هستند، زیرا پردازنده هنگام ذخیره وضعیت یک کار و بارگذاری دیگری، بهرهوری را از دست میدهد. این مانند این است که انسان در حین کار بر روی یک پروژه، وقتی با یک تماس تلفنی یا جلسه قطع می شود، بهره وری را از دست می دهد. تغییر کارها به زمان و سپس زمان بیشتری نیاز دارد تا تمرکز مجدد را به دست آورید و دوباره سازنده شوید.
Momento با به حداقل رساندن سوئیچینگ زمینه، کارایی پردازنده و عملکرد کلی سیستم را افزایش داد.
شروع کار با Momento
Momento بر عملکرد، به خصوص تأخیرهای دم تمرکز می کند و به صورت دستی همه SDK های سمت سرویس گیرنده را در GitHub تنظیم می کند تا از مشکلات عدم تطابق نسخه جلوگیری کند.
ثبت نام: برای ثبت نام به وب سایت Momento مراجعه کنید.
یک SDK را انتخاب کنید: یک SDK دستی برای زبان برنامه نویسی دلخواه خود انتخاب کنید.
ایجاد یک کش: از رابط کاربری ساده کنسول برای ایجاد یک کش جدید استفاده کنید.
ذخیره/بازیابی داده ها: از مجموعه و دریافت توابع در SDK برای ذخیره و بازیابی اشیا از حافظه پنهان استفاده کنید.
معماری Momento
معماری Momento عملکرد دروازه API را از رشته های داده روی گره های ذخیره سازی جدا می کند. دروازه API درخواستها را به سمت گره ذخیرهسازی بهینه هدایت میکند، در حالی که هر گره ذخیرهسازی دارای چندین thread کارگر برای رسیدگی به عملیات کش است.
مقیاس پذیری : در یک ماشین مجازی ۱۶ هسته ای T2A-Standard-16، دو نمونه از Pelikan هر کدام با 6 رشته اجرا می شوند.
Core Pinning : رشتهها به هستههای خاصی پین میشوند تا با افزایش بار، از وقفه در سایر برنامهها جلوگیری شود.
بهینه سازی شبکه ورودی/خروجی : چهار صف RX/TX (دریافت/انتقال) به هسته های اختصاصی پین می شوند تا از سوئیچ های متنی ناشی از وقفه های هسته جلوگیری شود. در حالی که امکان پردازش هسته های ورودی/خروجی شبکه وجود دارد، آنها دریافتند که با چهار جفت صف، می توانند کش Momento خود را با بار 95 درصد هدایت کنند، بدون اینکه توان عملیاتی شبکه به یک گلوگاه تبدیل شود.
منابع اضافی
برای کسب اطلاعات بیشتر در مورد تجربه Momento با نمونه های Tau T2A
مجهز به پردازندههای آمپر، «Turbocharging Pelikan Cache روشن است
جدیدترین ماشینهای مجازی T2A مبتنی بر Arm Google Cloud».
برای یافتن اطلاعات بیشتر در مورد بهینه سازی کد خود در CPU های Ampere،
راهنمای تنظیم ما را در مرکز توسعه دهنده Ampere تحلیل کنید. شما می توانید
همچنین با ثبتنام، بهروزرسانیها و پیوندهایی به محتوای عالیتری مانند این دریافت کنید
به خبرنامه ماهانه توسعه دهندگان ما.
در نهایت، اگر سؤال یا نظری در مورد این مطالعه موردی دارید، وجود دارد
یک جامعه کامل از کاربران و طرفداران آمپر آماده پاسخگویی است
انجمن توسعه دهندگان Ampere. و حتما در ما مشترک شوید
کانال YouTube برای محتوای بیشتر متمرکز بر توسعه دهندگان در آینده.
ارسال نظر