۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

تسریع توسعه ابری بومی در Microsoft Azure

از پشتیبانی GPU تا پیاده سازی های مرجع، آخرین به روز رسانی های Azure Container Apps تعهد مایکروسافت به بهره وری توسعه دهندگان را با آخرین ابزارهای توسعه هوش مصنوعی ترکیب می کند.

از پشتیبانی GPU تا پیاده سازی های مرجع، آخرین به روز رسانی های Azure Container Apps تعهد مایکروسافت به بهره وری توسعه دهندگان را با آخرین ابزارهای توسعه هوش مصنوعی ترکیب می کند.

یکی از مزیت‌های بزرگ توسعه برنامه‌های بومی ابری این است که اغلب می‌توانید تمام کارهای زیرساختی خسته‌کننده را به شخص دیگری بسپارید. چرا باید سرور بسازید و مدیریت کنید در حالی که تنها چیزی که نیاز دارید یک عملکرد ساده یا یک سرویس اولیه است؟

این منطق پشت پیاده‌سازی‌های مختلف محاسبات بدون سرور است که می‌بینید در ارائه‌دهندگان اصلی ابر میزبانی می‌شوند. Lambda AWS ممکن است شناخته شده ترین باشد، اما Azure بسیاری از گزینه های بدون سرور خود را دارد – در خدمات مختلف برنامه Azure، توابع Azure، و برنامه های جدیدتر کانتینر Azure.

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

یک پلت فرم کانتینری ساده تر

یک جایگزین ساده‌تر برای سرویس Azure Kubernetes که برای استقرارهای کوچک‌تر طراحی شده است، برنامه‌های کانتینر Azure پلتفرمی برای اجرای برنامه های کانتینری که مقیاس بندی را برای شما انجام می دهد. تنها کاری که باید انجام دهید این است که مطمئن شوید خروجی فرآیند ساخت شما یک کانتینر لینوکس x64 است، آن را در برنامه‌های کانتینر Azure مستقر کنید و آماده شروع کار هستید.

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

برخلاف سایر پلتفرم‌های Kubernetes، برنامه‌های کانتینر Azure بسیار شبیه به عملکردهای Azure عمل می‌کنند و زمانی که دیگر نیازی به خدمات نباشند، به صفر می‌رسند. با این حال، فقط کانتینرهای برنامه متوقف می شوند. زیرساخت Kubernetes که توسط مایکروسافت اداره می شود همچنان به کار خود ادامه می دهد و بارگذاری مجدد یک کانتینر متوقف شده را بسیار سریعتر از راه اندازی مجدد یک ماشین مجازی می کند. Azure Container Apps نیز بسیار ارزان‌تر از اجرای یک نمونه AKS برای یک سرویس ساده است.

نمونه‌های GPU برای برنامه‌های کانتینری

مایکروسافت مجموعه ای از به روز رسانی ها برای برنامه های کانتینر Azure در رویداد اخیر Ignite 2023، با تمرکز بر استفاده از پلتفرم برای کار با برنامه های یادگیری ماشین. مایکروسافت همچنین ابزارهایی را برای ارائه بهترین شیوه ها در طراحی خدمات میکرو و بهبود بهره وری توسعه دهندگان معرفی کرد.

آشنایی با Azure HPC

استفاده از Azure Container Apps برای میزبانی از عناصر سرویس یک برنامه کاربردی توزیع شده در مقیاس بزرگ منطقی است. با اجازه دادن به سرویس‌های فشرده محاسباتی تا مقیاس صفر در مواقعی که نیازی نیست، در حالی که برای پاسخگویی به افزایش تقاضا گسترش می‌یابند، نیازی به قراردادهای زیرساختی گران قیمت ندارید. زمانی که قصد دارید از مستاجران مجهز به GPU برای استنباط استفاده کنید، این موضوع بسیار مهم است.

از جمله اخبار مهم برای برنامه‌های کانتینر Azure در Ignite، پشتیبانی از نمونه‌های GPU، با نمایه بار کاری اختصاصی جدید. پروفایل های GPU نسبت به پروفایل های استاندارد Azure Container Apps به حافظه بیشتری نیاز دارند، زیرا می توانند از آموزش و همچنین استنتاج پشتیبانی کنند. با استفاده از برنامه‌های کانتینر Azure برای آموزش، می‌توانید یک فرآیند دسته‌ای منظم داشته باشید که مدل‌ها را بر اساس داده‌های دنیای واقعی اصلاح می‌کند، مدل‌های خود را برای پشتیبانی، مثلاً از شرایط نوری مختلف، یا خطوط محصول جدید، یا واژگان اضافی در مورد ربات چت.

میزبان‌های برنامه‌های کانتینر Azure با GPU فعال هستند، با استفاده از حداکثر چهار پردازنده گرافیکی Nvidia A100، با گزینه هایی برای ۲۴، ۴۸، و ۹۶ vCPU و حداکثر ۸۸۰ گیگابایت حافظه. احتمالاً از گزینه های سطح بالا برای آموزش و از گزینه های پایین برای استنباط استفاده می کنید. به طور مفید می‌توانید استفاده از هر برنامه را در نمایه بار کاری محدود کنید، و برخی از آن‌ها توسط زمان اجرا که کانتینرهای شما را میزبانی می‌کند، رزرو شده است.

در حال حاضر این VMهای میزبان به دو منطقه، غرب ایالات متحده و شمال اروپا محدود شده اند. با این حال، همانطور که مایکروسافت سخت‌افزار جدیدی را عرضه می‌کند و مراکز داده خود را ارتقا می‌دهد، انتظار می‌رود که در مناطق بیشتری شاهد پشتیبانی باشیم. جالب است که ببینیم آیا این سخت افزار جدید شامل پردازنده های هوش مصنوعی اختصاصی مایکروسافت است که در Ignite نیز معرفی شده اند.

افزودن خدمات داده به کانتینرهای شما

ساخت برنامه‌های هوش مصنوعی بسیار بیشتر از یک GPU یا یک NPU نیاز دارد. نیاز به داده ها در قالب های غیر استاندارد وجود دارد. Azure Container Apps این قابلیت را دارد که سرویس‌های افزودنی را در کنار کد شما اضافه کند که اکنون شامل پایگاه های داده برداری رایج مانند Milvus، Qdrant و Weaviate می شود. این سرویس‌ها همچنین برای استفاده در طول توسعه، بدون متحمل شدن هزینه‌های مربوط به مصرف یک سرویس مدیریت‌شده Azure یا نمونه‌های تولید خودتان در نظر گرفته شده‌اند. هنگامی که با برنامه‌های کانتینر Azure استفاده می‌شود، هزینه سرویس‌های افزودنی به‌صورت استفاده‌شده محاسبه می‌شود، بنابراین اگر برنامه و سرویس‌های مرتبط شما به صفر برسد، فقط برای ذخیره‌سازی صورت‌حساب دریافت می‌کنید.

از اعتبارسنجی مدل در حداقل APIها در ASP.NET Core 6 استفاده کنید

افزودن یک سرویس به محفظه توسعه شما اجازه می‌دهد آن را برای اجرا در داخل همان محیط برنامه های کانتینر Azure به عنوان کد شما اجرا می کند، در صورت عدم نیاز، مقیاس آن را به صفر می رساند و از متغیرهای محیطی برای مدیریت اتصال استفاده می کند. سایر گزینه‌های خدماتی عبارتند از Kafka، MariaDB، Postgres، و Redis، که همگی می‌توانند هنگام استفاده از کانتینرهای شما در تولید به گزینه‌های مدیریت‌شده Azure تبدیل شوند. داده‌ها در حجم‌های دائمی ذخیره می‌شوند، بنابراین می‌توان آن‌ها را با کانتینرهای جدید به اشتراک گذاشت.

مانند اکثر ویژگی‌های برنامه‌های کانتینر Azure، خدمات افزودنی را می‌توان از Azure CLI مدیریت کرد. به سادگی یک سرویس از لیست گزینه های موجود ایجاد کنید، سپس نامی برای آن بگذارید و آن را به محیط خود متصل کنید. سپس می توانید آن را به یک برنامه کاربردی متصل کنید که آماده استفاده است. این فرآیند مجموعه‌ای از متغیرهای محیطی را اضافه می‌کند که می‌تواند توسط کانتینرهای شما برای مدیریت اتصال آنها به سرویس توسعه شما استفاده شود. این رویکرد به شما امکان می‌دهد تا هنگام انتقال به تولید، جزئیات اتصال یک سرویس مدیریت‌شده Azure را تغییر دهید.

پخت در بهترین شیوه برای برنامه های توزیع شده

ارائه یک پلتفرم ساده برای اجرای برنامه‌های کاربردی کانتینری چالش‌های خاص خود را به همراه دارد، که مهم‌ترین آنها آموزش کاربران بالقوه در زمینه اصول توسعه برنامه‌های کاربردی توزیع‌شده است. داشتن الگوها و شیوه های معماری موثر به توسعه دهندگان کمک می کند تا بهره وری بیشتری داشته باشند. و همانطور که با راه اندازی ابزارهایی مانند Radius و .NET 8 دیدیم، بهره وری توسعه دهندگان در راس دستور کار مایکروسافت قرار دارد.

C# 12 کامپایل AOT را تقویت می کند

یک گزینه برای توسعه‌دهندگانی که بر روی برنامه‌های کانتینر Azure ایجاد می‌کنند، استفاده از Dapr، زمان اجرا برنامه‌های توزیع‌شده مایکروسافت، به‌عنوان راهی برای کپسوله‌سازی بهترین شیوه‌ها است. به عنوان مثال، Dapr به شما امکان می‌دهد تحمل خطا را به برنامه‌های کانتینر خود اضافه کنید، خط‌مشی‌های بسته بندی را در مؤلفه‌ای که درخواست‌های ناموفق را مدیریت می‌کند، مدیریت زمان‌بندی و تلاش‌های مجدد اضافه کنید.

این قابلیت‌های Dapr به مدیریت مقیاس‌بندی کمک می‌کنند. در حالی که کانتینرهای برنامه اضافی در حال راه اندازی هستند، Dapr درخواست های کاربر را مجدداً امتحان می کند تا زمانی که نمونه های جدید آماده شوند و بتوانند سهم خود را از بار بگیرند. برای این کار نیازی به نوشتن کد ندارید. در عوض، شما Dapr را با استفاده از Bicep پیکربندی می‌کنید، با بیانیه‌های اعلامی برای مهلت زمانی، تلاش‌های مجدد، و عقب‌نشینی‌ها.

برنامه های کانتینر خود را برای فرود آماده کنید

مایکروسافت راهنمایی‌ها، معماری‌های مرجع و کد نمونه خود را برای ساختن برنامه‌های کانتینر Azure در یک مخزن GitHub که آن را شتاب‌دهنده منطقه فرود برنامه‌های کانتینر Azure. این یک منبع مهم با راهنمایی برای کنترل دسترسی، مدیریت شبکه Azure، نظارت بر سرویس‌های در حال اجرا، و ارائه چارچوب‌هایی برای امنیت، انطباق، و حاکمیت معماری است.

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

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

علاوه بر این، استفاده از برنامه‌های کانتینر Azure به این معنی است که مجبور نیستید با پیچیدگی ایجاد یک زیرساخت کامل Kubernetes برای خدماتی که ممکن است تنها تعداد انگشت شماری باشد، بحث کنید.