
Build resilient and scalable microservices using Spring Cloud, Istio, and Kubernetes
در دنیای پیچیده و به شدت رقابتی توسعه نرمافزار امروز، حرکت از معماریهای یکپارچه و سنتی به سمت معماریهای توزیعشده یک الزام غیرقابل انکار است. این کتاب، یک راهنمای کاملا عملی و تحلیلی برای ساخت مایکروسرویسهای آماده تولید است که بر پایه قدرتمندترین ابزارهای متنباز روز دنیا بنا شده است. اگر سالها پیش به دنبال یک منبع جامع برای درک نحوه کنار هم قرار گرفتن اجزای مختلف یک سیستم توزیعشده بودید، اکنون این کتاب دقیقا همان گمشده شماست. این اثر با بهرهگیری از تجربیات عمیق در زمینه توسعه، آزمایش، استقرار و مدیریت منظومهای از سرویسهای مستقل، به شما کمک میکند تا بر چالشهای پیچیده معماریهای مدرن غلبه کنید.
در این کتاب، تمرکز اصلی بر روی فناوریهای کلیدی و محبوبی نظیر اسپرینگ بوت، اسپرینگ کلود، داکر، کوبرنیتیز، ایستیو، پشته ایافکی، پرومتئوس و گرافانا قرار دارد. هر یک از این ابزارها به تنهایی شاهکاری در دنیای نرمافزار به شمار میروند، اما چالش اصلی مهندسان نرمافزار، درک نحوه ترکیب و استفاده همزمان از آنها برای رسیدن به بالاترین سطح از کارایی است. این کتاب با یک رویکرد گام به گام و کاملا دستورزانه، همپوشانیها و نقاط مکمل این فناوریها را موشکافی کرده و به شما میآموزد که در هر موقعیت خاص، بهترین انتخاب کدام است.
این کتاب به صورت ویژه برای توسعهدهندگان و معماران نرمافزار اکوسیستم جاوا و اسپرینگ تدوین شده است. کسانی که قصد دارند ساخت منظومههای مایکروسرویسی را از پایه و به صورت اصولی فرا بگیرند و آنها را در سرورهای درونسازمانی یا زیرساختهای ابری مستقر کنند. با مطالعه این کتاب، شما یاد میگیرید که چگونه از کوبرنیتیز به عنوان هماهنگکننده کانتینرها و از ایستیو به عنوان شبکه سرویس استفاده کنید. یکی از بزرگترین مزایای این کتاب این است که برای شروع، نیازی به دانش قبلی در زمینه معماری مایکروسرویس ندارید و تمام مفاهیم از پایه تا پیشرفته با زبانی روان و ساختارمند به شما آموزش داده میشود.
در اولین بخش از این کتاب، با مفاهیم بنیادین و ویژگیهای حیاتی فریمورک اسپرینگ بوت برای توسعه سرویسهای مستقل آشنا خواهید شد. این بخش پایههای دانش شما را برای ورود به دنیای سیستمهای توزیعشده محکم میکند.
در این فصل، ایده اصلی و فلسفه وجودی مایکروسرویسها مورد بحث قرار میگیرد. شما با مفاهیم ضروری، مزایا، چالشها و الگوهای طراحی بنیادین که پایه و اساس معماری توزیعشده را شکل میدهند، به صورت عمیق آشنا خواهید شد.
این فصل نقطه ورود شما به دنیای عملی برنامهنویسی است. شما با اسپرینگ وبفلاکس برای توسعه رابطهای برنامهنویسی رستفول، ابزارهای مستندسازی خودکار، اسپرینگ دیتا برای مدیریت پایگاههای داده رابطهای و غیررابطهای، اسپرینگ کلود استریم برای سرویسهای پیاممحور و در نهایت با آشنا میشوید.
کلمات کلیدی:در این مرحله، یاد میگیرید که چگونه یک سیستم توزیعشده را از صفر مطلق خلق کنید. شما سه سرویس هسته ایجاد خواهید کرد که منابع خود را مدیریت میکنند و یک سرویس ترکیبی که نتایج این سه را تجمیع میکند. یادگیری ایجاد رابطهای برنامهنویسی واکنشگرا از مهمترین دستاوردهای این فصل است.
استقرار نرمافزار یکی از مهمترین بخشهای چرخه حیات توسعه است. در این فصل میآموزید که چگونه با نوشتن فایلهای پیکربندی داکر، کل منظومه مایکروسرویس خود را تنها با یک دستور اجرا کنید. مدیریت پروفایلهای مختلف اسپرینگ برای محیطهای با کانتینر و بدون کانتینر در این فصل به تفصیل شرح داده شده است.
مستندسازی دقیق برای موفقیت هر سرویسی الزامی است. این فصل به شما آموزش میدهد که چگونه با استفاده از ابزارهای تولید خودکار مستندات، کدهای خود را حاشیهنویسی کرده و مستندات پویا و تعاملی ایجاد کنید تا بتوانید آنها را به راحتی در مرورگر وب آزمایش نمایید.
هیچ سیستم تجاری بدون پایگاه داده معنا ندارد. شما در این فصل نحوه اتصال به پایگاه دادههای سندگرا نظیر مونگودیبی و پایگاههای داده رابطهای نظیر مایاسکیوال را فرا خواهید گرفت. استفاده از کانتینرهای آزمایشی برای اجرای تستهای یکپارچگی، کیفیت و پایداری کدهای شما را تضمین میکند.
در دنیای مدرن، سرعت و استفاده بهینه از منابع حرف اول را میزند. این فصل به صورت تخصصی به رویکرد برنامهنویسی واکنشگرا و غیرمسدودکننده میپردازد. شما تفاوتها و زمان مناسب برای استفاده از معماریهای رویدادمحور ناهمگام در برابر معماریهای همگام را درک خواهید کرد.
مدیریت دهها یا صدها سرویس مستقل در یک شبکه کار آسانی نیست. بخش دوم کتاب به شما نشان میدهد که چگونه ابزارهای اسپرینگ کلود میتوانند پیچیدگیهای سیستمهای توزیعشده را مهار کنند.
شما در این فصول با نتفلیکس یوریکا برای کشف خودکار سرویسها آشنا میشوید. همچنین یاد میگیرید که چگونه ترافیک شبکه را به صورت هوشمند متعادل کنید. ایجاد یک سرور لبه با استفاده از اسپرینگ کلود گیتوی به شما کمک میکند تا پیچیدگیهای داخلی سیستم را از دید مصرفکنندگان خارجی پنهان کنید و تنها رابطهای مشخصی را در معرض دید قرار دهید.
امنیت، شریان حیاتی هر نرمافزار است. این کتاب با آموزش پروتکلهای احراز هویت و مجوزدهی مدرن به شما کمک میکند تا از دادههای خود محافظت کنید. راهاندازی سرورهای مجوزدهی و ایمنسازی ارتباطات با گواهینامههای امنیتی از مباحث کلیدی این بخش است.
مدیریت پیکربندی صدها سرویس به صورت دستی غیرممکن است. شما با ایجاد یک مخزن متمرکز پیکربندی، این فرآیند را خودکار میکنید. همچنین با استفاده از کتابخانههای تابآوری، الگوهای قطعکننده مدار و مکانیزمهای تلاش مجدد را پیادهسازی میکنید تا از بروز خرابیهای زنجیرهای در سیستم جلوگیری کنید.
یافتن منشا یک خطا در میان دهها سرویس نیازمند ابزارهای ردیابی است. این فصل به شما میآموزد که چگونه با تزریق شناسههای ردیابی به درخواستها، مسیر کامل اجرای یک فرآیند را در سراسر سیستم مصورسازی کنید.
بخش پایانی کتاب، شما را وارد دنیای زیرساختهای مقیاسپذیر و آماده تولید میکند. کوبرنیتیز به عنوان استاندارد صنعتی ارکستراسیون کانتینرها، هسته اصلی این بخش را تشکیل میدهد.
شما مفاهیم پایه کوبرنیتیز را آموخته و محیط توسعه محلی خود را راهاندازی میکنید. سپس یاد میگیرید که چگونه با استفاده از پکیجمنیجرهای مخصوص، پروژههای خود را برای محیطهای مختلف از تست تا تولید بستهبندی کنید. جایگزینی ابزارهای اسپرینگ کلود با قابلیتهای بومی کوبرنیتیز برای مدیریت پیکربندی و مسیریابی، از جذابترین آموزشهای این فصول است.
شبکه سرویس یا ایستیو، لایهای از زیرساخت است که امنیت، مدیریت ترافیک و نظارت پذیری سیستم را بدون نیاز به تغییر در کد سرویسها به شدت ارتقا میدهد. این فصل شما را با لبه تکنولوژی در مدیریت سیستمهای توزیعشده آشنا میکند.
بدون نظارت دقیق، سیستم شما مانند یک جعبه سیاه خواهد بود. در این فصول با استقرار پشته ایافکی، تمام لاگهای سیستم را در یک نقطه جمعآوری و تحلیل میکنید. همچنین با استفاده از پرومتئوس و گرافانا، داشبوردهای مدیریتی و هشدارهای خودکار برای نظارت بر سلامت سیستم طراحی خواهید کرد.
در فصول پایانی، راهنمای دقیق راهاندازی محیط توسعه برای سیستمعاملهای مختلف ارائه شده است. در نهایت، با نحوه کامپایل بومی کدهای جاوا آشنا میشوید که نتیجه آن، سرویسهایی است که در کسری از ثانیه راهاندازی میشوند و منابع بسیار کمتری مصرف میکنند.
برای اجرای روان تمامی پروژهها و مثالهای این کتاب، پیشنهاد میشود از رایانهای با حداقل ۱۶ گیگابایت حافظه رم استفاده کنید. هرچند با توجه به پیچیدگی و وسعت منظومه مایکروسرویسی در فصول پایانی، داشتن ۲۴ گیگابایت حافظه رم تجربهای بینقص و سریعتر را برای شما به ارمغان خواهد آورد. این کتاب با ارائه پرسشهای ارزیابی در پایان هر فصل، فرآیند یادگیری شما را تثبیت کرده و شما را برای ورود قدرتمند به بازار کار حرفهای مهندسی نرمافزار آماده میکند.
نمونه چاپ کتاب موجود نیست.
نظرات کاربران (0)