آموزش منطق و مقدمات برنامه نویسی به همراه الگوریتم و فلوچارت آموزش منطق و مقدمات برنامه نویسی به همراه الگوریتم و فلوچارت
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

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

N-Layer Architecture Style

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

بررسی N-Layer Architecture Style

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

MicroKernel Architecture Style

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

بررسی MicroKernel Architecture Style

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

Pipe & Filter Architecture Style

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

بررسی Pipe & Filter Architecture Style

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

SOA Architecture Style

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

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

بررسی SOA Architecture Style

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

Microservices Architecture Style

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

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

بررسی Microservices Architecture Style

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

معماری Monolith

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

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

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

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

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

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

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

Distributed System

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

بررسی 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

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

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

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

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

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

    بررسی الگوی SharedDatabase

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

    TahlildadehTV

    بررسی الگوی SharedDatabase

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

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

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

    بررسی الگوی SharedDatabase

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

    بررسی الگوی  SharedDatabase

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

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

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

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

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

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

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

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

    بررسی الگو های 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

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

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

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

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

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

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

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

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

    بررسی مفهوم 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)

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

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

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

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

    راهنمای جامع هوش مصنوعی؛ نقشه راه یادگیری

    راهنمای جامع هوش مصنوعی؛ نقشه راه یادگیری

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

    رقص فریبنده یادگیری ماشین و هوش مصنوعی با صنعت بازی

    رقص فریبنده یادگیری ماشین و هوش مصنوعی با صنعت بازی

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

    مقایسه Django و NodeJS، ویژگی ها و تفاوت ها

    مقایسه Django و NodeJS، ویژگی ها و تفاوت ها

    در این بلاگ، ما اصلی‌ترین تفاوت‌های بین دو تکنولوژی پرطرفدار Django و Node.js را بررسی خواهیم کرد.

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

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

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

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

    نظرات شما

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

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

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

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

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

    this is for test