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

Techboy

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

استفاده از پروژه YARP مایکروسافت برای پروکسی میکروسرویس های مبتنی بر وب

پروژه پروکسی معکوس دات نت مایکروسافت به انتشار عمومی نزدیک می شود.

پروژه پروکسی معکوس دات نت مایکروسافت به انتشار عمومی نزدیک می شود.

منبع داخلی ایده استفاده از تکنیک های منبع باز برای توسعه ابزارهای داخلی، با استفاده از پلتفرم هایی مانند GitHub برای همکاری است. مهندسان در سراسر یک شرکت مسائل و فن آوری های مشترک را شناسایی می کنند و با هم کار می کنند تا یک راه حل واحد برای همه مشکلات خود ایجاد کنند. این یک تکنیک مهم است که می تواند تلاش های تکراری را به میزان قابل توجهی کاهش دهد. یک بانک بزرگ از استفاده از بیش از ۱۰ نسخه کنترل شبکه به تنها یک نسخه تبدیل شد.

اما برای یک پروژه منبع داخلی بالغ که می تواند در خارج از سازمانی که آن را ایجاد کرده مفید باشد، چه اتفاقی می افتد؟ برخی پشت درهای بسته باقی می مانند، اما برخی دیگر به منبع باز جهش می کنند. این مورد در مورد YARP مایکروسافت است، پروژه ای که با این هدف آغاز شد. ادغام چندین پروژه پروکسی معکوس در سراسر شرکت. نام آن مخفف Yet Another Reverse Proxy است، زیرا بسیاری از تیم ها در حال ساخت و استفاده از پراکسی های مختلف یا جستجوی API ها و کتابخانه هایی بودند که می توانستند استفاده کنند.

در راه تبدیل شدن به بخش مهمی از پشته شبکه NET است. a>، کمک به اجرای APIهای سرویس گیرنده و سرور در حین ارائه یک پروکسی که برای پروتکل های نسل بعدی مانند HTTP/2 (و در آینده، QUIC) آماده است.

استفاده از پروکسی معکوس

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

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

Angular 15 با API های مستقل وارد می شود

با توجه به اینکه توسعه دهندگان مایکروسافت برای همه این سناریوها به پروکسی معکوس نیاز دارند، آنها ابزارهای مختلفی را توسعه دادند. گرد هم آوردن تیم‌ها امکان ارائه یک پروکسی استاندارد را فراهم کرد که می‌توان آن را برای مدیریت سناریوهای مختلف با افزودن میان‌افزار برای ویژگی‌های خاص برنامه، و همچنین مدیریت موارد رایج استفاده از پروکسی معکوس، پیکربندی کرد.

ارائه یک پروکسی معکوس مبتنی بر NET باز

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

در حال حاضر به عنوان کد منبع نامزد انتشار موجود است، YARP باید به زودی به نسخه ۱.۰ برسد. آخرین نسخه بر روی تمام نسخه‌های NET Core که در حال حاضر پشتیبانی می‌شوند ساخته شده است: ۳.۱، ۵.۰ و نسخه ۶.۰ آینده. می‌توانید آرشیو کد منبع را از صفحه انتشار پروژه GitHub دانلود کنید، یا ترجیحاً مخزن را شبیه‌سازی کنید. به صورت محلی و سپس از اسکریپت های ساخت برای دانلود خودکار .NET SDK و ساخت ابزار استفاده کنید. مایکروسافت دستورالعمل‌هایی را برای استفاده از Visual Studio 2022 با یک اسکریپت شروع ارائه می‌کند که نسخه NET SDK مناسب را بارگیری می‌کند.

احتمالاً شما .NET 5 یا جدیدتر را ترجیح می دهید، زیرا نسخه NET Core 3.1 از ویژگی های کلیدی خاصی پشتیبانی نمی کند، از جمله محدود کردن تله متری مورد نیاز برای نظارت کامل بر یک پراکسی. برای ساختن .NET Core 3.1 همچنان به NET 5 SDK نیاز دارید، زیرا به برخی از ویژگی های C# نیاز دارد که فقط در نسخه های بعدی پشتیبانی می شوند. سایر پیشرفت‌هایی که با نسخه‌های جدیدتر دات‌نت ارائه می‌شوند، پشتیبانی بهتر از HTTP/2 است که برای استفاده با gRPC لازم است.

تغییر آب و هوا: فشار برای کاهش ردپای کربن فناوری اطلاعات

پس از ساخت، می‌توانید پراکسی معکوس YARP را با استفاده از فایل‌های پیکربندی مدیریت کنید< /a>. اینها از ارائه دهندگان پیکربندی استاندارد دات نت استفاده می کنند و شما می توانید فناوری خود را به عنوان بخشی از ساخت YARP انتخاب کنید. این رویکرد به شما امکان می‌دهد ابزارهای خود را برای ارائه تنظیمات، مثلاً به عنوان بخشی از ابزار زیرساخت به عنوان کد، انتخاب کنید. پیش‌فرض JSON است، با استفاده از بخش‌های نام‌گذاری شده در فایل پیکربندی خوشه های سرور مسیریابی و هدف را تعریف کنید.

پیکربندی و استفاده از YARP در برنامه های خود

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

همان اشیا و مجموعه‌های پیکربندی که در فایل‌های پیکربندی JSON شما شرح داده شده‌اند، می‌توانند به‌عنوان ساختارهای داده برای تنظیمات تحت کنترل برنامه. این امکان وجود دارد که به صورت پویا تنظیمات را بدون نیاز به راه اندازی مجدد پراکسی بارگیری مجدد کنید، بنابراین اگر در حال مقیاس خودکار یک برنامه در سرور Kubernetes یا در Azure Service Fabric هستید، می توانید با اضافه شدن نقاط پایانی جدید یا حذف نقاط پایانی جدید، آن را به روز کنید.

یک گزینه جالب در YARP امکان افزودن میان افزار خود به یک پروکسی است. ، با استفاده از مفهوم خط لوله ASP.NET برای افزودن ویژگی های جدید. برای مثال، می‌توانید ابزارهایی داشته باشید که به‌طور خودکار درخواست‌ها را بر اساس قوانین رد می‌کنند و یک پاسخ سفارشی را از پروکسی بدون ارسال هیچ داده‌ای به خوشه پراکسی ارسال می‌کنند. بهتر است از میان‌افزار صرفاً در هدر درخواست استفاده کنید. این ایده خوبی نیست که بدنه یا پاسخ های درخواست را تغییر دهید.

Azure Artifacts به شما کمک می کند بسته ها و ماژول ها را استاندارد کنید

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

فراتر از پروکسی وب

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

با پشتیبانی از HTTP/2، gRPC و Service Fabric، YARP یک ابزار مهم برای هر کسی است که ASP را می سازد. برنامه های NET در مقیاس، و همچنین پشتیبانی از میکروسرویس های مبتنی بر NET. ارزش این را دارد که برای ساختن و سفارشی کردن نمونه های خود وقت بگذارید و از معماری خط لوله و پیکربندی های قابل برنامه ریزی آن استفاده کنید.

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