آموزش معماری پیشرفته میکروسرویس ها در نرم افزار

مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش معماری پیشرفته میکروسرویس ها در نرم افزار یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی مرجع الگوهای طراحی در معماری مایکروسرویس ها است که با نام اصلی Microservices Architectural Design Patterns Playbook از شرکت Pluralsight منتشر شده است.

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

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

Microservices-Architectural-Design-Patterns-Playbook

معماری نرم افزار شامل مجموعه ای از تصمیم گیری ها بر اساس فاکتورهای متعددی است که تمامی این تصمیم گیری ها می‌توانند بر روی قابلیت هایی از قبیل کیفیت کارایی (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 عرض کرد.

سرفصل مطالب آموزش ویدئویی معماری پیشرفته میکروسرویس ها در نرم افزار

فصل اول: مقدمه دوره آموزشی

  • مقدمه دوره آموزشی

فصل دوم: چگونه Microservice ها را با استفاده از Bounded Context ها Scope کنیم؟

  • مقدمه
  • ضرورت Scope کردن Microsevices
  • معرفی Domain Driven Design
  • معرفی Bounded Context
  • معرفی Ubiquitous Language
  • استفاده کردن از Microsevices هایی که Bound نشدن
  • استفاده کردن از تکنیک Bounded Contexts برای Microservices
  • Scope کردن Microsevices با استفاده از Bounded Context
  • بررسی Aggregation
  • جمع بندی

فصل سوم: چگونه Microservice ها Asynchronous را معماری کنیم؟

  • مقدمه
  • Microservices های Asynchronous
  • گزینه های مربوط به Microservice ها Asynchronous
  • استفاده کردن از تکنیک های مبتنی بر Event
  • آموزش عملی تکنیک های مبتنی بر Event
  • بررسی الگوی Competing Workers
  • آموزش عملی الگوی Competing Workers
  • بررسی الگوی Fanout
  • آموزش عملی الگوی Fanout
  • بررسی Async Api Call
  • جمع بندی

فصل چهارم: چگونه Microservice های مبتنی بر API را معماری کنیم؟

  • مقدمه
  • بررسی معماری API های Microservices
  • بررسی Functional Requirements
  • بررسی گزینه های معماری
  • بررسی سبک معماری REST
  • مثالی از یک RESTFul API
  • Microcervices های RESTFul کاربردی
  • بررسی الگوی طراحی Facde
  • بررسی الگوی طراحی Proxy
  • بررسی الگوی Stateless Service
  • جمع بندی

فصل پنجم: چگونه Microcervices ها را با هم ترکیب کنیم؟

  • مقدمه
  • بررسی الگوهای ترکیب یا Composition
  • بررسی الگوی Broker Composition
  • بررسی الگوی Aggregate Compposition
  • بررسی الگوی chained Composition
  • بررسی الگوی Proxy Composition
  • بررسی الگوی Batch Composition
  • جمع بندی

فصل ششم: چگونه Data Consistency را در Microservices به دست آوریم؟

  • مقدمه
  • بررسی Data Consistency
  • بررسی گزینه های مربوط به Data Consistency
  • بررسی Two Phace Commit
  • بررسی الگوی Saga
  • مثالی از الگوی Saga
  • پیاذه سازی الگوی Saga
  • بررسی Eventual Consistency
  • جمع بندی

فصل هفتم: چگونه دسترسی به Microservices ها را با استفاده از یک API Gateway متمرکز کنیم؟

  • مقدمه
  • نیاز برای دسترسی متمرکز و یا Centralize Access
  • بررسی API Gateway
  • مثالی از API Gateway
  • بررسی Kong API Gateway
  • جمع بندی

فصل هشتم: چگونه Database ها Monolithic را در Microservice ها بشکنیم؟

  • مقدمه
  • بررسی Microdatabase ها
  • روشی برای طراحی Database ها
  • بررسی تکنیک Event Driven
  • بررسی تکنیک Event Sourcing
  • بررسی تکنیک CQRS
  • استفاده کردن از روش Greenfield DataBase ها
  • استفاده کردن از استراتژی Brownfield Migration
  • جمع بندی

فصل نهم: چگونه Microservices ها را مقاوم تر یا Resilient کنیم؟

  • مقدمه
  • الگوها و روش ها
  • بررسی الگوی طراحی Timeout
  • بررسی الگوی طراحی Circuit Breaker
  • بررسی الگوی طراحی Retry
  • بررسی الگوی طراحی Bulkheads

فصل دهم: چگونه یک معماری Microsevices Resilient را ایجاد کنیم؟

  • جمع بندی

فصل یازدهم: چگونه Microservices ها را Backwards Compatible کنیم؟

  • مقدمه
  • بررسی Backwards Compatibility
  • چالش های مربوط به Backwards Compatibility
  • چگونه Backward Compatibility را به دست آوریم
  • آگاهی نسبت به Compatibility
  • بررسی تغییرات سازگار و یا Compatible
  • بررسی Contract Consistency
  • تست کردن Compatibility
  • انجام Contract Testing در سطح بالا
  • استراتژی های Version کردن
  •  بررسی HTTP Headers
  • بررسی Request Path
  • جمع بندی

فصل دوازدهم: چگونه Microservices Contracts ها را تعریف و مستند سازی کنیم؟

  • مقدمه
  • بررسی Contract ها در Microservices
  • بررسی Contract های Consumer Driven
  • بررسی Microservice های مبتنی بر Resource
  • بررسی Microservice های مبتنی بر Action
  • بررسی Microservice های مبتنی بر Task
  • زبان های تعریف Interface
  • بررسی Swagger
  • جمع بندی

فصل سیزدهم: چگونه Centralized Logging را در Microservices پیاده سازی کنیم؟

  • مقدمه
  • معرفی Centralized Logging
  • مثالی از Centralized Logging
  • بررسی فرمت Consistent Logging
  • بررسی Logging Levels
  • بررسی مفهوم Transaction Transparency
  • مثالی از Centralized Logging
  • جمع بندی

فصل چهاردهم: چگونه از داده های مربوط به Microservice های توزیع شده گزارشگیری کنیم؟

  • مقدمه
  • Service Call های مربوط به گزارشگیری
  • بررسی مفهوم Data Push
  • گزارش دادن به Event Subscriber ها
  • گزارش دادن Event ها یا استفاده از Gateway
  • استفاده کردن از Backup Import ها برای گزارشگیری
  • بررسی Data-wareHouse های مبتنی بر داده و ETL
  • جمع بندی

فصل پانزدهم: چگونه On-Premises Microservices ها را Automate کنیم؟

  • مقدمه
  • بررسی Continuous Integration
  • بررسی ابزارها و فرایند های Continuous Integration
  • بررسی Continuous Delivery
  • بررسی ابزارها و فرایند های Continuous Delivery
  • بررسی Automation در سطح بالا
  • جمع بندی ابزارهای Automation
  • جمع بندی

فصل شانزدهم: چگونه با Microservice های مبتنی بر Cloud کار کنیم؟

  • مقدمه
  • بررسی Microsservice های On-Premise
  • بررسی IAAS
  • بررسی PAAS
  • بررسی SAAS
  • بررسی روش Hybrid
  • بررسی Cloud Automation در سطح بالا
  • جمع بندی

فصل هفدهم: چگونه Configuration ها را در Microservice ها مدیریت کنیم؟

  • مقدمه
  • بررسی Deployment Severs
  • بررسی الگوی Externalized Configuration
  • بررسی ابزار های مدیریت Configuration
  • مثالی از ابزار های مدیریت Configuration
  • بررسی Container ها
  • جمع بندی

فصل هجدهم: چگونه مباحث Reisteration و Discovery مربوط به Microservice ها را مدیریت کنیم؟

  • مقدمه
  • بررسی Client Side Discovery
  • بررسی Server Side Discovery
  • بررسی Service Registeration
  • ابزار ها
  • جمع بندی

فصل نوزدهم: چگونه Microservice ها را Monitor کنیم؟

  • مقدمه
  • بررسی مبحث Monitoring در Microservice ها
  • بررسی متریک های کلیدی در مبحث Monitoring
  • بررسی متریک های SLA در مانیتورینگ
  • بررسی داشبورد های Monitoring
  • بررسی مکانیزم Alerting در Monitoring
  • تعریف کردن آستانه و یا Thresholds برای Alerts
  • ابزارها و الگوهای Monitoring
  • جمع بندی

نقد و بررسی‌ها

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

اولین کسی باشید که دیدگاهی می نویسد “آموزش معماری پیشرفته میکروسرویس ها در نرم افزار”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته های محصولات

افزودن به سبد خرید