logo

CardDev

CodeDev

logo

CardDev

CodeDev

درباره ما

قوانین و سوالات

کتاب‌های نرم افزار خوندنش چه نسخه اصلی و چه ترجمه شده میتونه برامون چالش برانگیز و سخت باشه. یا شاید اصلا حوصله نکنی این همه وقت و انرژی بزاری برای کتاب ، ما هستیم تا تو بتونی کتاب های مطرح و مهم دنیای نرم افزار رو بیشتر از پیش و با انگیزه بیشتر و کیفیت بهتر مطاله کنی و یادش بگیری.
CardDev قدمی کوچک برای یک تیم و قدمی بزرگ برای جامعه بزرگ مهندسین نرم‌افزار و برنامه نویسان!

ارتباط با ما

ایمیل

info@aiflashcard.dev

شبکه های اجتماعی

CardDev
CardDev

نصب اپ CardDev

دسترسی سریع‌تر از هوم‌اسکرین

کلیه حقوق مادی و معنوی برای سایت CardDev محفوظ است.
KhademBuilt pixel by pixel by
Khadem Al Mahdi

Built pixel by pixel by

کتاب طراحی سیستم‌های توزیع‌شده، ویراست دوم

0 فلش‌کارت
0 گالری‌کارت
0 صوت
0 پرامپت
0 واژه‌نامه

هر سیستم توزیع‌شده‌ای برای دستیابی به قابلیت اطمینان (Reliability)، کارایی و کیفیت تلاش می‌کند، اما ساخت چنین سیستمی دشوار است. ایجاد مجموعه‌ای از الگوهای طراحی (Design Patterns) به توسعه‌دهندگان نرم‌افزار و معماران سیستم اجازه می‌دهد تا از یک زبان مشترک برای توصیف سیستم‌های خود استفاده کرده و از الگوها و تجربیات توسعه‌یافته توسط دیگران یاد بگیرند. محبوبیت کانتینرها و Kubernetes راه را برای الگوهای اصلی سیستم‌های توزیع‌شده و مولفه‌های کانتینری قابل استفاده مجدد هموار می‌سازد. این راهنمای کاربردی مجموعه‌ای از الگوهای عمومی و تکرارپذیر را ارائه می‌دهد تا به هدایت سیستم‌هایی که می‌سازید کمک کند، آن هم با استفاده از الگوها و روش‌های متداول استخراج‌شده از برخی از پربازده‌ترین سیستم‌های توزیع‌شده امروزی. این الگوهای متداول، سیستم‌های ساخته‌شده توسط شما را بسیار قابل فهم‌تر و کارآمدتر می‌کنند، حتی اگر قبلاً هرگز یک سیستم توزیع‌شده نساخته باشید. نویسنده، Brendan Burns، نشان می‌دهد چگونه می‌توانید الگوهای طراحی نرم‌افزار موجود را برای طراحی و ساخت برنامه‌های کاربردی توزیع‌شده مطمئن با شرایط خود تطبیق دهید. مهندسان سیستم و توسعه‌دهندگان برنامه یاد خواهند گرفت که چگونه این الگوهای دیرینه، یک زبان و چارچوب مشترک برای افزایش چشمگیر کیفیت سیستم شما فراهم می‌کنند. این ویراست دوم به‌طور کامل به روز شده و شامل فصل‌های جدیدی در زمینه استنتاج هوش مصنوعی (AI Inference)، آموزش هوش مصنوعی و ساخت سیستم‌های مقاوم برای دنیای واقعی است.

اشتراکی

book cover
O’Reilly
0 فلش‌کارت
0 گالری‌کارت
0 صوت
0 پرامپت
0 واژه‌نامه
جزئیاتمقدمهفصل‌هانسخه‌ها

فصل های کتاب

با مرور فصل‌ها، ساختار ، محتوای کتاب را به سرعت بشناسید.

با مرور فصل‌های این کتاب می‌تونی خیلی سریع بفهمی هر بخش چی یاد میده، ساختار کلی چطوره و از کجا باید شروع کنی. هر فصل روی یک مفهوم یا مهارت خاص تمرکز داره و موضوعات اصلیش رو می‌بینی تا انتخابت آگاهانه‌تر باشه. چه بخوای کل کتاب رو دنبال کنی، چه فقط یک بخش خاص رو دنبال کنی، این نما کمکت می‌کنه مسیرت رو پیدا کنی.

مفاهیم پایه‌ای

قبل از اینکه شروع به توصیف سیستم‌های توزیع‌شده کنیم، انگیزه‌ها و مفاهیمی وجود دارند که پایه و اساس چرایی و نحوه ساخت سیستم‌های توزیع‌شده را تشکیل می‌دهند. این بخش به بررسی این مفاهیم پایه‌ای می‌پردازد تا مبنایی برای باقی کتاب فراهم کند.

سیستم‌های توزیع‌شده در خلاء وجود ندارند. توسعه چنین سیستم‌هایی بر اساس نقش در حال تحول رایانش و سیستم‌های آنلاین در کسب‌وکار و سرگرمی شکل گرفته است؛ به‌ویژه در توسعه سیستم‌های همواره روشن و حیاتی که هر روز به آن‌ها متکی هستیم. علاوه بر این، توسعه سیستم‌های توزیع‌شده مدرن بر اساس تاریخچه نحوه طراحی و ساخت این سیستم‌ها در گذشته استوار است. این تاریخچه از نحوه ساخت سیستم‌ها و اغلب مهم‌تر از آن، نحوه شکست آن‌ها، ما را به معماری‌های کانتینری و مایکروسرویسی فعلی هدایت کرده است.

قبل از اینکه بتوان طراحی سیستم‌های توزیع‌شده را توصیف کرد، لازم است در مفاهیم اصلی نحوه کارکرد سیستم‌های سرور، و همچنین مفاهیم بنیادی علوم رایانه مانند قفل‌گذاری و APIها تسلط داشت. همچنین داشتن پایه‌ای در عملیات اساسی سیستم‌های توزیع‌شده مانند پایش و لاگ‌گیری ضروری است. در نهایت، چون سیستم‌های توزیع‌شده شامل تعاملات بی‌شماری در میان سیستم‌های مختلف و درخواست‌های متعدد هستند، داشتن درک پایه‌ای از آمار و نحوه اندازه‌گیری رفتار مشترک در سراسر سیستم از طریق مشاهده لازم است.

book cover
فصل 1

مقدمه

درحال تولید...
book cover
فصل 2

مفاهیم مهم سیستم‌های توزیع‌شده

درحال تولید...

الگوهای تک‌گره‌ای

این کتاب به سیستم‌های توزیع‌شده می‌پردازد که برنامه‌های کاربردی ساخته‌شده از مولفه‌های مختلف روی ماشین‌های مختلف هستند. با این حال، بخش اول این کتاب به الگوهایی اختصاص دارد که روی یک گره واحد وجود دارند. انگیزه این امر ساده است: کانتینرها بلوک‌های سازنده اصلی برای الگوهای این کتاب هستند، اما در نهایت، گروه‌های کانتینرهای هم‌مکان روی یک ماشین واحد، عناصر بنیادی الگوهای سیستم‌های توزیع‌شده را تشکیل می‌دهند.

اگرچه واضح است چرا ممکن است بخواهید برنامه توزیع‌شده خود را به مجموعه‌ای از کانتینرهای مختلف که روی ماشین‌های مختلف اجرا می‌شوند تقسیم کنید، شاید انگیزه تقسیم مولفه‌های اجراشده روی یک ماشین واحد به کانتینرهای مختلف کمی مبهم‌تر باشد. برای درک انگیزه این گروه‌های کانتینری، ارزش دارد اهداف پشت کانتینری‌سازی بررسی شود. به طور کلی، هدف یک کانتینر ایجاد مرزهایی در اطراف منابع مشخص است (مثلاً این برنامه به دو هسته و ۸ گیگابایت حافظه نیاز دارد). به همین ترتیب، مرزها مالکیت تیم را مشخص می‌کنند (مثلاً این تیم مالک این ایمیج است). در نهایت، مرز برای تفکیک وظایف در نظر گرفته شده است (مثلاً این ایمیج این یک کار را انجام می‌دهد).

همه این دلایل انگیزه‌ای برای تقسیم یک برنامه روی یک ماشین واحد به منطقه‌ای از کانتینرها فراهم می‌کنند. ابتدا ایزوله‌سازی منابع را در نظر بگیرید؛ برنامه شما ممکن است از دو مولفه تشکیل شده باشد که یکی کاربرمحور است...

book cover
فصل 3

الگوی سايدکار

درحال تولید...
book cover
فصل 4

الگوی سفیر

درحال تولید...
book cover
فصل 5

الگوی آداپتور

درحال تولید...

الگوهای خدمت‌رسانی

فصل ۵ الگوهای گروه‌بندی مجموعه‌ای از کانتینرها را توصیف کرد که روی یک ماشین برنامه‌ریزی می‌شوند. این گروه‌ها سیستم‌های وابسته و متصل به هم هستند که به منابع محلی مشترک مانند دیسک، رابط شبکه یا ارتباطات بین‌فرآیندی متکی هستند. این گروه‌های کانتینری الگوهای مهمی هستند، اما بلوک‌های سازنده سیستم‌های بزرگ‌تر نیز محسوب می‌شوند.

قابلیت اطمینان، مقیاس‌پذیری و تفکیک وظایف ایجاب می‌کنند که سیستم‌های دنیای واقعی از مولفه‌های مختلفی ساخته شوند که روی چندین ماشین توزیع شده‌اند. در مقایسه با الگوهای تک‌گره‌ای، الگوهای توزیع‌شده چندگره‌ای دارای اتصال ضعیف (Loose Coupling) بیشتری هستند. اگرچه این الگوها شیوه‌های ارتباط بین مولفه‌ها را تعیین می‌کنند، اما این ارتباطات بر اساس فراخوانی‌های شبکه‌ای است. علاوه بر این، بسیاری از فراخوانی‌ها به صورت موازی انجام می‌شوند و سیستم‌ها به جای محدودیت‌های سخت، از طریق همگام‌سازی سبک هماهنگ می‌شوند.

اخيراً واژه مایکروسرویس (Microservice) به اصطلاحی متداول برای توصیف معماری‌های نرم‌افزاری توزیع‌شده چندگره‌ای تبدیل شده است. مایکروسرویس‌ها سیستمی را توصیف می‌کنند که از مولفه‌های مختلفی تشکیل شده و در فرآیندهای مجزا اجرا می‌شوند و از طریق APIهای تعریف‌شده ارتباط برقرار می‌کنند. این معماری در مقابل سیستم‌های یکپارچه (Monolithic) قرار دارد که تمام وظایف سرویس را در یک برنامه واحد و به شدت هماهنگ قرار می‌دهند.

book cover
فصل 6

سرویس‌های تکرارشده با متعادل‌کننده بار

درحال تولید...
book cover
فصل 7

سرویس‌های بخش‌بندی‌شده

درحال تولید...
book cover
فصل 8

الگوی پراکنده/گردآوری

درحال تولید...
book cover
فصل 9

توابع و پردازش رویدادمحور

درحال تولید...
book cover
فصل 10

انتخاب مالکیت

درحال تولید...

الگوهای محاسباتی بچ

فصل‌های قبلی الگوهایی برای برنامه‌های سرور بلندمدت و قابل اعتماد را توصیف کردند. این بخش به الگوهای پردازش بچ (دفعه‌ای) می‌پردازد. بر خلاف برنامه‌های بلندمدت، انتظار می‌رود پردازش‌های بچ فقط برای مدت زمان کوتاهی اجرا شوند. نمونه‌هایی از پردازش بچ شامل تولید تجمیع داده‌های دورسنجی کاربران، تحلیل داده‌های فروش برای گزارش‌دهی روزانه یا هفتگی، یا تغییر فرمت فایل‌های ویدیویی است.

پردازش‌های بچ عموماً با نیاز به پردازش سریع حجم زیادی از داده‌ها با استفاده از موازی‌سازی برای سرعت بخشیدن به پردازش شناخته می‌شوند. مشهورترین الگو برای پردازش بچ توزیع‌شده، الگوی MapReduce است که خود به یک صنعت کامل تبدیل شده است. با این حال، چند الگوی مفید دیگر نیز برای پردازش بچ وجود دارد که در فصل‌های بعدی توصیف می‌شوند.

book cover
فصل 11

سیستم‌های صف کاری

درحال تولید...
book cover
فصل 12

پردازش بچ رویدادمحور

درحال تولید...
book cover
فصل 13

پردازش بچ هماهنگ‌شده

درحال تولید...

مفاهیم عمومی

تاکنون ما بر الگوهایی برای ساخت برنامه‌ها، از گره‌های واحد گرفته تا سیستم‌های توزیع‌شده پیچیده تمرکز کرده‌ایم. علاوه بر این الگوها، بخش‌هایی از سیستم‌های ما وجود دارند که برای تمام برنامه‌هایی که می‌سازید عمومی هستند.

فصل‌های این بخش برخی از این مفاهیم عمومی را پوشش می‌دهند. فصل ۱۴ به قابلیت مشاهده (Observability) برای برنامه شما از طریق ثبت لاگ، پایش و هشداردهی می‌پردازد. قابلیت مشاهده برای این که درک کنید آیا برنامه شما به درستی کار می‌کند یا خیر حیاتی است. فصل ۱۵ هوش مصنوعی را پوشش می‌دهد که شیوه تفکر ما درباره برنامه‌ها و رابط‌های کاربری را دگرگون کرده است.

در نهایت، فصل ۱۶ این بخش را با ارائه اشتباهات و خطاهای رایجی که به طور ناگواری در سیستم‌های توزیع‌شده رخ می‌دهند به پایان می‌رساند. صرف نظر از نوع برنامه شما، تمام این فصل‌ها شما را قادر می‌سازند تا آن را هوشمندتر و مطمئن‌تر سازید.

book cover
فصل 14

الگوهای پایش و قابلیت مشاهده

درحال تولید...
book cover
فصل 15

استنتاج و سرویس‌دهی هوش مصنوعی

درحال تولید...
book cover
فصل 16

الگوهای شکست متداول

درحال تولید...
خانهدسته‌بندیکتابخانهکتاب‌منپروفایل
انتشار کتاب

16 فصل در حال تولید

آخرین بروزرسانی
۳۱ شهریور ۱۴۰۵
امتیاز
5.0
پیش نیاز
ندارد

مدت زمان خوانش

05:59

نوع کتاب

اشتراکی

شرکت کنندگان

0 نفر

تولید کتاب

۳۱ شهریور ۱۴۰۵