آموزش هوش تجاری از ۰ تا ۱۰۰

  • ۰
  • ۰

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

اکنون که Fabrikam کاربرد آنها را تجزیه و تحلیل کرده است، آنها آماده هستند تا فرآیند بازسازی را آغاز کنند تا خدمات را از معماری یکپارچه خود به میکروسرویس ها منتقل کنند. بیایید برنامه را تغییر دهیم تا سرویس پردازش بسته به یک میکروسرویس منتقل شود.

 

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

 

تحویل پهپاد قبل
عملکرد اصلی پردازش بسته توسط کلاس PackageProcessor در فایل PackageProcessor.cs مدیریت می شود. در این مثال، کارهایی را انجام می دهد که نیاز به منابع زیادی دارند. یک سناریوی واقعی ممکن است شامل محاسبه زمان تحویل و مسیرهای تحویل و به‌روزرسانی منابع داده با این اطلاعات باشد.

public class PackageProcessor : IPackageProcessor
    {
        public Task<PackageGen> CreatePackageAsync(PackageInfo packageInfo)
        {
            //Uses common data store e.g. SQL Azure tables
            Utility.DoWork(100);
            return Task.FromResult(new PackageGen { Id = packageInfo.PackageId });
        }
    }

 

میکروسرویس بر روی یک تابع Azure مستقر خواهد شد. کد آن را می توان در PackageServiceFunction.cs یافت و حاوی کد زیر است.

 

public static class PackageServiceFunction
    {
        [FunctionName("PackageServiceFunction")]
        public static Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "put", Route = "packages/{id}")] HttpRequest req,
            string id, ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            //Uses common data store e.g. SQL Azure tables
            Utility.DoWork(100);
            return Task.FromResult((IActionResult)new CreatedResult("http://example.com", null));
        }
    }

 

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

حالا بیایید برنامه را مجدداً مستقر کنیم. ابتدا، ما سرویس بازسازی شده خود را بر روی توابع Azure مستقر می کنیم. سپس، برنامه refactored را در App Service مستقر می کنیم و آن را به تابع اشاره می کنیم.

 

برنامه کاربردی را اجرا کنید

  • برای تنظیم متغیرهای محیطی که به سرویس‌های ما اشاره می‌کنند، دستور زیر را اجرا کنید.

APPSERVICENAME="$(az webapp list \
                    --resource-group [sandbox resource group] \
                    --query '[].name' \
                    --output tsv)"
FUNCTIONAPPNAME="$(az functionapp list \
                    --resource-group [sandbox resource group] \
                    --query '[].name' \
                    --output tsv)"

 

  • بیایید کد برنامه کاربردی را برای برنامه کاربردی بسازیم و فشرده کنیم.

cd ~/mslearn-microservices-architecture/src/after
dotnet build ./PackageService/PackageService.csproj -c Release
cd PackageService/bin/Release/netcoreapp2.2
zip -r PackageService.zip .

 

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

az functionapp deployment source config-zip \
    --resource-group [sandbox resource group] \
    --name $FUNCTIONAPPNAME \
    --src PackageService.zip

 

برنامه به روز رسانی Drone Delivery را مستقر کنید

اکنون که سرویس ما روی توابع Azure اجرا می شود، باید برنامه پهپاد خود را به آن برنامه کاربردی اشاره کنیم.

  • ابتدا باید کد دسترسی برنامه تابع را دریافت کنیم تا بتوانیم با موفقیت آن را از برنامه فراخوانی کنیم. برای بازیابی این کد دستورات زیر را اجرا کنید. نام و کد برنامه عملکرد را برای استفاده در مراحل بعدی نمایش می دهید.

 

RESOURCEGROUPID=$(az group show \
                    --resource-group [sandbox resource group] \
                    --query id \
                    --output tsv)
FUNCTIONCODE=$(az rest \
                    --method post \
                    --query default \
                    --output tsv \
                    --uri "https://management.azure.com$RESOURCEGROUPID/providers/Microsoft.Web/sites/$FUNCTIONAPPNAME/functions/PackageServiceFunction/listKeys?api-version=2018-02-01")
echo "FunctionName - $FUNCTIONAPPNAME"
echo "FunctionCode - $FUNCTIONCODE"

 

  • در Azure Cloud Shell، دستورات زیر را برای باز کردن appsettings.json در ویرایشگر کد اجرا کنید.

 

cd ~/mslearn-microservices-architecture/src/after
code ./DroneDelivery-after/appsettings.json

 

  • در ویرایشگر کد، مقادیر PackageServiceUri و PackageServiceFunctionCode را جایگزین کنید. در PackageServiceUri، <FunctionName> را با نام برنامه تابع خود جایگزین کنید.

در PackageServiceFunctionCode، <FunctionCode> را با کد تابعی که بازیابی کردید جایگزین کنید. فایل appsettings.json شما باید شبیه به این باشد:

 

{
    "Logging": {
    "LogLevel": {
        "Default": "Warning"
    }
    },
    "AllowedHosts": "*",
    "PackageServiceUri": "https://packageservicefunction-abc.azurewebsites.net/api/packages/",
    "PackageServiceFunctionCode": "SvrbiyhjXJUdTPXrkcUtY6bQaUf7OXQjWvnM0Gq63hFUhbH2vn6qYA=="
}

 

  • برای ذخیره فایل Ctrl+S و سپس Ctrl+Q را فشار دهید تا ویرایشگر کد بسته شود.
  • دستور زیر را برای استقرار برنامه به روز شده در App Service اجرا کنید.

zip -r DroneDelivery-after.zip . -x \*/obj/\* \*/bin/\*
az webapp deployment source config-zip \
    --resource-group [sandbox resource group] \
    --name $APPSERVICENAME \
    --src DroneDelivery-after.zip

 

  • با باز استقرار سایت، صفحه خود را رفرش کنید و باید ببینید که به روز شده است.

 

عملکرد معماری جدید را تست کنید
اکنون که سرویس محدود به منابع را به یک میکروسرویس که روی توابع Azure اجرا می‌شود، منتقل کرده‌ایم، بیایید ببینیم این تغییر چگونه بر عملکرد برنامه تأثیر می‌گذارد.

در صفحه اصلی وب سایت خود، Send Requests را انتخاب کنید. این اقدام درخواست‌هایی را از برنامه یکپارچه شما به میکروسرویسی که روی یک تابع Azure اجرا می‌شود ارسال می‌کند.

اولین تلاش ممکن است نتایج مشابهی را برای کاربرد یکپارچه ارائه دهد. صفحه را بازخوانی کنید و در صورت درخواست دوباره درخواست را ارسال کنید. این مرحله را چندین بار انجام دهید و در عرض 1 ثانیه 100 پیام ارسال می شود.

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

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

 

 

  • ۰۱/۱۱/۲۱
  • sahar saha sql

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی