کتاب Foundations of Scalable Systems (مبانی سیستمهای مقیاسپذیر: طراحی معماریهای توزیع شده)، از جدیدترین منابع آموزش سیستمهای مقیاسپذیر میباشد. این کتاب در 16 مقدمات تا نکات مهم و پیشرفتهی سیستمهای مقیاسپذیر را آموزش داده و برخی از ابزارهای آن را نیز معرفی میکند.
در ادامه مقدمهای از کتاب Foundations of Scalable Systems را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Foundations of Scalable Systems:
این کتاب حول این پایان نامه ساخته شده است که توانایی سیستمهای نرمافزاری برای عملکرد در مقیاس به طور فزایندهای یک عامل کلیدی است که موفقیت را تعیین میکند. همانطور که دنیای ما به هم پیوستهتر میشود، این ویژگی فقط شایعتر میشود. از این رو، هدف کتاب Foundations of Scalable Systems ارائه دانش اصلی در مورد سیستمهای توزیعشده و همزمان به خواننده است. همچنین مجموعهای از رویکردهای معماری نرمافزار و فناوریهای توزیع شده را معرفی میکند که میتوان از آنها برای ساخت سیستمهای مقیاسپذیر استفاده کرد.
چرا مقیاسپذیری؟
سرعت تغییر در دنیای ما دلهرهآور است. نوآوریها هر روز ظاهر میشوند و قابلیتهای جدیدی را برای همه ما ایجاد میکنند تا بتوانیم با هم تعامل کنیم، تجارت کنیم، خودمان را سرگرم کنیم… حتی به همهگیریها پایان دهیم. سوخت بیشتر این نوآوری نرمافزاری است که توسط ارتشهای واقعی توسعهدهندگان در شرکتهای اینترنتی بزرگ، تیمهای کوچک کرک در استارتآپها و هر شکل و اندازه تیمهایی در بین آنها نوشته شده است.
ارائه سیستمهای نرمافزاری که پاسخگوی نیازهای کاربر هستند به اندازه کافی دشوار است، اما انجام آن برای سیستمها در مقیاس سختتر میشود. همه ما سیستمهایی را میشناسیم که وقتی در معرض بارهای غیرمنتظره و غیرمنتظره قرار میگیرند ناگهان از کار میافتند – چنین موقعیتهایی (در بهترین موارد) تبلیغات بدی برای سازمانها هستند و در بدترین حالت میتوانند منجر به از دست دادن شغل یا نابودی شرکتها شوند.
نرمافزار بر خلاف سیستمهای فیزیکی است که بی شکل است – شکل فیزیکی آن (1 و 0) هیچ شباهتی به قابلیتهای واقعی آن ندارد. ما هرگز انتظار نداریم که یک روستای کوچک 500 نفری را یک شبه به شهری 10 میلیونی تبدیل کنیم. اما ما گاهی اوقات انتظار داریم که سیستمهای نرمافزاری ما به طور ناگهانی هزار برابر تعداد درخواستهایی را که برای آنها طراحی شده اند، رسیدگی کنند. جای تعجب نیست که نتایج به ندرت زیبا هستند.
این کتاب برای چه کسی است؟
مخاطب اصلی کتاب Foundations of Scalable Systems مهندسان نرمافزار و معمارانی هستند که تجربه صفر یا محدودی با سیستمهای توزیع شده و همزمان دارند. آنها باید دانش طراحی نظری و عملی خود را تعمیق بخشند تا با چالشهای ساختن برنامههای کاربردی در مقیاس بزرگتر که معمولاً با اینترنت مواجه هستند، مقابله کنند.
آنچه شما یاد خواهید گرفت:
کتاب Foundations of Scalable Systems چشمانداز سیستمهای همزمان و توزیع شده را از طریق لنز مقیاسپذیری پوشش میدهد. در حالی که جدا کردن کامل مقیاسپذیری از سایر کیفیتهای معماری غیرممکن است، مقیاسپذیری کانون اصلی بحث است. البته، ویژگیهای دیگری الزاماً وارد بازی میشوند، با عملکرد، در دسترس بودن و ثبات مرتباً سر خود را بالا میبرند.
ساختن سیستمهای توزیع شده نیاز به درک اساسی از توزیع و همزمانی دارد – این دانش یک موضوع تکراری در سراسر کتاب Foundations of Scalable Systems است. به دلیل دو مشکل اساسی در سیستمهای توزیع شده که آنها را پیچیده میکند، مورد نیاز است، همانطور که در زیر توضیح میدهم.
اولاً، اگرچه سیستمها به عنوان یک کل تقریباً همیشه به طور کامل کار میکنند، یک بخش جداگانه از سیستم ممکن است در هر زمانی از کار بیفتد. هنگامی که یک مؤلفه از کار میافتد (خواه به دلیل خرابی سخت افزار، قطع شبکه، اشکال در سرور و غیره)، ما باید از تکنیکهایی استفاده کنیم که سیستم را به طور کلی قادر به ادامه عملیات و بازیابی از خرابیها میکند. هر سیستم توزیع شده، اغلب به روشهای عجیب، مرموز و پیشبینینشده، خرابی اجزا را تجربه میکند.
دوم، ایجاد یک سیستم توزیعشده مقیاسپذیر نیازمند هماهنگی چندین بخش متحرک است. هر جزء از سیستم باید بخشی از معامله خود را حفظ کند و درخواستها را در سریعترین زمان ممکن پردازش کند. اگر فقط یک جزء باعث تاخیر در درخواستها شود، کل سیستم ممکن است ضعیف عمل کند و حتی در نهایت خراب شود.
مجموعه ای غنی از ادبیات موجود برای کمک به شما برای مقابله با این مشکلات وجود دارد. خوشبختانه برای ما مهندسان، مجموعه گستردهای از فناوریها نیز وجود دارد که به ما کمک میکنند تا سیستمهای توزیعشدهای را بسازیم که در برابر شکست مقاوم و مقیاسپذیر باشند. این فناوریها شامل رویکردهای نظری و الگوریتمهای پیچیدهای هستند که ساختن درست آنها فوقالعاده سخت است. با استفاده از این فناوریهای کاربردی در سطح پلتفرم، برنامههای ما میتوانند روی شانههای غولها بایستند و ما را قادر میسازند راهحلهای تجاری پیچیده بسازیم.
به طور خاص، خوانندگان کتاب Foundations of Scalable Systems یاد خواهند گرفت:
- ویژگیهای اساسی سیستمهای توزیع شده، از جمله مدیریت حالت، هماهنگی زمانی، همزمانی، ارتباطات و هماهنگی
- رویکردهای معماری و فناوریهای پشتیبانی برای ساخت خدمات مقیاسپذیر و قوی
- پایگاه دادههای توزیع شده چگونه کار میکنند و میتوان از آنها برای ساخت سیستمهای توزیعشده مقیاسپذیر استفاده کرد
- معماریها و فناوریهایی مانند آپاچی کافکا و فلینک برای ساخت سیستمهای جریانی، مبتنی بر رویداد
سرفصلهای کتاب Foundations of Scalable Systems:
- Preface
- I. The Basics
- 1. Introduction to Scalable Systems
- 2. Distributed Systems Architectures: An Introduction
- 3. Distributed Systems Essentials
- 4. An Overview of Concurrent Systems
- II. Scalable Systems
- 5. Application Services
- 6. Distributed Caching
- 7. Asynchronous Messaging
- 8. Serverless Processing Systems
- 9. Microservices
- III. Scalable Distributed Databases
- 10. Scalable Database Fundamentals
- 11. Eventual Consistency
- 12. Strong Consistency
- 13. Distributed Database Implementations
- IV. Event and Stream Processing
- 14. Scalable Event-Driven Processing
- 15. Stream Processing Systems
- 16. Final Tips for Success
- Index
- About the Author
جهت دانلود کتاب Foundations of Scalable Systems میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.