پرووید
منو

آموزش معماری میکروسرویس ها در .NET Core

زبان: فارسی (دوبله شده)مترجم: پروویددوبلر: پروویدسطح: متوسطمدت زمان: 04:17:41تعداد ویدئوها: 37فایل های پروژه: ناموجود
قیمت:۳٬۹۹۹٬۰۰۰ تومان
این آموزش بخشی از پکیج کامل آموزش معماری مایکروسرویس ها (Microservices Architecture) است که می توانید از تمامی آموزش های آن دیدن کنید.

آموزش معماری میکروسرویس ها در .NET Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی معماری مایکروسرویس ها در .NET Core است که با نام اصلی .NET Core Microservices از شرکت Packtpub منتشر شده است.

معماری نرم افزار چیست؟

معماری نرم افزار فرآیند تعریف کردن یک راه‌ حل ساختارمند (Structured Solution) است که تمامی نیازمندی های تکنیکی (Technical) و عملیاتی (Operational) را برآورده کند و در عین حال ویژگی ‌های کیفی مشترک (Common Quality Attributes) از قبیل کارایی (Performance) امنیت (Security) و قابلیت مدیریت پذیری (Manageablity) را بهینه کند. معماری نرم افزار شامل مجموعه ای از تصمیم گیری ها بر اساس فاکتورهای متعددی است که تمامی این تصمیم گیری ها می‌توانند بر روی قابلیت هایی از قبیل کیفیت کارایی (Performance) نگهداری (Maintainability) و موفقیت سراسری نرم افزار تأثیرگذار باشند.

چرا معماری نرم افزار مهم است؟

شبیه تمامی سازه های پیچیده دیگر نرم افزار باید بر روی یک شالوده ی محکم سوار شود. اگر نتوانید سناریو های کلیدی را در نظر بگیرید اگر نتوانید نرم افزار خود را برای روبرو شدن با مشکلات معمول طراحی کنید یا اگر نتوانید پیامد های بلند مدت تصمیم گیری های کلیدی خود را در نظر بگیرید نرم افزار خود را در ریسک قرار داده اید. البته که ابزارها و پلتفرم های مدرن امروزی وظیفه ساختن نرم افزار را ساده تر می کنند اما آنها به هیچ وجه نمی توانند نیاز به طراحی دقیق نرم افزار بر اساس سناریو و نیازمندی های موجود را مرتفع کنند. بعضی از ریسک هایی که ریشه در معماری ضعیف دارند شامل نرم افزاری است که آن بی ثبات می‌باشد نرم افزاری است که قابلیت پشتیبانی از نیازمندی‌های تجاری (Business Requirements) فعلی و آینده را ندارند یا نرم افزاری است که استقرار (Deploy) و مدیریت آن در محیط تولید (Production Environment) دشوار است.

معماری سرویس گرا (Service Oriented Architecture) چیست؟

سبک معماری سرویس گرا (Service Oriented): این سبک معماری به برنامه‌هایی اطلاق می شود که عملیات (Functionality) خود را از طریق سرویس ‌هایی در اختیار مصرف ‌کنندگان (Consumer) قرار می‌دهند. مصرف کنندگان از طریق پیام ها (Message) و قرارداد هایی (Contract) از آن سرویس ها استفاده می کنند.

معماری میکروسرویس ها چیست؟

معماری مایکروسرویس ها یک متد و یا روش خاص توسعه ی سیستم های نرم افزاری است که سعی می کند توسط Single-function Module هایی که دارای تعدادی Well-defined Interface و همچنین Operation هایی هستند ایجاد کند. این معماری در سال های اخیر که شرکت ها به سمت Agile با سرعت بیشتری پیش می روند و مسائلی از قبیل DevOps و Continuous Testing مطرح شده اند محبوب تر گشته است. با استفاده از این معماری می توان نرم افزارهایی را تحویل داد که قابلیت مقیاس پذیری و تست پذیری بیشتری دارند. به عبارت دیگر با استفاده از این سبک معماری می توان نرم افزازرهای پیچیده را به صورت Continuous Delivery و Continuous Deployment عرض کرد.

معماری میکروسرویس در .NET Core چیست؟

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

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

Messaging و API Gateway در معماری میکروسرویس چه نقشی دارند؟

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

تمام کردن کار API Gateway - نمونه ای از بخش تمام کردن کار API Gateway در آموزش معماری میکروسرویس ها در .NET Core
نمونه ای از بخش «تمام کردن کار API Gateway» در آموزش معماری میکروسرویس ها در .NET Core

API Gateway نقطه ورودی مشترکی برای دسترسی به مجموعه‌ای از سرویس‌ها فراهم می‌کند. این مؤلفه می‌تواند درخواست‌های ورودی را به سرویس مناسب هدایت کند و بخشی از مسئولیت‌های مرتبط با دسترسی به APIها را متمرکز سازد. برای مثال، کلاینت ممکن است درخواست خود را به Gateway ارسال کند و آن درخواست به سرویس مربوط به قابلیت مورد نظر منتقل شود. طراحی درست Gateway می‌تواند ساختار ارتباط با کلاینت را ساده‌تر کند، اما نباید به محلی برای انباشته شدن منطق اصلی کسب‌وکار تبدیل شود.

احراز هویت و امنیت API در میکروسرویس ها

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

JSON Web Token یا JWT قالبی برای انتقال مجموعه‌ای از ادعاها میان طرف‌های مختلف است و در بسیاری از APIها برای انتقال اطلاعات مربوط به هویت و دسترسی استفاده می‌شود. سرویس دریافت‌کننده باید توکن را به‌درستی اعتبارسنجی کند و نباید صرفاً به وجود آن اعتماد کند. همچنین، احراز هویت با مجوز دسترسی یکسان نیست؛ مشخص شدن هویت کاربر لزوماً به معنای اجازه انجام همه عملیات نیست. درک این تفاوت‌ها برای طراحی APIهایی که اطلاعات یا عملیات حساس را ارائه می‌کنند، ضروری است.

Docker و آزمون در توسعه میکروسرویس های .NET

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

Docker امکان بسته‌بندی برنامه و وابستگی‌های اجرایی آن در قالب Container را فراهم می‌کند. این روش می‌تواند تفاوت میان محیط‌های توسعه، آزمایش و استقرار را کاهش دهد و اجرای سرویس‌ها را در محیط‌های مختلف قابل مدیریت‌تر کند. در یک سیستم میکروسرویسی، هر سرویس ممکن است به شکل جداگانه بسته‌بندی و مستقر شود؛ با این حال، پیکربندی شبکه، متغیرهای محیطی و وابستگی‌های بین سرویس‌ها همچنان باید به‌درستی مدیریت شوند. شناخت این موضوعات به درک بهتر چرخه توسعه تا استقرار کمک می‌کند.

سرفصل مطالب آموزش ویدئویی معماری میکروسرویس ها در .NET Core

فصل اول: معماری سیستم

  • مقدمه ی دوره ی آموزشی
  • چه چیزی را خواهیم ساخت؟
  • راه اندازی Environment
  • بررسی کردن Microservices Architecture
  • ساختن Solution

فصل دوم: پیاده سازی Messaging

  • پیکربندی RabbitMQ Service Bus
  • ساختن Command ها
  • ساختن Event ها
  • پیاده سازی Helper Class ها و Helper Method ها
  • پیاده سازی API Endpoint ها
  • Subscribe کردن به Message ها

فصل سوم: پیاده سازی Activities Service

  • ساختن Domain Model ها
  • راه اندازی MongoDB
  • پیاده سازی Repository ها
  • ساختن Application Service ها
  • پیاده سازی Handler ها

فصل چهارم: پیاده سازی Identity Service

  • ساختن User Entity Hash کردن پسوردها ذخیره کردن User Data انجام Registration و Log in کردن

فصل پنجم: استفاده کردن از JSON Web Token

  • بررسی JSON Web Token ها پیاده سازی JSON Web Token با HMAC Authenticate کردن User

فصل ششم: تمام کردن کار API Gateway

  • پیاده سازی Event Handler ها ذخیره کردن داده ریفکتور کردن Endpoint ها اجر کردن HTTP Request ها

فصل هفتم: پیاده سازی Testing

  • تست کردن API تست کردن Activities Service تست کردن Identity Service

فصل هشتم: انجام Dockerizing و Deploy کردن برنامه

  • اجرا کردن سرویس ها با Docker
  • استفاده کردن از Docker Compose
  • ذخیره کرده Docker Image ها در یک Hub
  • Deploy کردن برنامه به Cloud
دیدگاه کاربران

دیدگاه ها

برای ثبت دیدگاه ابتدا وارد حساب کاربری شوید.
هنوز دیدگاهی برای این محصول تایید نشده است.