6,900,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 محافظت شدهاند و فقط با دریافت لایسنس در پنل کاربری، قابل مشاهده هستند.
برای ارسال نظر وارد حساب کاربری خود شوید
ورود به حساب کاربری ثبت نام
نظرات 354
سلام وقت بخیر
ما برای یه پروژه که مالی هستش میتونیم از duendo که برای پیاده سازی امنیت معرفی میکنین استفاده کنیم؟
بعدا مشکلی پیش نمیاد؟
سلام
اگر لایسنس خریداری کنید که قطعا برای این موضوع مشکلی پیش نمیاد.
درضمن اطلاعات شرکت و پروژه خود را برای پشتیبانی سایت identity server ارسال نمائید
احتمالا بتونید تخفیفاتی برای لایسنس دریافت کنید.
با سلام
آیا راه حلی وجود داره که بتوان ApiResourceClaims را از DbContext حذف کرد. من راه حل های مختلفی امتحان کردم و حتی dbcontext مربوط به config را هم custom زدم اما بازم موقع کال کردن سرویس دریافت token به خطا میخورم
ممنون میشم راهنمایی بفرمایید
سلام! از آنجا که شما در حال استفاده از IdentityServer4 هستید، برای حذف ApiResourceClaims از DbContext، میتوانید از روشهای زیر استفاده کنید:
ابتدا، از DbContext شما، میتوانید مدل ApiResourceClaim را حذف کنید. برای این کار، کلاس DbContext شما (به عنوان مثال، AppDbContext) را باز کرده و خط مربوط به DbSet<ApiResourceClaim> را حذف کنید.
بعد از حذف مدل ApiResourceClaim، شما باید مایگریشن جدیدی ایجاد کنید تا تغییرات به دیتابیس اعمال شود. برای این کار، در کنسول نوع پروژه اصلی، دستور زیر را اجرا کنید:
برای اطمینان از عملکرد صحیح برنامه بعد از انجام مراحل بالا، شما باید از اینکه در کدهای برنامه، به جای استفاده از ApiResourceClaims، از مدلهای جایگزین استفاده کنید.
در نهایت، پروژه خود را دوباره اجرا کنید و بررسی کنید که آیا مشکل حل شده است.
در صورتی که باز هم به مشکل برخوردید، لطفاً اطلاعات بیشتری در مورد خطا و جزئیات پیکربندی DbContext و IdentityServer4 در قسمت باگ سایت ارسال نمایید تا بهتر بتوانیم به شما کمک کنم.
سلام
ضمنا تقدیر و تشکر و خسته نباشید . بنده لایسنس دوره را دریافت کردم ولی سورس کد دوره در قسمت SptPlayer
وجود ندارد
خواهشمندم سورس کد دوره را هم اضافه نمایید.
و اینکه در دوره های دیگر بر روی قسمتهایی که در حال توضیح بود قابلیت Zoom وجو داشت و با گوشی موبایل به راحتی همه چیز قابل مشاهده بود
ولی در این دوره این قابلیت وجود ندارد و به سختی میشود بر روی صفحه موبایل پیگیر اتفاقات مخصوصا در محیط ویژوال استودیو بود
باز هم تشکر
سلام ،
در همین صفحه پس از ورود به حساب کاربری، شما میتوانید لیست ویدئوها را مشاهده کنید. برای هر قسمتی که دارای سورس کد است، روی خط مربوط به آن قسمت یک دکمه سبز رنگ با عنوان "دانلود" وجود دارد. با کلیک بر روی این دکمه، کد مربوط به هر قسمت را میتوانید دریافت کنید.
با تشکر
سلام وقتتون بخیر
من برنامه spotplayer رو از از روی گوشی حذف کردم و دوباره نصب کردم اما الان تعداد دفعات استفاده از لایسنس رو غیرمجاز اعلام می کنه
لازم به ذکر هست یک لایسنس رو روی سیستم دارم و دومی روی گوشی بود
لطفا راهنمایی بفرمایید
سلام
دستگاه جدید برای شما اضافه شد.
سلام و عرض ادب تو این دوره از 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 دریافت می کنید
سلام
من دقیقا عین شما رفتم جلو چندبار هم با فیلم چک کردم ولی یه خطایی خوردم هرکاری میکنم حل نمیشه. لطفا راهنمایی کنید
اینم کدهام
