4,990,000 تومان

احسان بابائی
BackEnd , DotNet ,Angularمعماری نرم افزار-میکروسرویس
ستارگان میکروسرویس
بررسی اجمالی
- فصل 10
- قسمت 173
- مدت زمان 40:10:54
- سطح پیشرفته
- وضعیت به اتمام رسیده
- سورس کد دارد
- نحوه مشاهده SpotPlayer
در دوره ستارگان میکروسرویس به شما نحوه استفاده از این معماری برای طراحی و پیاده سازی یک سایت فروشگاهی را آموزش می دهیم. شما پس از این دوره تسلط کافی به معماری میکروسرویس را بدست می آورید و با چالش های که در این معماری وجود دارد آشنا می شوید.
در ادامه مطالبی که در این دوره آموزش داده میشود را معرفی می کنیم.
Tools For Microservices
در معماری میکروسرویسها ابزارهای زیادی وجود دارد که ما میتوانیم انتخاب کنیم. اما همیشه برای انتخاب ابزار مناسب چالشهای برای تیم وجود دارد. در این فصل به معرفی ابزارهای که در معماری میکروسرویسها میتوانیم انتخاب کنیم میپردازیم.
در این فصل موارد زیر را بررسی میکنیم
- زبانهای برنامهنویسی
- معرفی ابزارهای برای ایجاد ارتباط بین سرویسها
- Message Broker
- ابزارهای برای Caching
- Fail alert tools
- Locale proof performance
DDD Bounded Context
برای اینکه بتوانیم یک برنامه با معماری مونولیتیک طراحی کنیم باید این برنامه بزرگ را به سرویسهای کوچکی تقسیم کنیم. یکی از روشهای که میتوانیم از آن برای تعیین محدوده و مرزبندی سرویسها استفاده کنیم Bounded Contextها است. در این فصل مقدمهای بر DDD را به شما آموزش میدهیم و شما را با Bounded Context آشنا میکنیم و سپس یک پروژه برای این دوره انتخاب میکنیم و با استفاده از Bounded Contextها مرزبندی بین سرویسها را مشخص میکنیم و در ادامه فصل بعدی به پیادهسازی این سرویسها میپردازیم.
Implementation Project
در این فصل به پیادهسازی سرویسها با استفاده از .Net میپردازیم. هرکدام از سرویسها بهصورت جداگانه با معماری و دیتابیس اختصاصی خود در Soulotionهای جدایی طراحی میشوند و پس از این فصل هر سرویسی بهصورت مستقل میتواند اجرا و خدمات ارائه کند. اما هنوز این سرویسها نمیتوانند یک نرمافزار واحد را ارائه کنند و باید با هم ارتباط داشته باشند. در فصل بعدی ارتباط بین سرویسها را ایجاد میکنیم که در نهایت بتوانیم از این سرویسها در قالب یک اپلیکیشن واحد استفاده نماییم.
Communication
در فصل قبلی سرویسهای پروژه را طراحی کردیم، این سرویسهای کوچک و خودمختار مستقل از هم هستند و هرکدام روی یک سرور مجزا اجرا میشوند. اما برای ارائه نتیجه مناسب به کاربران باید این سرویسها با هم ارتباط داشته باشند. در این فصل ما ارتباط بین سرویسها و روشهای انجام این کار را به شما آموزش میدهیم و سپس بهصورت عملی بین سرویسهای پروژه این ارتباطهای موردنیاز را ایجاد میکنیم که در نتیجه این ارتباطات بتوانیم از این پروژه بهعنوان یک نرمافزار کامل استفاده کنیم.
Testing
تا به اینجا کار ما توانستیم پروژه میکروسرویس خود را پیادهسازی کنیم و ارتباط بین آنها را ایجاد کنیم، اما هنوز خبری از تست نیست. ما باید بعد از هر تغییری از سلامت سیستم مطمئن شویم و یکی از سریعترین و کمهزینهترین روش اطمینان از سلامت سیستم تستهای خودکار است. اما تستهای خودکار برنامههای میکروسرویس با تستهای خودکار یک برنامه monolithic کمی متفاوت است.
در این فصل موارد زیر را بررسی میکنیم
- بررسی چالشهای تست میکروسرویسها
- آشنایی با استراتژیهای تست
- بررسی هرم تست
- آموزش نوشتن تست خودکار برای برنامههای .Net
- انواع تستهای که برای میکروسرویسها میتوانیم انجام دهیم
- پیادهسازی تست برای پروژه
Securing
امنیت یکی از مهمترین جنبههای یک بسته نرمافزاری میباشد و متأسفانه هرچند وقت یکبار شاهد سرقت اطلاعات یک بیزینس بزرگ هستیم. برنامهای که طراحی میکنیم باید در بالاترین سطح امنیت قرار داشته باشد و به طور مداوم حفرههای امنیتی رو شناسایی کنیم و این مشکلات را برطرف کنیم. اما پروژهای که تا به اینجای کار توسعه دادهایم هیچگونه امنیتی برای آن اعمال نکردهایم. امنیت در پروژههای میکروسرویس با پروژههای معماری Monolithic تفاوتهایی دارد و شما از همان سناریوهایی که برای یک برنامه یکپارچه استفاده کردهاید نمیتوانید برای ایمنسازی معماری میکروسرویسها استفاده کنید. در این معماری میکروسرویسها بهجز Authenticaion و Authirization کاربران استفادهکننده باید امنیت ارتباط بین سرویسها را هم برقرار کنیم. برای معماری میکروسرویسها پروتکل OAuth و OpenId Connect راهحلهای مناسبی میباشند.
در این فصل پروتکل oAuth وOpenId Connect را مورد بررسی قرار میدهیم و سپس از ابزارهای که OAuth را پیادهسازی کردهاند برای امنیت پروژه استفاده میکنیم.
Deploying
نصب و راهاندازی میکروسرویسها بر روی سرورها شاید توسط تیم توسعهدهنده انجام نشود اما در این فصل ما ابزارهای که برای این کار وجود دارد را به شما آموزش میدهیم و با این ابزارها انتشار نسخههای جدید میکروسرویسها را بر روی سرور بهصورت اتوماتیک انجام میدهیم. در این فصل با موارد زیر آشنا میشوید
- شناسایی چالشهای Deployment معماری monolithic
- آشنایی با اصطلاحات Deployment
- آشنایی با Container
- آموزش داکر
- آموزش Azure devops
- Deployment پروژه میکروسرویس
Monitoring
در یک برنامه Monolithic اگر مشکلی رخ دهد سریع متوجه میشویم که باید کجای سیستم را بررسی کنیم. اما همین کار در معماری میکروسرویسها نسبتا پیچیدهتر است، نرمافزار ما پخش شده روی سرورهای مختلفی و از هر سرویس ممکن است نسخههای متعددی در حال اجرا باشند و از همین رو عیبیابی سیستم پیچیدهتر و زمانبر میشود. برای رفع این مشکلات ما نیاز به یک سیستم مانیتورینگ داریم که در هر لحظه اطلاعات کاملی از وضعیت تمامی سرویسها در اختیار ما قرار دهد. در این فصل موارد زیر را بررسی میکنیم
- استراتژی Logging در معماری میکروسرویس
- استراتژی مانیتورینگ در معماری میکروسرویس
- معرفی ابزارهای که برای مانیتورینگ در .Net میتوانیم استفاده کنیم
- آموزش استفاده از Azure Diagnostics
- آموزش استفاده از Application Insights
- آموزش ElasticSearch(NoSql)
- LogStash
- Kibana
Scaling
پروژههای بزرگ با معماری میکروسرویسها پیادهسازی میشوند، و یک پروژه بزرگ باید مقیاسپذیری بالایی داشته باشد. در این فصل شما را با انواع روشهای که معماری میکروسرویس میتواند Scale شود آشنا میکنیم و یاد میگیرید چگونه سرویسهایی را ایجاد کنید که مقیاسپذیری بالایی داشته باشند.
Design Patterns and Best Practices
و در نهایت در این فصل به معرفی الگوهای طراحی که در معماری میکروسرویسها کاربرد دارند میپردازیم. شما بعداز این فصل میتوانید کدهای بنویسید که قابلیت استفاده مجدد بالاتری دارند و سرویسهای شما خیلی بهتر بتوانند با دیگر سرویسها ارتباط برقرار کنند.
فیلم این دوره محافظت شده، و از طریق پخش کننده SpotPlayer .قابل مشاهده میباشد
دانلود ویدیوها
1 - ابزارهای مورد نیاز
- انتخاب زبان برنامه نویسی00:08:33
- آشنایی با API Gataway00:14:29
- ارتباط بین سرویس ها00:05:37
- Message Broker00:13:14
- مدییریت خطا در میکروسرویس00:08:18
- آشنایی با سرویس دیسکاوری و معرفی ابزارها00:10:40
- ابزارهای کش00:12:27
- ابزارهای هشدار00:14:52
2 - مقدمه ای بر DDD
- ارتباط DDD با میکروسرویس00:05:31
- در چه پروژه های از DDD استفاده کنیم00:08:51
- Strategic Design And Tactical Design00:03:56
- آشنایی با Domain و Domain Model00:03:25
- آشنایی با Ubiquitous language00:07:15
- آشنایی با perspective00:05:45
- آشنایی با SubDomain ها00:04:40
- انواع Sub Domain00:06:19
- آشنایی با Bounded Context00:05:00
- آشنایی با Context Mapping00:11:13
- Entity و Object آشنایی با00:10:09
- آشنایی با Invariant00:03:25
- آشنایی با Aggregates00:08:23
3 - پياده سازي سرويس ها
- معرفی Rest Api00:20:50
- آموزش استفاده از GRPC در Asp.Net Core - قسمت اول00:43:43
- آموزش استفاده از GRPC در Asp.Net Core - قسمت دوم00:16:28
- بررسي پروژه ميكروسرويس00:07:18
- پیاده سازی سرویس محصولات00:24:21
- پیاده سازی سرویس سبد خرید00:28:24
- پیاده سازی سرویس تخفیف00:24:10
- پیاده سازی سرویس سفارش00:14:58
4 - ارتباط بین سرویس ها
- معرفی فصل 400:05:22
- بررسی ارتباط Asynchronous و Synchronous00:09:45
- نحوه ارتباط بین سرویس ها00:05:45
- سیستم های مبتنی بر پیام00:06:24
- معرفی RabbitMQ00:06:32
- RabbitMQ - ارسال و در یافت پیام در RabbitMQ00:22:31
- RabbitMQ - فعال سازی پنل مدیریت RabbitMQ00:07:25
- RabbitMQ - آشنایی با Durable - Exclusive -Auto-delete00:11:30
- RabbitMQ - Message Acknowledgment00:12:41
- RabbitMQ - Round-robin dispatching and Fair Dispatch00:11:05
- RabbitMQ - آشنایی با انواع Exchange00:08:42
- RabbitMQ - پیاده سازی Direct Exchange00:09:27
- RabbitMQ - پیاده سازی Fanout Exchange00:10:30
- RabbitMQ - پیاده سازی Topic Exchange00:07:16
- RabbitMQ - پیاده سازی Headers Exchange00:08:25
- RabbitMQ - مدیریت کاربران RabbitMQ00:03:38
- RabbitMQ - معرفی سایت CloudAMQP00:03:41
- معرفی پروژه فرانت اند00:07:58
- ایجاد ارتباط با میکروسرویس محصولات00:33:15
- نمایش محصولات00:06:33
- ایجاد ارتباط با میکروسرویس سبد خرید00:23:17
- مدیریت سبد خرید00:23:27
- استفاده از سرویس تخفیف00:48:29
- بررسی ارتباط های Synchronous در پروژه00:05:24
- ایجاد ارتباط Synchronous بین سرویس سبد خرید و تخفیف00:12:02
- بررسی ارتباط های Asynchronous مورد نیاز برای پروژه00:05:26
- افزودن Entity Product به سرویس سبد خرید00:22:07
- افزودن Entity Product به سرویس سفارش00:11:08
- Checkout Api براي سبد سرويس سبد خريد00:23:06
- ارسال سبد خرید در قالب یک message برای RabbitMQ در سرویس سبد خرید00:29:57
- دریافت پیام ثبت سفارش از RabbitMQ در سرویس سفارش00:16:48
- ثبت سفارش در سرویس سفارش00:14:10
- نمایش سفارشات در پروژه frontend00:17:32
- معرفی سرویس پرداخت00:03:16
- ایجاد سرویس پرداخت با معماری Clean00:13:31
- ارسال اطلاعات پرداخت از سرویس سفارش به سرویس پرداخت00:17:08
- دریافت پیام اطلاعات پرداخت00:22:21
- پیاده سازی درگاه پرداخت00:19:41
- ارسال اطلاعات پرداخت به سرویس سفارش00:16:56
- پیاده سازی پرداخت در FrontEnd و تکمیل پرداخت00:20:02
- ایجاد پروژه پنل ادمین00:23:21
- Eventual Consistency : معرفی00:06:31
- Eventual Consistency : ارسال پیام بروزرسانی از طرف سرویس محصول00:14:49
- Eventual Consistency : دریافت پیام بروزرسانی در سرویس سبد خرید00:14:40
- Eventual Consistency : دریافت پیام بروزرسانی در سرویس سفارش00:11:31
- نحوه استفاده از Polly00:33:11
- معرفی و نصب Eureka00:10:15
- معرفی و استفاده از Steeltoe00:15:11
- APIGatewat00:07:16
- معرفی Ocelot00:09:04
- ایجاد پروژه ApiGateway00:19:39
- استفاده از Ocelot در پروژه APIGateway00:18:40
- پیاده سازی کامل سرویس ها در APIGateway00:18:50
- Caching- Rate Limiting- Quality of Service in Ocelot00:12:17
5 - تست برای میکروسرویس
- آشنایی با تست خودکار00:16:36
- چالش های تست میکروسرویس ها00:08:19
- استراتژی های تست00:03:53
- آشنایی با هرم تست00:07:00
- انواع تست برای میکروسرویس ها00:21:00
- پیاده سازی Unit Test00:32:21
- پیاده سازی Component Test00:48:14
- پیاده سازی Integration Test00:14:27
- ContractTest- پیاده سازی سناریو مناسب تست00:25:39
- ContractTest- آشنایی با Pact و PactNet00:07:26
- ContractTest- پیاده سازی Consumer00:34:31
- ContractTest- پیاده سازی Provider00:19:46
- End-To-End-Testپیاده سازی00:32:35
- Performance Test00:17:20
6 - امنیت در میکروسرویس
- ایمن سازی برنامه های monolith00:07:59
- ایمن سازی پروژه های Microservice00:07:26
- آشنایی با OAuth و OpenIdConnect00:21:39
- ابزارهاي oauth - OpenIdConne t00:09:39
- ایجاد پروژه سرویس کاربران - نصب Duende IdentityServer00:11:42
- نصب UI برای Duende IdentityServer00:07:53
- دسترسی کلاینت ها به میکروسرویس - قسمت اول00:25:00
- دسترسی کلاینت ها به میکروسرویس - قسمت دوم00:25:56
- ورود و خروج کاربر از اپلیکیشن00:29:01
- اهمیت Audience00:08:49
- استفاده از یک توکن برای دسترسی به چند میکروسرویس00:20:16
- تعیین سطح دسترسی کلاینت ها با Scope00:17:18
- ساخت فایل برای اجرای میکروسرویس ها00:04:54
- امنیت در Ocelot00:15:47
- دریافت userId کاربر لاگین شده در میکروسرویس ها00:10:11
- ایجاد ApiGateway برای Admin00:04:25
- لاگین در FrontEnd Admin00:07:55
- امنیت در سرویس محصولات00:05:10
- امنیت در ApiGateway Admin00:18:49
- امنیت در ApiGateway Web00:03:55
- Refresh Token در IdentityServer00:17:24
- استفاده از AspNetIdentity در IdentityServer00:24:36
- تعیین مجوز دسترسی با Role00:10:24
7 - Deployment در میکروسرویس
- آشنایی با اصطلاحات Deployment00:14:04
- چالش های Deployment در معماری مونولیتیک00:04:59
- پیش نیازهای یک Deployment موفق برای میکروسریس00:06:33
- فرایند های ایزوله برای هر سرویس00:03:31
- نیاز به یک روش جدید Deployment در معماری میکروسرویس00:06:13
- آشنایی با Bare Metal - VM - Container00:09:45
- آشنایی با داکر00:11:24
- داکر - آشنایی با Images00:16:01
- داکر - آشنایی با Container00:16:51
- داکر - ایجاد image از برنامه های Asp.Net Core00:22:09
- داکر- استفاده از Volume00:13:38
- معرفی سرویس های AzureDevOps00:03:27
- نحوه استفاه از Azure Repos00:19:42
- نحوه استفاه از Azure Pipelines و ایجاد فرایند CI00:19:40
- ایجاد Deployment Groups در Azure DevOps00:10:19
- نحوه استفاه از Azure Releases و ایجاد فرایند CD00:20:42
- آشنایی با کانتینر ابری00:04:29
- استفاده از کانتینر ابری آروان00:18:02
- Identity Service Deployment00:24:21
- Product Service Deployment00:10:51
- Discount Service Deployment00:12:03
- Basket Service Deployment00:14:06
- Order Service Deployment00:12:21
- Payment Service Deployment00:04:22
- ApiGateway Web Deployment00:11:55
- Frontend Web Deployment00:15:04
- راه اندازی Image RabbitMq Official00:20:17
8 - Monitoring در میکروسرویس
- معرفی monitoring00:08:10
- ارسال تنظیمات به برنامه00:08:21
- پیاده سازی Health Check -بخش اول00:13:10
- پیاده سازی Health Check - بخش دوم00:18:16
- آشنایی با Logging00:07:45
- استفاده از Serilog00:16:34
- استفاده از Seq00:10:50
- پیاده سازی Distributed Tracing00:23:01
- استفاده از Application Metrics-بخش اول00:20:25
- استفاده از Application Metrics - بخش دوم00:11:35
- آشنایی با ELK00:08:12
- نصب ElasticSearch و Kibana00:15:16
- Crud در ElasticSearch00:15:58
- استفاده از ElasticSearch در Net.00:21:18
- ذخیره Log های اپلیکیشن در ElasticSearch00:15:00
9 - Scaling
- آشنایی با Scale00:13:31
- آشنایی با Scale Cube00:06:45
- میکروسرویس های مقیاس پذیر00:07:16
- مقیاس دستی و خودکار در cloud00:23:43
- آشنایی با kubernetes - docker swarm00:08:53
- نکاتی برای طراحی سرویس مقیاس پذیرتر00:11:55
10 - Design Patterns and Best Practices
- آشنایی با الگوی Aggregator00:05:51
- آشنایی با الگوی Anti-Corruption Layer00:06:04
- آشنایی با الگوی Saga00:10:50
- الگوی ApiGateway00:06:04
- تبدیل برنامه های مونولیتیک به میکروسرویس00:12:25
آیا این دوره پشتیبانی هم دارد؟
اگر منظورتان از پشتیبانی پاسخ دادن به سوالات شخصی و موردی شما است، خیر! پشتیبانی ندارد! برای گرفتن مشاوره اختصاصی از باگتو، در سال حداقل لازم است چندصد میلیون تومان بپردازید.
البته مشکلات فنی خود را می توانید در قسمت باگ سایت ارسال نمایید، دیگر کاربران و یا پشتیبانی باگتو پاسخ سوال شما را ارسال می کنند.
برای ارسال نظر وارد حساب کاربری خود شوید
ورود به حساب کاربری ثبت نام
نظرات 344
سلام و عرض ادب تو این دوره از cqrs و orm dapper استفاده شده و ddd را کامل آموزش دادید یا فقط اشاره بهش شده
سلام وقتتون بخیر
در این دوره آشنای با ddd رو آموزش دادیم و موارد و جزییات رو اشاره نکردیم چون خودش به یک دوره مجزا نیاز داره .
و در دوره ستارگان asp.net core مبحث dapper رو آموزش دادیم.
سلام وقت بخیر
تخفیف نمیگذارید روی دوره؟
بتونیم دوره رو بگیریم
سلام روزتون بخیر
شهریور ماه روی دوره تخفیف خواهیم گذاشت
برای اطلاع از تخفیفات پیج اینستاگرام باگتو رو دنبال کنید
bugeto_net
کاش چندتا از ویدئو ها رو فری بذارید لحن و سبک آموزش مدرس رو ببینیم بعد تصمیم بگیریم این دوره بخریم یا نه
سلام وقت بخیر
دوره رایگان میکروسرویس رو میتونید ببینید و در کانال تلگرام هم چند قسمت از دوره ستارگان میکرویرویس رو قرار دادیم که میتونید با نحوه آموزش دوره آشنا بشین
سلام و عرض ادب دوره در حال برگزاری ؟ هنوز یا تموم شده
سلام
این دوره تکمیل شده است
سلام ، روزتون بخیر
من داکر را نصب کردم ، ولی وقتی دستور نصب eureka را وارد میکنم ارور میده (vpn هم وصل بوده)
error during connect: This error may indicate that the docker daemon is not running.: Post "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/create?fromImage=steeltoeoss%2Feureka-server&tag=latest": open //./pipe/docker_engine: The system cannot find the file specified.
سلام
مثل این که docker daemon اجرا نیست
سلام ایا در این دوره به مباحث distributed transaction پرداختید و با رویه ddd پیاده شده
سلام
الگوی saga معرفی شده است و ابزارهای پیاده سازی هم در فصل چهارم آموزش داده شده است
با سلام و احترام
با تشکر از آموزش خوب و مفید شما
سوالی داشتم خدمتتون
با توجه به کاربردی بودن کوبرنتیز در معماری میکروسروس
آیا آموزش کوبرنتیز در تکمیل ستارگان میکرو سرویس خواهید داشت؟
سلام
در این دوره داکر آموزش داده شده است
اما کوبرنیتیز خیر.
در آینده هم به این دوره اضافه نخواهد شد
سلام
لطفا سورس پروژه را بطور یکجا قرار دهید که بتوانیم خودمان ران کنیم
ممنون
سلام سورس هر قسمت را می توانید از سایت دانلود نمایید.
سلام وقت بخیر
service discovery در فصل 4 را آموزش نمیدهید؟؟
چون فقط طریقه نصب ان را اموزش دادید
سلام
فقط باید از Restapi های آن در برنامه خود برای ثبت ادرس برنامه استاده کنیم
یک ویدئو آپدیت اضافه می شود
سلام
سورس پیوست قسمت 162 برای دانلود خطای 403 می دهد
سلام روزتون بخیر مشکلش برطرف شد میتونید الان دانلود کنید
سلام
مبحث eureka رو گفتید در scaling توضیح میدید
eurekaeuraka
سلام روز خوش
امکانش هست سورس پروژه را در انتهای هرفصل بگذارید چون من الان تمام سرویسها و فرانت را یکجا میخواهم بخونم ولی نیس
سلام وقت بخیر
پورت 5672 هنگام اتصال به Rabbit MQ از کجا اومد؟؟؟ جلسه 6 از فصل 4
سلام معمولا هر سرویسی که نصب می کنیم برای ارتباط با آن نیاز به یک پورت داریم. سرویس RabbitMQ هم این پرت را ارائه کرده است
سلام ویدیو هارو باید انلاین دید؟
دسترسی به نت نداشتیم چیکار کنیم؟!!!!!!!!!!!!!
سلام
نیازی به آنلاین بودن نیست.
یک بار توسط نرم افزار دانلود می شوند و بعد بدونه نیاز به اینترنت هم می توانید مشاهده نمایید.
با سلام
وقتی از معماری میکرو سرویس استفاده می کنیم و اگر یک سرویس روی چند ماشین نصب کنیم و اگر بخواهم گزارش بگیرم از چه راه حلی اسفتاده کنم یا باید روی همه دیتابیس ها یک گوئری یکسان را اجرا کنم
سلام
معمولا زمانی که یک سرویس را روی چندین کانتینر اجرا می کنیم، همه این سرویس ها از یک دیتابیس استفاده می کنند.
برای مقیاس دیتابیس هم می توانید از CQRS و Always On استفاده نمایید
در این دوره برای میکرو سرویس ها از چه معماری ای استفاده میشه؟
سلام
از معماری All in one و Clean
سلام
بحث لاگین با ریزور هست اگر بخواهیم با webapi پیاده کنیم که مثلا اپ هم بتونه استفاده کنه چه تبدیلات و کارهایی باید انجام بدیم؟
سلام لطفا با دقت بيشتري فصل امنيت را مشاهده نماييد. براي احراز هويت روشهاي مختلفي داريم كه در دوره معرفي شدند
سلام
تو ایدنتیتی QuickUI که استفاده کردید ریزور پیج هست.
https://github.com/duendesoftware/IdentityServer.Quickstart.UI
برای اینکه مدل ویو کنترلر دار باشه. لینک زیر که برای ایدنتیتی رسمی هست QuickUI کنترلر دار رو داره
https://github.com/IdentityServer/IdentityServer4.Quickstart.UI
تشکر
لینکی که فرستاده اید برای ورژن قبلی Identityserve4 می باشد.
سلام. در خصوص ثبت نام کاربر تو ایدنتیتی چیزی نگفتید ! آیاد متد مخصوص ثبت نام کار بر و ارسال پیامک فعال سازی و ... وجود داره یا ما باید خودمون بسازیم؟ لطفا یه قسمت اپدیت برای ایدنتیتی بدید این موارد هم بگید. این مبحث کامل نیست
سلام
identity حدود 8 ساعت آموزش نیاز داره و جزو سرفصل های میکروسرویس نیست. و در این دوره فقط مباحث مربوط به میکروسرویس آموزش داده می شود.
نحوه استفاده از identity را در identityServer آموزش داریم.
برای یادگیری identity می توانید از دوره زیر استفاده نمایید.
آموزش Identity در Asp.Net Core
سلام لطفا لینک دانلود کامل بزارید تا دالنود کنیم ممنون
سلام
این دوره را می توانید از اسپات پلیر مشاهده نمایید و قابل دانلود نمی باشد.
فصل های ابتدایی هم به اسپات اضافه می شوند
سلام وقتتون خبر
چرا فصل های اول توی
اسپات پلیر نیست!!!
آیا اونجا اضافه نمیشه؟
سلام
5 فصل اول را می توانید از طریق سایت دانلود نمایید. بر روی نام قسمت کلیک کنید دانلود می شود.
5 فصل اول هم به اسپات اضافه می شوند
سلام وقتتون به خیر
در مبحث Context Mapping از بخش DDD ، دو مورد ACL و Bubble Context معرفی شد که تفاوت بین کارکرد اون ها رو متوحه نمی شم.
آیا Bubble Context همان کار ACL رو انجام می دهد + انحام کارهای دیگر برای بهینه شدن خروجی از سرویس های قدیمی یا اینکه وقتی سرویس قدیمی داریم، Bubble Context رو به همراه ACL به کار می بریم و عملکرد و کار متفاوتی انجام می دهند؟
ممنون
سلام
این role رو فقط به اسکوپ gateway اضافه کنیم کافیه یا به بقیه اسکوپ های داخل عکس هم باید اضافه کنیم؟
تشکر
سلام
تو ایدنتیتی دقیقا این قسمت وظیفه اش چیه؟ توضیح ندادید.
من به جای "12345A@aa" مثلا "123" میزارم موقع اجرا خطای زیر رو میده!
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_AspNetUserRoles_AspNetUsers_UserId". The conflict occurred in database "EShop.Identity", table "dbo.AspNetUsers", column 'Id'.
ممنون
سلام
در مورد sync و async آموزش شما و خیلی آموزش های دیگه رو دیدم ولی اینکه کدومو کجا استفاده کنیم یه کم مشکله
الان شما مثلا getproduct یا payment و خیلی متد ها و get های دیگه رو asynce زدید... خب الان تا محصول رو نخونه یا پرداخت انجام نشه اصلا نباید کاربر بتونه کار دیگه بکنه پس اکثرا باید sync باشه چون یه جورایی تا کاری انجام نشه نباید بره محل بعد مثلا تایید پرداخت یا ...
لطفا توضیح کامل با چندتا مثال بزنید متوجه بشیم
ممنون
سلام
من پنل ادمین و گت وی ادمین رو پیاده کردم و چیزی که فهمیدم این بود دقیقا مثل پنل کاربر و گت وی کاربر هست و هر کدوم توکن ها و ... خودشونو رو دارن و هیچ فرقی بینشون نیست. اگر اشتباه میگم بفرمایید
و لطفا هر روز نظرات رو چک کنید اگر مشکل داشتیم زود حل شه. تشکر
سلام
بله دقیقا.
و هدف از جدا سازی اینه که یک یک ApiGateway بزرگ نداشته باشیم که تغییرات در آن بر روی همه فرانت اند ها تاثیر بزاره.
سلام
لطفا اگر میتونید در ادامه آموزش، سرویس تصاویر و فایل هم اضافه کنید. برای انتقال تصاویر محصولات بین سرویس ها کلی پیچیدگی وجود داره
ممنون
سلام
مشکل 403 حل شد .مشکل از اسکوپ بود . تشکر
سلام مجدد
در مورد خطای 403 همه چیزو چک کردم درست بود و داشت کار میکرد و بدون تغییر یکدفعه اینجوری شده!!!
لطفا یه راهنمیی، کمکی بکنید
شما باید کل مسیر رو چک کنید.
توکنی که دریافت می کنید از identityService ، بررسی کنید ببینم به چه سرویس هایی دسترسی دارد؟
Rolse و Audience ها را چک کنید.
و بعد هم Apigateway و هم سرویس مقصد را چک کنید ببینم Audunce ها مورد نیازاین سرویس ها در توکن شما وجود دارد؟
سلام
من قسمت ایدنتتی و آتورایز رو درست پیاده کردم و داشت کار میکرد ولی بعدش یکدفعه تو سرویس فرانت که میخواد رکوئست بفرسته خطای 403 forbidden برمیگردونه!!!
اشکا لاز کجا میتونه باشه؟
تشکر
سلام
خطای 403 یعنی این که شما لاگین شده اید اما مجوز دسترسی به این بخشی که Request داده اید را ندارید.
احتمالا Role یا policy مورد نیاز آن اکشن برای کاربر لاگین شده موجود نمی باشد
سلام
اقای بابایی چرا نگفتید این کلمه ها یونیک هستن؟!!؟توشون آندرلاین گذاشته بودم فکر کردم کلمه دلخواهه 10 روزه بال بال میزنم خطا رفع نمیشه
سلام
از نام خود این لغات معلومه که یونیک هستند.
داریم get انجام می دیم.
سلام
من به جای رست شارپ از httpclient استفاده کردم
HttpContextAccessor رو چجوری تو httpclient اینجکت کنم
services.AddHttpClient<IProductService, ProductService>(client =>
client.BaseAddress = new Uri(apiGatewayUri))
سلام
سورس کدهای فصل 6 رو ببینید از httpclient استفاده کرده ایم
با سلام و خسته نباشید
من جلسه آموزش Eureka رو دیدم طبق آموزش پیش رفتم داکر دسکتاپ آوردم بالا و اورکا رو نصب کردم
پنلش هم بالا اومد روی یه پروژه تستی اجراش کردم ولی آدرسهای اینستنسی که برای ایجاد میکنم نه info نه health بالا نمیاد
لطفا راهنماییم کنید حتی کانفیگ هم از پروژه تستی برداشتم
سلام
چرا کلاینت سکرت رو توی آیدنتیتی هش کردید ولی داخل فرانت هش نکردید؟
ClientSecrets={new Secret ("123456".Sha256()) }
options.ClientSecret = "123456"
سلام
چون هش یک فرایند یک طرفه است
و معمولا پسورد در سمت سرور هش می شود و در سمت کلاینت دقیقا همان پسورد را باید ارسال کنیم.
شما در فرم های لاگین پسورد هش شده را که وارد نمی کنید؟ اینجا هم به همین صورته
در identity پسورد هش می شود و در کلاینت باید پسورد اصلی را ارسال کنیم که در سمت سرور پسورد هش بشود و با همان پسورد هش شده مقایشه شود.
سلام
نام توکن تو کدوم پروژه ها باید هم نام باشه؟
من اینجوری زدم :
فرانت : "TokenName": "access.token"
گت وی : "TokenName": "access.token"
سرویس مثلا سفارش : "TokenName": "order.token"
سلام
منظورتون کجاست؟ نمونه کدی که در ویدئو نوشتم رو ارسال کنید
اصلیاش اینان :
8 تا سیستم جامع داریم مثل سامانه servicedesk و سامانه cmms و سامانه آمار ، سامانه مدیریت پروژه و قراردادها و ... که با معماری کلین و core و بصورت مونولیکتیک هستند و پروژه های بسیار بزرگی هستند.
یک سیستم جامع هم داریم که میکرو یرویس هست و العان خودش یک سیستم احراز هویت شبیه همین موردی که شما توضیح دادید با identityserver4 داره
بیش از 40 تا سرویس هم داریم که در واقه هرکدومشون یم restApi هستند که سرویس های مختلفی رو به مشتریا ارائه میدن.
مشکل اصلی هم سر همون 8 تا سیستم مونولیکتیکون هست چون بحث احراز هویت و امنیت تو هرکدومشون بخاطر مسائل امنیتی بسیار پیچیده هست
درود و سپاس از پاسخ شما.
بله فرمایش شما در زمانیکه بخواهیم از ابتدا یک سرویس رو توسعه بدیم یا زمانیکه تعداد سرویس های موجود کم باشه صحیح است.
اما همانطور که عرض کردم در سناریو ما بیش از 50 سامانه و سرویس داریم که تکنولوژی های مختلف دارند و برخی از اونها بدلیل پیاده سازی احراز هویت در سطح داده و رکورد سیستم بسیار پیچیده ای برای پرمیژن ها دارند و عملا غیر ممکن است بحت کنترل دسترسی رو در اون سامانه و سرویس ها رو بازنویسی کنیم.
تنها راحی که به نظر من رسید اینه که یک سرویس احراز هویت واحد ایجاد کنیم که تمام سرویس ها در اون Authenticate بشن و این سرویس تنها authorization رو برای دسترسی به سرویس چک کنه و بعد از احراز هویت کاربر در این سرویس در مواردی که لازم است مجدد در خود اون سرویس هم احراز هویت کنه
من برای اینکار با استفاده از OAuth و IdentityServer دارم پروژه رو مینویسم. البته چالش بسیار دارم و کمی گیج هستم هنوز. برای همین عرض کردم اگر راه حلی یا سلوشنی که از قبل تجربه شده براش میشناسید معرفی و راهنمایی بفرمایید.
سپاس فراوان
بله بازنویسی این پروزه کار سختیه، البته اگر از استاندارد ها استفاده شده است کار بازنویسی راحتر انجام می شود
اما در نظر بگیرید برای هر تک Request که نیازه با دهها میکروسرویس در ارتباط باشه باید دها بار فرایند احراز هویت را انجام دهید. و آن هم به شکل های مختلفی
پروژه موجود میکروسرویسه یا SOA ؟
سلام
بحث ایدنتیتی با گت وی که پیاده کردید ترتیبش چجوریه.
فرانت به گت وی درخواست میده و گت وی به ایدنتیتی بعدش میره سرویس ها یا یا فرانت به ایدنتیتی درخواست میده بعد به گت وی و در نهایت سرویس ها؟
ممنون
سلام
Frontend به identityService درخواست ارسال می کند و یک توکن دریافت می کند.
و بعد آن توکن از طرف فرانت اند برای ApiGateway ارسال می شود و از Apigateway هم برای سرویس ها ارسال می شود. و در سرویس ها توکن بررسی می شود اگر معتبر باشد خدمات را ارائه می کند در غیر اینصورت 401 و یا 403 دریافت می کنید
سلام
من دقیقا عین شما رفتم جلو چندبار هم با فیلم چک کردم ولی یه خطایی خوردم هرکاری میکنم حل نمیشه. لطفا راهنمایی کنید
اینم کدهام
