Understanding Distributed Systems Book Recommendation

دائمًا ما كانت تتمثل صعوبة دراسة النظم الموزعة في عدم وجود مصدر محدد يساعد في فهمها بدون سابق معرفة وإلمام بها، ثم أتى هذا الكتاب حتى يزيل الحرج ويبدأ معك بدون أية معرفة مسبقة ليتناول النظم الموزعة بأسهل شكل ممكن يجعلك على دراية وفهم بما يحدث في هذا العالم الكبير.
Understanding Distributed Systems Book Recommendation

في هذه الصفحة

معلومات عامة عن الكتاب

دائمًا ما كانت تتمثل صعوبة دراسة النظم الموزعة في عدم وجود مصدر محدد يساعد في فهمها بدون سابق معرفة وإلمام بها، ثم أتى هذا الكتاب حتى يزيل الحرج ويبدأ معك بدون أية معرفة مسبقة ليتناول النظم الموزعة بأسهل شكل ممكن يجعلك على دراية وفهم بما يحدث في هذا العالم الكبير.

ولم تكن صعوبة دراسة النظم الموزعة تتمثل في ذلك فقط بل أيضًا تحتاج إلى ربط العديد والعديد من المواضيع المتشابهة وذات الصلة ببعضها البعض حتى يتثنى لك فهمها جيدًا.

مراجعة لمحتوى الكتاب

يتناول الكتاب النظم الموزعة بشكل مرتب ومنظم لأقصى درجة، ويبدأ بمقدمة عامة عن النظم الموزعة حتى يمهد الطريق لك لما هو قادم، ويبدأ أولى فصوله بالـ Communication ليشرح كيف ستتواصل هذه النظم مع بعضها البعض، وما هي الطرق المختلفة لتحقيق ذلك التواصل، وهنا يتطرق للعديد من المواضيع المرتبطة بالـ Networks وسيتناول الفرق بين Synchronous and Asynchronous Communication ودور الـ TCP وصولًا بالـ HTTP/S بأسلوب سلس ويسير.

ثم يدخل الكتاب في فصله الثاني وبعد معرفتنا بكيفية تواصل هذه النظم مع بعضها، فيجب علينا فهم ومعرفة كيف سيتم تنسيق المهام وتنفيذها بشكل يضمن تحقيق الهدف من وجودها، ويتطرق لمواضيع في غاية الأهمية كالـ Replication، والـ Leader Election، والـ Failure Detection ولم يكتفي بهذا فقط بل أيضًا توغل حتى وصل للـ Distributed Transactions.

وبعد هذا يتناول الكتاب أحد أهم المواضيع والتي نسعى لتحقيقها من خلال النظم الموزعة ألا وهي الـ Scalability وكيفية تحقيق ذلك من خلال ثلاث عوامل أساسية كالـ Functional Decomposition ويتناول ايضًا بعض المواضيع كالـ Micro-Services والـ API Gateway ولا يكتفي فقط بطرحها بشكل مبسط بل أيضًا يوضح مزايها وعيوبها ، وينهي هذا الفصل بحديثه عن الـ Partitioning والـ Duplication.

وأكثر ما لفت نظري في هذا الفصل هو ليس فقط حديثه عن هذه المواضيع بل انغماسه بالعديد من المواضيع التي قد تفتح المجال لك لمعرفة الكثير والكثير من الأشياء ذات علاقة بالنظم الموزعة كالخوارزميات المختلفة في تحقيق الـ Partitioning، وتناول ايضًا مشكلة الـ Hot Spots الشهيرة الناتجة عن هذا التقسيم، ومن ثم يختتم بالـ Consistent Hashing كعلاج لكثير من المشاكل الناتجة عن التقسيم، وفي جزء الـ Duplication تحدث عن الفرق بين الـ Load Balancer 4 vs 7 والفرق بينهم.

وآخيرًا وليس آخرًا يتناول الكتاب بعض المواضيع الهامة التي لا يتطرق العديد للحديث عنها كالـ Resiliency وكيفية تحقيقها من خلال فصلها لشقين وهم الـ Downstream والـ Upstream Dependencies وما هي المشاكل المتوقعة وكيفية التفكير في إيجاد حلول لها كالـ Circuit-Breaker , Timeout, Rate Limiting, Load Shedding , Retries وغيرهم.

ومن ثم يختتم الكتاب كل هذا بحديثه عن الـ Maintainability بداية بأهمية الـ Tests وأنواعه المختلفة من Unit Tests حتى الـ End-to-End مرورًا بالـ Continuous Delivery وختامًا بالـ Monitoring وتعمقه للـ Logs, Traces, Metrics ونهاية بالـ SLIs, SLOs.

المميزات والانتقادات

المميزات:

١- أسلوب سهل وبسيط ولا يحتاج إلى لغة انجليزية معقدة لقراءته.

٢- الكتاب منظم بشكل ممنهج حتى يجعلك تستطيع الربط بين العديد من المواضيع المختلفة.

٣- الكتاب مليء بالرسومات التوضيحية التي تسهل عليك فهم وتلقي المعلومة.

٤- التركيز على العديد من المواضيع وتناولها بشكل بسيط وتجريدي حتى يتيح لك معرفة العديد من الأشياء التي يمكنك فيما بعد التعمق في كل واحدة على حدى.

في الختام

قد يبدو للبعض أن تناول الكتاب لكل هذه المواضيع ليس بالشيء المنطقي خصوصًا بعد معرفتهم بعدد صفحات الكتاب القليلة، ولكن هذا الكتاب يعد بداية جيدة ومنظمة لطريق طويل إلى فهم النظم الموزعة بشكل تجريدي وبسيط. 

ولذلك أنصح به أي طالب جامعي مهتم بدراسة ومعرفة النظم الموزعة في هندسة الحاسب، أو حديثي التخرج أو أي مطور مبتدأ. وأنصح به كمراجعة جميلة للعديد من المواضيع لمن هو ذو مستوى متقدم.

اشترك الآن بنشرة اقرأ-تِك الإخبارية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!
رائع! تحقق من بريدك الإلكتروني واضغط على الرابط لإكمال تسجيل الدخول.
حدث خطأ! من فضلك قم بادخال بريد إلكتروني صحيح!