شروع کار با Dapr

آشنایی با Daprاگه شما هم درگیر توسعه اپلیکیشن ها با معماری مایکروسرویس باشید این روز ها خیلی اسم Dapr رو بشنویداگه بخوایم خیلی ساده به این قضیه نگاه کنیم Dapr سعی کرده توسعه اپلیکیشن های مایکروسرویسی رو خیلی راحت تر کنهو این کار رو با تمرکز روی منطق اصلی برنامه و ساده نگه داشتن کد و دور کردن کد از مسائل زیر ساختی هست در واقع Dapr همونجور که خودش رو معرفی میکنه یه runtime هست برای اجرای برنامه هااولین ریلیز این محصول هیجان انگیز 17 فوریه 2021 بوده و اماده استفاده توی پروداکشن هست https://blog.dapr.io/posts/2021/02/17/announcing-dapr-v1.0/ پیشنیاز هانصب Dapr Cliنصب .Net 5 SDKشروعبرای یک پروژه ساده Asp.net Core ایجاد میکنیمmkdir WeatherForecastService cd WeatherForecastService dotnet new webapi dotnet runهمون جوری که خودتون بهتر میدونید این یه پروژه ساده asp .net core درست میکنهمعمولا به صورت پیشفرض توی تملیت این پروژه یه کنترلر پیشفرضی وجود داره که دیتای آب و هوا رو مثلا قراره برگردونهاجرای Api با استفاده از DaprDapr از الگوی sidecar داره استفاده میکنهdapr میتونه api ما رو اجرا کنه و Api ما رو به از طریق dapr به بیرون expose کنهدستور زیر رو روی مسیر جاری پروژه تون اجرا کنیدdapr run --app-id weatherforecastservice --dapr-http-port 3500 --app-port 5001 --app-ssl -- dotnet runبیاین بخش های مختلف این دستور رو با هم دیگه مرور کنیم- -app-id یه شناسه برای اپلیکیشن/سرویس تون که بشه با این شناسه پیداش کرد- –dapr-http-port پورتی که sidecar dapr به اون گوش میکنه- –app-port پورتی که اپلیکیشن/سرویس ما روی اون گوش میکنه- –app-ssl مشخص میکنه که درخواست هایی که سرویس میده ssl باشه یا نه– dotnet run روشی که باهاش پروژه رو اجرا میکنیدمزایای استفاده از Daprقبل از این که پروژه رو روی Dapr اجرا کنید میتونید با ادرس https://localhost:5001/weatherforecast اما وقتی با استفاده از dapr پروژه رو اجرا میکنید علاوه بر روش بالامیتونید متد مورد نظرتون رو با استفاده از فراخوانی اون از طریق sidecar اجرا کنید http://localhost:3500/v1.0/invoke/weatherforecastservice/method/weatherforecastشاید تو نگاه اول این خیلی ساده به نظر برسهاما نکته خیلی مهم درباره این روش اینه اهمیتی نداره سرویسی که پشت dapr داره اجرا میشه روی چه بستری هست به طور مثال اگه روی gRPC هم باشه ما میتونیم اونو خیلی راحت با استفاده از Api هایی که Dapr به ما میده میتونیم فراخوانی کنیمدر واقع یه روش استانداردی برای فراخوانی متد ها بین سرویس های مختلف میشه داشته باشیم که به صورت زیرهhttp://localhost:<dapr-http-port>/v1.0/invoke/<app-id>/method/<method-name>نکته مهم اینه که این روش فارغ از زبان و تکنولوژی هست و شما به همین روش میتونید به صورت مستقیم با استفاده از این Api یک سرویس که با زبان دیگه ای توسعه داده شده رو فراخوانی کنید ولی این همه ماجرا نیستبا استفاده از این روش استاندارد برای فراخوانی سرویس ها ما میتونیم به چیز های بزرگتری توی توسعه اپلیکیشن های مایکروسرویسی برسیم خیلی از این ها به صورت توکار توی Dapr پیاده شدنService discoveryDistributed tracingMetricsError handlingEncryptionو نکته خیلی جالب درباره Dapr اینه که شما نیاز نیست وقتی دارین کد مینویسین درباره همه این مسائل فک کنید و به جاش میتونید تمرکزتون رو بزارین رو معماری درست و پیاده سازی درست و با کیفیت منطق برنامهلایبرری هایی برای راحت تر کردن استفاده از امکانات dapr وجود داره که با یه جستجوی ساده توی nuget میتونید اونا رو پیدا کنیدخلاصهتوی این متن به صورت خیلی خلاصه با Dapr آشنا شدیم میتونید روی لینک dapr.io اطلاعات بیشتری پیدا کنیداحتمالا در آینده چیز های بیشتری از این محصول جذاب مینویسمممنون میشم شما هم اگه نظری داشتین با من به اشتراک بزارید