آموزش منطق و مقدمات برنامه نویسی به همراه الگوریتم و فلوچارت آموزش منطق و مقدمات برنامه نویسی به همراه الگوریتم و فلوچارت
021-88146330
021-88146323
0

سبد خرید شما خالی است!

آموزشگاه برنامه نویسی تحلیل‌داده

با مجوز رسمی از سازمان فنی و حرفه‌ای کشور

ورود / ثبت‌نام

ورود کاربر جدید هستید؟ ثبت نام کنید

وبینار رایگان میکروسرویس

وبینار رایگان میکروسرویس
نوع دوره شهریه نام استاد مدت زمان تاریخ شروع زمان برگزاری پیشنیاز وضعیت دوره
حضوری یا آنلاین تومان مهندس آزاد 4 ساعت 1401/11/27 پنجشنبه ساعت 16:30 تا 20:30 ندارد
وبینار میکروسرویس

در این وبینار به معرفی الگوها و رویکردهای طراحی توسعه نرم افزار می پردازیم. همچنین تمرکز اصلی وبینار را، بررسی چالشهای پیاده سازی الگوی معماری Microservices و رویکرد طراحی Domain Driven Design(DDD) در تیم های نرم افزاریی قرار دادیم و سعی میکنیم راهکارها و الگوهایی که برا حل این چالشها وجود دارند رو معرفی نماییم، تا بتوانیم نقشه راه خوبی رو ازچگونگی پیاده سازی این معماری برای شرکت کنندگان ترسیم کنیم.



Software Architecture و Software Architecture Style

معماری نرم‌افزار شناخت کامپوننتهای سیستم و تشخیص ارتباط بین آن‌هاست. میکروسرویس یک Architecture Style یا همان معماری نرم‌افزار است.

بررسی تعریف Software Architecture و Software Architecture Style

وبینار میکروسرویس قسمت اول

بررسی تعریف Software Architecture  و Software Architecture Style

N-Layer Architecture Style

سیستم را به لایه‌های متعدد که هرکدام دارای وظیفهٔ مشخصی است تقسیم می‌نماییم که هر لایه دارای وظیفهٔ تعیین شده است. لایه کاربر، لایه‌ای برای ارائه قوانین کسب‌و‌کار، لایه مکانیزم دسترسی به دیتابیس از جمله لایه‌های تشکیل‌دهنده N-Layer هستند. معماری N-Layer گاهی به‌عنوان ‌ N-Tier نیز شناخته می‌شود.

بررسی N-Layer Architecture Style

وبینار میکروسرویس قسمت دوم

بررسی  N-Layer Architecture Style

MicroKernel Architecture Style

الگوی معماری میکرو کرنل از دو جزء ماژول‌های سیستم و ماژول‌های پلاگین تشکیل شده است. معماری میکرو کرنل به شما این امکان را می‌دهد که ویژگی‌های برنامه را به‌عنوان افزونه به برنامه اصلی اضافه نمایید و توسعه‌پذیری و همچنین امکان جداسازی و تفکیک ویژگی‌ها را فراهم می‌کند.

بررسی MicroKernel Architecture Style

وبینار میکروسرویس قسمت سوم

بررسی  MicroKernel Architecture Style

Pipe & Filter Architecture Style

معماری pipe & filter یکی از رایج‌ترین سبک‌های معماری است که در طراحی سیستم‌های نرم‌افزاری مورداستفاده قرار می‌گیرد. این معماری شامل یک‌سری مراحل مجزا است که در یک توالی قابل‌پیش‌بینی انجام می‌شود. درواقع یک سبک معماری مبتنی بر مؤلفه است که امکان تجزیه فرایندهای یکپارچه را به اجزای مستقل و کوچک فراهم می‌کند. داده‌ها از پایپ به فیلترهای منتقل می‌شوند و داده‌های نهایی در data sink به هم می‌رسند.

بررسی Pipe & Filter Architecture Style

وبینار میکروسرویس قسمت چهارم

بررسی  Pipe & Filter Architecture Style

SOA Architecture Style

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

معماری سرویس‌گرا (SOA) روشی برای توسعه نرم‌افزار است که از اجزای نرم‌افزاری به نام سرویس‌ها برای ایجاد برنامه‌های کاربردی تجاری استفاده می‌کند. هر سرویس یک قابلیت تجاری را ارائه می‌دهد و سرویس‌ها همچنین می‌توانند در پلتفرم‌ها و زبان‌ها با یکدیگر ارتباط برقرار کنند.

بررسی SOA Architecture Style

وبینار میکروسرویس قسمت پنجم

بررسی  SOA Architecture Style

Microservices Architecture Style

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

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

بررسی Microservices Architecture Style

وبینار میکروسرویس قسمت ششم

بررسی  Microservices Architecture Style

معماری Monolith

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

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

فناوری مونولیت به اندازه فناوری میکروسرویس پیچیده نیست. در مجموع، ماهیت مستقل یک برنامه مونولیت؛ استقرار، مدیریت و نگهداری آن را نسبت به یک معماری میکروسرویس آسان‌تر می‌کند.

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

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

بررسی مزایا و معایب معماری Monolith

وبینار میکروسرویس قسمت هفتم

 بررسی  مزایا و معایب  معماری Monolith

Distributed System

در معماری توزیع‌شده، اجزا بر روی پلتفرم‌های مختلفی ارائه می‌شوند و چندین مؤلفه می‌توانند از طریق یک شبکه ارتباطی با یکدیگر همکاری کنند تا به یک هدف خاص دست یابند. در این معماری، پردازش اطلاعات به یک ماشین محدود نمی شود، بلکه بر روی چندین کامپیوتر مستقل توزیع می شود. یک سیستم توزیع شده را می توان با معماری مشتری-سرور نشان داد که پایه معماری های چند لایه را تشکیل می دهد. چندین چارچوب فناوری برای پشتیبانی از معماری های توزیع شده وجود دارد، از جمله : J2EE، CORBA، دات نت، AXIS Java، و سرویس های Globus Grid.

بررسی 8 استدلال غلط در پیاده سازی Distributed System

وبینار میکروسرویس قسمت هشتم

 بررسی 8 استدلال غلط در  پیاده سازی  Distributed System

بررسی مزایا و معایب معماری مایکروسرویس ها

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

مزایای معماری میکروسرویس

  • امکان تحویل و استقرار مداوم برنامه های بزرگ و پیچیده را فراهم می کند.
  • سرویس ها کوچک هستند و به راحتی نگهداری می شوند.
  • هر سرویس به طور مستقل قابل استقرار است.
  • به طور مستقل مقیاس پذیر است.
  • معماری میکروسرویس تیم ها را قادر می سازد تا مستقل باشند. این ویژگی امکان تست و پذیرش فناوری های جدید را آسان می کند.

مزایای معماری میکروسرویس

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

بررسی مزایا و معایب معماری مایکروسرویس ها

وبینار میکروسرویس قسمت نهم

بررسی  مزایا و معایب معماری مایکروسرویس ها

معرفی اصول پیاده‌سازی معماری مایکروسرویس‌ها

درسیستمهای توزیع شده تئوری به نام CAP وجود دارد. این تئوری اشاره به این مطلب دارد که در این سیستمها نمیتوان سه ویژگی (Cnsistency, Availability, partition tolerance) را همزمان پیاده سازی کرد.

  • Cnsistency : یا همان سازگاری به این معناست که تمامی گره های (node) سرور بتوانند داده یکسانی را دریافت نمایند. برای رخ دادن این قانون داده هایی که روی یک گره قرار دارند باید به سرعت روی سایر گره ها فرستاده شوند.
  • Availability : دسترس پذیری؛ به این معناست که در صورتیکه بخشی از سیستم آسیب ببیند همچنان پاسخ معتبری برای هر درخواست وجود داشته باشد.
  • partition tolerance: اتصال قطع شده در سیستم را پارتیشن می نامیم. این مسئله به تحمل پذیری خطا در سیستم اشاره دارد و بیان می کند در صورت ایجاد خرابی؛ سیستم همچنان به کار خود ادامه دهد.
  • معرفی اصول پیاده سازی معماری مایکروسرویس ها

    وبینار میکروسرویس قسمت دهم

     معرفی اصول پیاده سازی معماری  مایکروسرویس ها

    نحوه ریفکتور کردن معماری Monolith به Micriservices

    در ادامه به بررسی روند تبدیل اپلیکیشن مونولیت به اپلیکیشن میکروسرویس میپردازیم. برای انجام این فرآیند؛ چهار گام زیر را پیش میگیریم.

  • گام اول : جداسازی کد (Split the code)
  • گام دوم : جداسازی پایگاه داده (Split the database)
  • گام سوم : تعریف Standalone Delivery Service
  • گام چهارم : استفاده از Standalone Delivery Service
  • نحوه ریفکتور کردن معماری Monolith به Micriservices

    وبینار میکروسرویس قسمت یازدهم

     نحوه ریفکتور کردن معماری  Monolith  به  Micriservices

    نحوه استفاده از رویکرد DDD برای مشخص کردن اندازه سرویس ها

    یک زیر دامنه بخشی اختیاری از نام دامنه اینترنتی است که قبل از دامنه اصلی و TLD ظاهر می‌شود. زیر دامنه‌ها معمولاً برای جداسازی عملکردهای متمایز یک وب‌سایت، مانند وبلاگ، فروشگاه و... استفاده می‌شوند.

    نحوه استفاده از رویکرد DDD برای مشخص کردن اندازه سرویس ها

    وبینار میکروسرویس قسمت دوازدهم

    نحوه استفاده از رویکرد  DDD  برای مشخص کردن  اندازه سرویس ها

    بررسی الگوی SharedDatabase

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

    TahlildadehTV

    بررسی الگوی SharedDatabase

    وبینار میکروسرویس قسمت سیزدهم
    مهندس آزاد

    بررسی الگوی Database PerService

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

    بررسی الگو های CQRS و Event Sourcing

    وبینار میکروسرویس قسمت شانزدهم

    بررسی  الگو های  CQRS  و  Event Sourcing

    بررسی الگوی SAGA برای مدیریت Consistency میان سرویسها

    الگوی معماری Saga مدیریت تراکنش را با استفاده از دنباله ای از تراکنش های محلی فراهم می کند. Saga دنباله ای از تراکنشهای محلی است. هر سرویس در یک Saga تراکنش خود را انجام می دهد و یک رویداد را منتشر می کند. سرویس های دیگر به آن رویداد گوش می دهند و تراکنش محلی بعدی را انجام می دهند. اگر یک تراکنش به دلایلی شکست بخورد، Saga همچنین تراکنش های جبرانی را اجرا می کند تا تاثیر تراکنش های قبلی را خنثی کند.

    بررسی الگوی SAGA برای مدیریت Consistency میان سرویسها

    وبینار میکروسرویس قسمت پانزدهم

    بررسی  الگوی  SAGA  برای مدیریت Consistency  میان سرویسها

    بررسی الگو های CQRS و Event Sourcing

    (Command Query Responsibility Segregation)CQRS یک الگوی معماری است که یک شکاف دقیق را در یک برنامه تجویز می‌کند؛ تقسیمی بین بخشی که به عملیات پردازش (Command) می‌پردازد و بخشی که به Query ها پاسخ می‌دهد. در واقع می‌توان گفت Command درخواست‌های نوشتن و Query درخواست خواندن است.

    بررسی الگو های Outbox ,Idempotent Consumer

    وبینار میکروسرویس قسمت هفدهم

     بررسی الگو های  Outbox ,Idempotent Consumer

    بررسی الگو های Outbox ,Idempotent Consumer

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

    TahlildadehTV

    بررسی الگو های Outbox ,Idempotent Consumer

    وبینار میکروسرویس قسمت هفدهم
    مهندس آزاد

    بررسی الگو های Service Discovery, Service registeryApi Gateway

    Service Discovery شامل کشف و مکان‌یابی خودکار سرویس‌ها و دستگاه‌ها در شبکه است. استاندارد شبکه مورداستفاده SDP (service discovery protocol) است که می‌تواند به client جهت شناسایی منابع در شبکه کمک کند. Service Discovery با کمک به کاربران برای یافتن منابع سازگار مانند دستگاه‌های دارای بلوتوث در نزدیکی خود، به تسهیل تلاش‌های پیکربندی کمک کرد. اخیراً، این مفهوم گسترش‌یافته است تا منابع مبتنی بر کانتینر توزیع شده را به‌عنوان خدماتی که می‌توان به‌صورت پویا کشف و به آنها دسترسی داشت، در نظر گرفت.

    بررسی الگو های Service Discovery, Service registeryApi Gateway

    وبینار میکروسرویس قسمت هجدهم

    بررسی الگو های Service Discovery, Service registeryApi Gateway

    بررسی الگوی Circuit Breaker

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

    بررسی الگوی Circuit Breaker

    وبینار میکروسرویس قسمت نوزدهم

    بررسی الگوی  Circuit Breaker

    بررسی مفهوم Observability در معماری Microservices

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

    بررسی مفهوم Observabilty در معماری Microservices

    وبینار میکروسرویس قسمت بیستم

    بررسی مفهوم Observabilty  در معماری  Microservices
    دوره آموزش پایتون آموزشگاه تحلیل داده
    مهندس آزاد مدرس دوره

    استاد آزاد

    Top Skills

    • ASP.NET
    • C#
    • Test Driven Development

    Certifications

    Advanced Distributed Systems Design using SOA & DDD

    Experience

    Rahyab Rayaneh Gostar
    CTO
    April 2021 - Present (6 months)

     Sekhavat F.C.I.
    Technical Team Lead
    2016 - Present (5 years)
    Tehran Province, Iran

     Core Banking, Accounting, Banking, Treasury
    DDD, CQRS, ESB, WPF, WF

     Tahlildadeh Institute
    Lecturer
    October 2019 - Present (2 years)
    Enterprise Architecture , Domain Driven Design, CQRS

     Noyan System
    Technical Team Lead
    January 2015 - June 2016 (1 year 6 months)
    Company belongs to SAMAN financial group

     Faraconesh Corporation
    Senior Software Developer
    April 2011 - December 2014 (3 years 9 months)

     SimplyDesk
    Senior Software Developer
    September 2013 - September 2014 (1 year 1 month)

    SimplyDesk is a cloud based ITIL v3 service desk.
    Request for a demo at http://www.simplydesk.com and you are able to see the application live on the web

     HonoPardaz
    Web Developer
    September 2009 - January 2011 (1 year 5 months)

    Education

    Azad University (IAU)

    گواهی پایان دوره

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

    مشاهده نمونه مدرک
    همین حالا ثبت نام کن!

    آخرین اخبار وبلاگ

    همستر کامبت چیست؟ (با آپدیت روزانه)

    همستر کامبت چیست؟ (با آپدیت روزانه)

    Hamster Kombat یک بازی جذاب و جدید است که روی پلتفرم تلگرام اجرا می‌شود. این بازی به شما اجازه می‌دهد تا در دنیای ارزهای دیجیتال به رقابت بپردازید و سکه‌های مجازی کسب کنید.

    پیش‌بینی موج گرما با هوش مصنوعی

    پیش‌بینی موج گرما با هوش مصنوعی

    با توجه به افزایش شدت و فراوانی موج‌های گرما، استفاده از تکنولوژی‌های نوین مانند AI می‌تواند به بهبود دقت پیش‌بینی‌ها و کاهش اثرات منفی این پدیده‌های جوی کمک کند.این مقاله به بررسی نقش هوش مصنوعی (AI) و یادگیری ماشینی (ML) در پیش‌بینی دقیق موج‌های گرما و آب و هوا در ایران می‌پردازد.

    بهترین انواع شخصیت برای حرفه‌ی برنامه‌نویسی

    بهترین انواع شخصیت برای حرفه‌ی برنامه‌نویسی

    آیا تا به حال به فکر این بوده‌اید که چگونه می‌توانید بهترین نسخه‌ی خودتان در محیط کار و زندگی شخصی خودتان باشید

    برنامه نویسی را از کجا شروع کنیم؟

    برنامه نویسی را از کجا شروع کنیم؟

    سعی داریم تو این بلاگ به طور کامل شمارو با مراحل ورود به دنیای برنامه نویسی و مسیر های پیش رو آشنا کنیم تا بتونین درست تر و مطمئن تر راهتون رو انتخاب کنین.

    مشاهده موارد بیشتر

    نظرات شما

    برای ارسال سوال لازم است، ابتدا وارد سایت شوید.
    آموزش برنامه نویسی محمد دهقان 1401/12/08
    میکروسرویس

    دوره آموزش میکروسرویس به صورت مجازی هم برگزار میشه؟

    آموزش برنامه نویسی ادمین 1401/12/09

    سلام وقت بخیر بله دوره آموزش میکروسرویس به صورت حضوری و آنلاین برگزار میشه.

    آموزش برنامه نویسی افشین رفوآ 1401/12/18

    this is for test