مقدمه DAPR قسمت 1
DAPR چیست؟
DAPR مخفف distributed application runtime شده است. این یک پروژه open source است که توسط مایکروسافت آغاز شده است. از نوامبر 2021 به طور رسمی توسط CNCF به عنوان یک پروژه نوپا تأیید شد
https://www.cncf.io/blog/2021/11/03/dapr-distributed-application-runtime-joins-cncf-incubator/
برای چه کاری می توانید از آن استفاده کنید؟
DAPR اساساً مجموعهای از APIها است که بر اساس مفهوم بلوکهای سازنده برای توسعهدهندگان ساخته شده است تا برنامهها و microserviceهای توزیعشده مدرن را بر روی پلتفرمهای Cloud بسازند، در حالت self hosted یا از طریق کانتینرهایی که در Kubernetes اجرا میشوند. این باعث می شود برنامه بسیار قابل حمل باشد.
معماری داپر
Dapr یک زبان آگنوستیک است زیرا ابزارهای ضروری و بلوک های ساختمانی را برای ساختن یک برنامه کاربردی توزیع شده ابری بومی(native) , در اختیار توسعه دهنده قرار می دهد. این به حل مسایل رایج در تولید نرمافزارهای مایکروسرویس مانند موارد زیر کمک میکند:
State management
Pub/sub
Secrets management
Service discovery
Sidecars
Dapr بر اساس مفهوم سایدکار ساخته شده است. سایدکار یک الگوی متداول است که در برنامه های کاربردی توزیع شده مدرن برای پشتیبانی از برنامه اصلی با رسیدگی به مسایل متداول مانند امنیت و ورود به سیستم استفاده می شود. Dapr روی این مدل با ارائه یک API سازگار در یک بلوک ساختمانی که در یک sidecar میزبانی شده است، کار می کند.
Hosting
داپر گزینه های متعددی را در اختیار شما قرار می دهد. به دلیل معماری آن بسیار قابل حمل است. شما می توانید آن را با استفاده از روش های زیر میزبانی کنید:
-
-
-
-
- Kubernetes
- Self hosted
- Serverless. Azure container apps is one current example
-
-
-
https://docs.dapr.io/operations/hosting/serverless/azure-container-apps/
Summary
به طور خلاصه، ساختن سیستمهای توزیعشده مدرن میتواند برای توسعهدهندگان سخت باشد، زیرا بخشهای متحرک زیادی در راهحلهایی وجود دارد که از سبک Microservice استفاده میکنند (موقعیت خدمات، مش سرویس، گزارشگیری توزیعشده). بسیاری از شرکت ها از تیم های پلت فرم برای نگهداری و پشتیبانی از چنین سیستم هایی استفاده می کنند که از لوله کشی و پیکربندی پشتیبانی می کنند.
با Dapr، توسعهدهنده میتواند بر روی حوزههای اصلی کاری که ساخت APIها هستند، تمرکز کند، سیستمهایی که مبتنی بر منطق تجاری هستند. با پیروی از اصول کلیدی معماری غیروابستگی (loose coupling) از طریق API های REST.
Dapr فرصتی را برای تیم ها فراهم می کند تا محصول بعدی خود را در زمان اجرای توسعه بسازند که به توسعه دهنده کمک می کند.
در قسمت بعدی شروع به کار با Dapr را بررسی خواهیم کرد.
💡Cross-cutting concern
In aspect-oriented software development, cross-cutting concerns are aspects of a program that affect other concerns. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and can result in either scattering, tangling, or both.
💡نگرانی متقاطع
در توسعه نرم افزار جنبه گرا، نگرانی های مقطعی جنبه هایی از یک برنامه هستند که سایر نگرانی ها را تحت تاثیر قرار می دهند. این نگرانیها معمولاً در طراحی و اجرا نمیتوانند از بقیه سیستم جدا شوند و میتوانند منجر به پراکندگی، گره خوردن یا هر دو شوند. ![]() ![]() |
Sidecar patternاجزای یک برنامه کاربردی را در یک فرآیند یا کانتینر مجزا قرار دهید تا جداسازی و کپسوله سازی را فراهم کند. این الگو همچنین می تواند برنامه ها را قادر سازد که از اجزا و فناوری های ناهمگن تشکیل شده باشند. این الگوی سایدکار نامیده میشود زیرا شبیه خودروی کناری است که به موتور سیکلت متصل شده است. در الگو، سایدکار به یک برنامه والد متصل شده است و ویژگی های پشتیبانی را برای برنامه ارائه می دهد. سایدکار همچنین چرخه عمر مشابهی با برنامه والد دارد و در کنار والدین ایجاد و بازنشسته می شود. الگوی ماشین کناری گاهی اوقات به عنوان الگوی sidekick شناخته می شود و یک الگوی تجزیه است. |