پرووید
منو

آموزش پیاده سازی Cross-cutting Concern ها در معماری میکروسرویس ها

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

آموزش پیاده سازی Cross-cutting Concern ها در معماری میکروسرویس ها یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی پیاده سازی Cross-cutting Concern ها در معماری مایکروسرویس ها است که با نام اصلی Implementing Cross-cutting Concerns for ASP.NET Core Microservices از شرکت Pluralsight منتشر شده است.

Cross-cutting Concern ها چه هستند؟

یکی از مفهوم های بسیار مهم در پیاده سازی نرم افزار های موفق درک کردن concern می باشد. یک concern در واقع بخشی از سیستم نرم افزاری است که بر اساس functionality های آن سیستم نرم افزاری دسته بندی و یا تقسیم گردیده است. Concern ها می توانند به جزئیات بسیار سطح پایین و یا جزئیات سطح بالا بپردازند. برای مثال جزئیات مربوط به کار کردن با دیتابیس و یا پیاده سازی کردن یک محاسبه می تواند در قالب یک concern تعریف بشود. یک سیستم نرم افزاری و کد نوشته شده برای آن می تواند به قسمت های منطقی تقسیم بگردد که هر کدام از آنها برای برطرف کردن یک Concern می باشد.

Module Introduction - نمونه ای از بخش Implementing Logging در آموزش پیاده سازی Cross-cutting Concern ها در معماری میکروسرویس ها
نمونه ای از بخش «Implementing Logging» در آموزش پیاده سازی Cross-cutting Concern ها در معماری میکروسرویس ها

در یک دسته بندی Concern ها را به دو دسته کلی و core-concerns و Cross-cutting Concerns دسته بندی می کنیم. به بیان کوتاه Cross-cutting Concern ها در چندین اپلیکیشن ماژول مختلف به صورت مشترک مورد بررسی قرار می گیرند. به عبارت دیگر مفهوم Cross-cutting Concerns به functionality هایی دلالت دارند که برای نیازمندیهای ثانویه و یا secondary requirement پیاده سازی می شود. مباحثی از قبیل Log و security و حتی data transfer تماماً جزء concern هایی هستند که در هر کدام از ماژول های یک برنامه مورد نیاز خواهند بود و از این جهت تحت عنوان Cross-cutting Concern شناخته می شوند.

معماری مایکروسرویس ها (Microservices Architecture) چیست؟

مایکروسرویس ها که تحت عنوان معماری مایکروسرویسی نیز از آنها یاد می شوند یک سبک معماری Architectural Style است که با استفاده از آن یک سیستم نرم افزاری که به مجموعه ای از سرویس هایی که قابلیت های مختلفی را دارند شکسته می شود. سرویس های موجود در معماری مایکروسرویسی باید دارای قابلیت های مختلفی از قبیل قابلیت نگهداری و تست پذیری بالا، قابلیت loosely coupled بودن، قابلیت به طور مستقل deployable بودن قابلیت سازماندهی شدن بر اساس business capability ها و بسیاری موارد دیگر پیاده سازی می شود. در معماری مایکروسرویسی وظیفه توسعه و مدیریت یک مایکروسرویس به یک تیم توسعه نرم افزار داده می شود و از این جهت هر تیم مسئولیت یک مایکروسرویس خاص را عهده دار خواهند شد.

Centralizing Logs with the ELK Stack - نمونه ای از بخش Implementing Centralized Logging for Microservices در آموزش پیاده سازی Cross-cutting Concern ها در معماری میکروسرویس ها
نمونه ای از بخش «Implementing Centralized Logging for Microservices» در آموزش پیاده سازی Cross-cutting Concern ها در معماری میکروسرویس ها

با استفاده از معماری مایکروسرویسی به سادگی می توانید سیستم های نرم افزاری بسیار بزرگ و پیچیده را در قالب مجموعه ای از مایکروسرویس های کوچک که با قابلیت اعتماد بسیار بالایی کار می کنند توسعه بدهید. علاوه بر این موضوع با استفاده از این معماری شما می توانید سازماندهی یک سیستم نرم افزاری را بر اساس تکنولوژی های مختلف ایجاد کنید. یکی از موضوعات بسیار مهم در معماری مایکروسرویسی توجه کردن به cross-cutting concern ها از قبیل Log و security می باشد. از آنجایی که در معماری مایکروسرویسی هر سرویس میتواند با تکنولوژی های منحصر به فرد خود ساخته شود امکان اینکه بتوانیم هر کدام از این cross-cutting concern ها را با روشهای مختلفی پیاده سازی کنیم وجود دارد. از همین جهت توجه به نحوه پیاده سازی صحیح هر کدام از این cross-cutting concern ها بسیار مهم می باشد.

طراحی Centralized Logging برای دنبال کردن رخدادهای میکروسرویس‌ها

در معماری میکروسرویس‌ها، رخدادهای مرتبط با یک عملیات ممکن است در چند سرویس مختلف ثبت شوند؛ بنابراین بررسی فایل یا خروجی هر سرویس به‌صورت جداگانه می‌تواند زمان‌بر باشد. آموزش Implementing Cross-cutting Concerns for ASP.NET Core Microservices بر پیاده‌سازی Logging متمرکز است و سپس به Centralized Logging می‌پردازد تا گردآوری و جست‌وجوی رخدادها ساختارمندتر شود. در این مسیر، انتخاب اطلاعاتی که باید ثبت شوند اهمیت دارد؛ زیرا پیام‌های بیش‌ازحد کم‌جزئیات تشخیص مشکل را دشوار می‌کنند و ثبت بی‌رویه داده‌ها نیز می‌تواند نویز زیادی ایجاد کند.

آموزش به اشتراک گذاشتن کد Logging میان سرویس‌ها و اضافه کردن پشتیبانی از Serilog را نیز پوشش می‌دهد. استفاده از منطق مشترک می‌تواند از تفاوت‌های غیرضروری در شیوه ثبت رخدادها جلوگیری کند و نگهداری این قابلیت را ساده‌تر سازد. همچنین Query گرفتن از Log ها با استفاده از Kibana در سرفصل‌ها قرار دارد تا بتوانید داده‌های گردآوری‌شده را جست‌وجو و بررسی کنید. این مباحث برای تیم‌هایی مناسب‌اند که می‌خواهند هنگام بروز خطا در یک سیستم چندسرویسی، پیام‌های مرتبط را از محیطی متمرکز دنبال کنند و از Logging به‌عنوان ابزار تشخیص و تحلیل رفتار سیستم بهره ببرند.

Structured Logging، Tracing و Health Check در سرویس‌های ASP.NET Core

این آموزش علاوه بر گردآوری Log ها، به Structured Logging و قالب‌بندی داده‌های Exception می‌پردازد. در Structured Logging، اطلاعات رخداد به شکل فیلدهای مشخص ثبت می‌شوند تا جست‌وجو و تحلیل آن‌ها بر اساس ویژگی‌های داده امکان‌پذیر باشد. این شیوه با ثبت صرفاً یک متن طولانی تفاوت دارد و می‌تواند استخراج اطلاعاتی مانند نوع رخداد یا جزئیات مرتبط با خطا را آسان‌تر کند. همچنین بررسی ارتباط Log ها هنگام استفاده از gRPC به مسئله دنبال کردن رخدادها در ارتباط میان سرویس‌ها مربوط می‌شود؛ موضوعی که در سامانه‌های توزیع‌شده اهمیت دارد.

سرفصل‌ها بررسی .NET Core Tracing و پیاده‌سازی Health Check ها در میکروسرویس‌ها را نیز شامل می‌شوند. Tracing به دنبال کردن جریان اجرای عملیات کمک می‌کند، در حالی که Health Check می‌تواند اطلاعاتی درباره وضعیت سرویس یا وابستگی‌های آن ارائه دهد. در کنار Logging، این قابلیت‌ها دید بهتری از وضعیت عملیاتی سیستم فراهم می‌کنند؛ برای مثال، می‌توان میان رخداد ثبت‌شده، مسیر اجرای درخواست و وضعیت فعلی یک سرویس ارتباط برقرار کرد. آموزش بر پیاده‌سازی این نگرانی‌های مشترک در ASP.NET Core تمرکز دارد تا ثبت و بررسی اطلاعات عملیاتی در بخش‌های مختلف معماری میکروسرویس‌ها قابل‌مدیریت‌تر باشد.

سرفصل مطالب آموزش ویدئویی پیاده سازی Cross-cutting Concern ها در معماری میکروسرویس ها

فصل اول: مقدمه این دوره آموزشی
  • مقدمه این دوره آموزشی
فصل دوم: پیاده سازی کردن Logging
  • مقدمه
  • اهمیت Logging کردن
  • انتخاب اینکه چه چیزی را Log کنیم
  • بررسی Abstraction های مربوط به Logging
  • بررسی پیش فرض Logging Behavior
  • بررسی Log Level ها
  • فیلتر کردن پیام های ورود به سیستم
  • ورود به سیستم از کد برنامه
  • Logging کردن در Application Exception ها
  • Logging کردن Application Exception ها
  • به اشتراک گذاشتن کد Logging به صورت مشترک
  • جمع بندی
فصل سوم: پیاده سازی Centralized Logging برای میکروسرویس ها
  • مقدمه
  • متمرکز کردن و یا Centralizing Logs کردن با استفاده از ELK Stack
  • اضافه کردن پشتیبانی برای Serilog
  • ورود به Elasticsearch با استفاده از Serilog
  • Querying گرفتن Log ها با استفاده از Kibana
  • Correlat کردن ogging بین میکروسرویس ها
  • بررسی NET Core Tracing.
  • کنترل کردن TraceId Format
  • معرفی Structured Logging
  • غنی کردن Log Dataها
  • قالب بندی Exception Data
  • استفاده از Logging Scopes
  • ارتباط Log ها هنگام استفاده از gRPC
  • ارتباط Log ها هنگام استفاده از Service Bus
  • جمع بندی
فصل چهارم: پیاده سازی Health Check ها در میکروسرویس ها
  • مقدمه
  • معرفی Health Check ها
  • بررسی Health Check ها و میکروسریس ها
  • اضافه کردن Liveness Health Check ها
  • اضافه کردن Readiness Health Check
  • افزودن یک پروژه مشترک برای Reusable Health Check Code
  • انجام Health Checking بر روی Dependency های مربوط به API
  • ایجاد یک Health Check برای Azure Service Bus
  • جمع بندی
دیدگاه کاربران

دیدگاه ها

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