40.000 تومان
در انبار موجود نمی باشد
۱. دنیا قبل از میکروسرویس به چه صورت بود؟ ۲. پیش به سوی جهنم! ۳. بهشت گمشده میکروسرویس ۴. مزایای میکروسرویسها ۵. معایب میکروسرویسها
در توسعه به روش میکروسرویس، هر سرویس مجموعهای از وظایف مرتبط با هم را به طور کامل و بدون وابستگی به بخش دیگری به انجام میرساند. برای مثال در سیستم تولید محتوا و مدیریت خبر میتوان به مواردی چون مدیریت نظرات، مدیریت ثبت خبر و محتوا، مدیریت فایل، مدیریت انتشار در بستر وب و … اشاره کرد. در این روش هر مینیاپلیکیشن از یک معماری تمیز مثل Hexagonal یا Onion به طور داخلی استفاده میکند. هر مینیاپلیکیشن این توانایی را خواهد داشت که در صورت نیاز بخشی از خدمات و دادههای خودش را برای سایر قسمتها به صورت API در اختیار قرار بدهد. برای نصب و راهاندازی هم هر کدام از این مینی اپلیکیشنها توانایی این را خواهند داشت که در یک VM جداگانه به کار خودشان ادامه بدهند یا به عنوان Docker Image در اختیار تیم زیرساخت برای نصب و راهاندازی قرار بگیرند.
۱. تعامل مستقیم Clientها با میکروسرویسها ۲. حل مشکلات با استفاده از API Gateway
مثل هر کار دیگری استفاده از API Gateway هم مزایا و معایب خاص خود را دارد که ابتدا به مزایای آن میپردازیم. بزرگترین مزیت آن از بین بردن معایب روش دسترسی مستقیم است. عدم وابستگی به معماری داخلی سیستم ما باعث میشود کار Refactoring سادهتر قابل اجرا باشد. و دیگر برای ترکیب یا تجزیه سرویسهای مختلف دغدغههای قبل را نداشته باشیم ( پیدا کردن جایی تا زمانی که آبها از آسیاب بیوفتد.) ارائه API تخصصی برای هر Client باعث افزایش بهرهوری و بهبود خروجیها و در یک کلام UX بهتر میشود. کاهش تعداد درخواستهای ارسالی از Client هم مورد بعدی است که بهرهوری کار را بالاتر میبرد. در کنار این مزایا اما چند ایراد نیز میتوان به استفاده از این روش گرفت. بزرگترین ایراد این روش اضافه شدن یک ماژول بزرگ به سیستم است که باید همیشه سرحال و آنلاین باشد و در صورتی که عملکرد درستی ارائه نکند کل سیستم با مشکل مواجه خواهد شد. با توجه به اینکه تعامل با هرکدام از میکروسرویسها باید در API Gateway پیادهسازی شود و به ازای هر Client هم نیاز داریم که پیادهسازی اختصاصی داشته باشیم این احتمال وجود دارد که همین API Gateway به سدی برای تیم توسعه تبدیل شود. زمانی که یک سرویس به روز میشود Clientها باید منتظر بمانند تا این به روزرسانی در Gateway ارائه شود. به همین دلیل باید توسعه API Gateway ما طوری باشد که به سادگی قابل تغییر و به روزرسانی باشد.
۱. انواع روشهای تعامل ۲. تعریف APIها ۳. تکامل APIها ۴. مدیریت بحران هنگامی که بخشی از سیستم دچار مشکل میشود
در برنامهها Monolithic با توجه به اینکه کل برنامه ما در یک نرمافزار با یک زبان برنامه نویسی پیاده سازی شده است ارتباط بین بخشهای مختلف به سادگی صدا زدن یک تابع انجام میشود. اما در میکروسرویسها با توجه به اینکه بخشهای مختلف برنامه ما روی چندین سیستم مختلف به صورت توزیع شده اجرا میشوند. امکان استفاده از روش قبل وجود ندارد. هر بخش از نرمافزار ما به صورت یک پروسه کاملا جداگانه و ایزوله اجرا میشود. در میکروسرویسها ارتباط بین بخشهای مختلف اصطلاحا از روشی به نام Inter Process Communication که از این به بعد به اختصار IPC میگوییم انجام میشود.
۱. ارسال پیام به صورت Async ۲. ارتباط Sync و Request/Response ۳. سرویسهای REST ۴. مزایای HTTP ۵. معایب HTTP ۶. ساختار پیامها
وقتی در مورد ارتباط صحبت میکنیم دو گروه از عناصر اصلی قابل شناسایی هستند. شرکت کنندگان در یک رابطه و پیامهای ارتباطی دو عنصر اصلی هر ارتباطی هستند که در این فصل قصد داریم در مورد این دو مورد صحبت کنیم. در یک ارتباط IPC تکنولوژیهای مختلفی قابل انتخاب است. برای مثال برای یک ارتباط از نوع Request/Response و به روش Sync میتوان Rest APIهایی براساس پروتکل HTTP توسعه داد یا برای توسعه سرویسهای خود از Thrift استفاده کنید. در مقابل اگر نیاز به برقراری ارتباط Async داشته باشیم میتوانیم به سراغ AMQP یا STOMP برویم.
برای فرمت پیامهای ارسالی و دریافتی نیز گزینههای زیادی وجود دارد. یکی از معمولترین انتخابها قالبهای محبوب JSON و XML است که قابلیت خوانایی بالایی نیز دارد. اگر خوانایی برای انسان اهمیت نداشته باشد یا نیاز به بهرهوری بالایی داشته باشیم Avro یا Protocol Buffer انتخابهای مناسبی به نظر میرسند.
۱. آشنایی با Service Registry ۲. آشنایی با الگوی Client-Side Discovery ۳. آشنایی با الگوی Server-Side Discovery ۴. بررسی دقیق Service Registry ۵. انواع روشهای مدیریت سرویسها
بیایید فرض کنیم که در حال توسعه یک نرمافزار هستیم که نیاز دارد یک API را صدا بزند. فارغ از اینکه یک REST API را مورد استفاده قرار میدهیم یا Thrift API نیاز داریم آدرس API مورد نظر را بدانیم. تا چند سال پیش که نرمافزارها معمولا در یک سرور نصب میشدند آگاهی از آدرس APIها کار مشکلی نبوده و معمولا آدرسی ثابت بود. در چنین شرایطی نهایت آیندهنگری که نیاز بود داشته باشیم، قراردادن آدرس API در فایل Config بود که در صورتی که در آینده نیاز به تغییر آدرس داشته باشیم، بتوانیم بدون کامپایل مجدد سورس کد، آدرس را تغییر دهیم.
۱. مشکلات دادههای توزیع شده در میکروسرویسها ۲. توسعه بر مبانی Eventها ۳. ویژگی Automicity هنگام استفاده از Eventها
در بسیاری از برنامهها راهکار مشکل استفاده از Eventها است. در این روش هر زمانی که یکی از دادههای مهم سرویس تغییر میکند یک Event در سیستم ایجاد و ارسال میشود و سایر سرویسهای موجود در سیستم میتوانند در صورت نیاز این Event را مدیریت کنند و دادههای داخلی خود را با توجه به این Event به روز کنند. این تغییر دادهها خود میتواند موجب ایجاد چندین Event دیگر در سیستم شود.
از Eventها برای پیادهسازی تراکنشهای اپلیکیشن نیز میتوان بهره برد.هر تراکنش شامل چند مرحله است. در هر مرحله در یک میکروسرویس دادههایی به روز میشوند و با تکمیل این مرحله یک Event ایجاد میشود که موجب فعال شدن مرحله بعد میشود و در نهایت با اتمام همه مراحل تراکنش به پایان میرسد.
۱. تاریخچه، نحوه امن کردن نرم افزارهای یکپارچه ۲. مبانی کلیدی امنیت ۳. امنیت مرزهای نرم افزار ۴. امن کردن ارتباط سرویس به سرویس
پایبندی به اصول در همه طرحهای امنیتی مهم است. هیچ امنیت بینقص و یا غیرقابل شکستنی وجود ندارد. باید این نکته را نیز در نظر بگیرید که میزان نگرانی شما در رابطه با امنیت صرفا یک کار فنی نبوده و تاثیرات اقتصادی نیز دارد. برای مثال برای امن کردن یک گاراژ خالی استفاده از یک دزدگیر فوق پیشرفته بیفایده است. بسته به دارایی که از آنها محافظت میکنیم، سطح امنیت نیز تغییر میکند. به طور یقین طرح امنیتی برای یک فروشگاه اینترنتی با یک نرمافزار مالی متفاوت است. پایبندی به اصول امنیتی مهم است. حتی اگر برخی تهدیدات امنیتی را پیشبینی نکنید، پیروی از اصول امنیتی به شما برای در امان ماندن از این تهدیدات کمک خواهد کرد. در این فصل، ما اصول امنیتی را گام به گام با شما بررسی میکنیم و به ارتباط آنها با امنیت میکروسرویسها خواهیم پرداخت.
۱. نصب چند سرویس مختلف به ازای هر میزبان ۲. نصب یک سرویس به ازای هر میزبان ۳. نصب هر سرویس روی یک ماشین مجازی ۴. نصب و راه اندازی به کمک کانتینرها
اگر از معماری Monolithic برای توسعه سرویسهای خود استفاده کنیم، در انتها نیاز داریم برنامهای را روی یک سرور نصب کنیم. یا اگر برنامه ما قرار باشد بار زیادی را تحمل کند، چندین سرور تهیه میکنیم و نرمافزار خود را روی چند سرور نصب میکنیم و به کمک یک Load Balancer بار را روی نمونههای مختلف توزیع میکنیم. هرچند همیشه کار به همین سادگی نیست اما در پیچیدهترین حالات هم معمولا توزیع نرمافزارهای Monolithic سادهتر از میکروسرویسها است.
در مقابل هنگامی که از معماری میکروسرویس استفاده میکنیم، برای یک برنامه ممکن است دهها یا صدها سرویس داشته باشیم. هر کدام از این سرویسها ممکن است با زبان و فریمورکی خاص توسعه داده شده باشند. هر کدام از این مینیاپلیکیش نهایی که تولید میکنیم، اندازههای متفاوت، بارهای متفاوت، درخواستهای متفاوت و زیرساختهای نگهداری و مانیتورینگ متفاوتی هم ممکن است داشته باشند
۱. کار را متوقف کنید ۲. جداسازی Front-end و Back-end ۳. استخراج سرویس
مهاجرت از Monolith به Microservice یکی از روشهای مدرنسازی فرایند کاری است که هم در دنیای نرمافزار و هم در زندگی روزمره انجام میشود. حتما همه ما تجربیاتی روی مهاجرت از فری مورکی قدیمی به جدید داشتهایم، یا در زندگی روزمره برای خود ما یا یکی از بستگان فرایند به روز رسانی محیط زندگی اتفاق افتاده، که این به رو زرسانی میتواند بازسازی منزل، خرید اسباب جدید یا خرید خانه جدید باشد. به هر حال با توجه به اینکه این یک فرایند تکراری است، احتمالا تجربیات مشترکی نیز در این زمینه وجود دارد که میتوانیم از این تجربهها استفاده کنیم.
۱. سیستمها و تیمها ۲. خروجی کار Front-end ۳. ادغام Integration ۴. موضوعات مشترک
برای بهبود شرایط معمولا نرمافزار به چندین قسمت شکسته میشود. یکی از راهکارهای معمول برای انجام این کار شکستن افقی پروژه و ساختار تیم بر اساس تکنولوژی است. معمولا تیمهای دیتابیس، Back-end و Front-end تشکیل میشوند و هر تیم مسئولیت بخشی از نرمافزار را برعهده گرفته و کار را پیش میبرد. به جای استفاده از این روش، Micro Front-end استفاده از شکستن عمودی پروژه را پیشنهاد میدهد. هر کدام از این بخشها از پایینترین لایه تا خروجی کاربر توسط یک تیم جداگانه توسعه داده میشود. تفاوت این روش با میکروسرویس در لایه UI است. در این روش توسعه، به جزء سرویس لایه UI نیز برای هریک از بخشهای نرمافزار توسط تیم تولید میشود و نیاز به تولید یک UI مرکزی را از بین میبرد. که این روش توسعه مزایای زیادی دارد.
۱. سرعت بالا در افزودن ویژگیهای جدید ۲. حذف گلوگاه Front-end ۳. توانایی تغییر ۴. مزایایی عدم وابستگی ۵. معایب Micro Front-end
به جرات اولین دلیل تیمهای فنی از انتخاب Micro Front-end برای توسعه نرمافزارها، سرعت بالای توسعه در این روش است. در یک تیم معمول که از میکروسرویسها برای توسعه نرمافزار استفاده میکنند تیمهای زیادی برای افزودن یک ویژگی جدید درگیر میشوند. فرض کنید تیم کسب و کار تصمیم میگیرد برای افزایش قدرت خود در بازار و تبلیغات بهتر نوع جدیدی از بنرها را ایجاد کند. برای این کار آنها به سراغ تیم سرویس محتوا میروند و ایدههای خود را با آنها مطرح میکنند. و از آنها میخواهند ساختار دادهها را به گونهای تغییر دهند تا پیادهسازی ایده بنر جدید امکانپذیر باشد. اما مسلما تغییر ساختار دادهها به تنهایی کاربرد ندارد و باید جلساتی بین تیم محتوا و Front-end برگزار شود تا در مورد نحوه انتقال دادهها به Front-end و نمایش و مدیریت آن تصمیمگیری کنند. جلساتی تشکیل میشود و ویژگیها لیست میشود. هر تیم مسئولیتهای خود را در نظر میگیرد و در طول اسپرینتهای آتی سراغ پیادهسازیهای خود میرود. اگر همه چیز به خوبی پیش برود بعد از چند اسپرینت محصول آماده بهرهبرداری است. اما اگر کار دچار مشکل شود نیاز به چندین و چند جلسه بین تیمی است تا تیمها عملکردها و نیازهای خود را با سایرین تنظیم کنند.
علیرضا ارومند به عنوان Technical Manager شرکت داتین (وابسته به فناپ) در حوزه پروژههای بانکی فعال است.او همچنین مدرس و Technical Manager پروژههای نیک آموز می باشد از دیگر تخصص های او میتوان به: تولید فریمورک برنامه نویسی فوق العاده حرفهای با مدیریت بیش از ۱ میلیون تراکنش در ثانیه، همکاری با تیم توسعه شرکت ارتباط فردا (بانک آینده)، مشاور فنی شرکت توسعه رفاه پردیس (بانک رفاه)، مدیر فنی خبرگزاری نسیم، سخنران تنها همایش مورد تایید مایکروسافت در خاورمیانه در حوزه ASP.NET Core، مدیر فنی خبرگزاری بین المللی پیامکوتاه نسیم (برنده جشنواره وب ایران)، مدرس دوره های Dot Net ، ASP.NET در نیک آموز، همکاری با تیم توسعه شرکت ارتباط فردا (وابسته به بانک آینده)، کارشناس ارشد و معمار نرم افزار شرکت هایپرمدیا، کارشناس توسعه نرم افزارهای آنلاین بورس شرکت تدبیرپرداز، معمار نرم افزار و توسعه دهنده سیستم های اداری مرکزتحقیقات ساختمان و مسکن وزارت مسکن، مشاور IT معاون وزیر مسکن و شهرسازی در مرکزتحقیقات ساختمان و مسکن، برگزاری دوره آموزش برنامه نویسی وب برای تیم فنی خبرگزاری بین المللی نسیم.
پس از ثبت سفارش، به حساب کاربری خود در سایت نیکآموز وارد شده و در بخش «دانلودها» اقدام به دانلود جلسات دوره خریداری شده کنید
ارسال به تهران: طی 24 ساعت کاری پس از ثبت سفارش، هماهنگی لازم جهت ارسال بسته با پیک توسط تیم پشتیبانی با شما انجام خواهد شد.
ارسال به خارج از تهران: طی 24 ساعت کاری پس از ثبت سفارش، بسته ارسالی با آدرس ثبت شده در پنل کاربری، به اداره پست تحویل داده میشود. زمان ارسال و تحویل بسته به شما، منوط به زمانبندی اداره پست بوده و از 2 الی 5 روز کاری متغیر خواهد بود.
پس ثبت و نهایی شدن سفارش شما در سایت نیکآموز، تیم پشتیبانی طی 24 تا 72 ساعت کاری با شما تماس خواهند گرفت تا فرایند عضو شدن شما در گروه پشتیبانی تلگرامی هر دوره انجام شود.
در صورت وجود هر گونه سوال و ابهامی میتوانید با شمارههای شرکت تماس حاصل فرمایید و یا از طریق بخش چت پشتیبانی سایت، سوالات خود را مطرح نماییدپ
با همهگیری بیماری کووید در سراسر دنیا در سال 1398، مجموعه نیکآموز برگزاری کلاسهای حضوری را متوقف کرده و پس از آن تمامی دورههای آموزشی به صورت وبکستی و آنلاین برگزار شده است.
با توجه به بازخوردهای مثبت دانشجویان، کلاسهای حضوری صرفاً در صورت برگزاری بوتکمپها و مسترکلاسها خواهد بود و دورههای آموزشی زین پس به همان صورت آنلاین و وبکستی برگزار میشود.
تمام جشنوارهها از یک الی دو هفته قبل از طریق شبکههای اجتماعی اینستاگرام (@nikamooz)، وبسایت مجموعه (www.nikamooz.com) و همچنین ایمیلهای ارسالی به کاربران اطلاعرسانی میگردد.
در صورت تمایل به دریافت فاکتور رسمی، پیش از خرید خود با واحد فروش مجموعه (17 00 07 91 – 021) تماس حاصل نمایید.
شایان ذکر است، امکان صدور فاکتور رسمی پس از خرید آنلاین از سایت مجموعه به هیچ عنوان وجود نخواهد داشت.
Δ
ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم.
کی موجود میشه؟
سلام. این کتاب تالیف آقای ارومند هستش یا ترجمه توسط ایشون؟
درود بر شما آقای ارومند نویسنده این کتاب هستند
تصویر صفحه ۲۱ کتاب ۴ غلط املایی دارد. شما زحمت کشیده اید و متون را تایپ کرده اید، ولی کاش به این موضوع هم دقت میکردید
درود بر شما سپاس از دقت نظر شما بله این موارد در چاب بعدی مدنظر ما هست. تشکر از همراهیتون
با سلام مطالبی ک در این کتاب مطرح شده, در دوره میکروسرویس ک توسط مهندس ارومند قبلا برگزار شده,وجود داره؟
درود بر شما
این کتاب دید کلی به شما در ارتباط با مباحث میکروسرویس میدهد و مباحث اموزشی در خود دوره اموزش داده شده است. تشکر از همراهی شما
سلام. تشکر بابت دانلود فصل اول. امکان خرید کتاب به صورت PDF وجود دارد؟ من امکان خرید پستی را ندارم.
درود بر شما متاسفانه امکان فروش نسخه الکترونیک این کتاب مقدور نیست و فقط نسخه چاپی موجود است.
سپاس از همراهی شما
آیا این کتاب شامل مثال ها و تمرین هایی برای پیاده سازیی عملی در asp.net core هست؟؟
درودبر شما
مباحث کتاب بیشتر جنبه تئوری و اشنایی دارد. سپاس از همراهی شما
سلام و عرض ادب مطالعه ی این کتاب پیش نیاز دارد ؟ صرفا قصد دارم به جهت دانش عمومی این کتاب رو خریداری کنم
تشکر
درود برشما
نیاز است حداقل یک یا دو سال به یکی از زبان های برنامه نویسی کار کرده باشید تا بتوانید مفاهیم را به صورت کامل درک کنید.