tgoop.com/the_developer_guide/5701
Last Update:
دردشة سريعة عن الـ Distributed Systems 🔻
———
📌 يعني إيه Distributed Systems؟
ببساطة، الـ Distributed Systems هي نظام بيتكون من مجموعة أجهزة كمبيوتر (أو سيرفرات) شغالة مع بعض كأنهم جهاز واحد.
الهدف الأساسي إننا نوزع الشغل (processing) أو تخزين البيانات (storage) على أكتر من جهاز عشان نحقق حاجات زي:
📍 الـ Scalability:
لو النظام محتاج يشتغل مع عدد مستخدمين أكبر أو بيانات أكتر، نقدر نزود أجهزة جديدة بسهولة بدل ما نضغط على جهاز واحد.
📍 الـ Fault Tolerance:
لو جهاز وقع أو حصلت مشكلة في مكان معين، النظام يكمل شغله عادي بدون توقف.
📍 الـ Performance:
توزيع الحمل على أكتر من جهاز بيخلي العمليات أسرع وأكثر كفاءة.
———
إزاي الأنظمة دي بتشتغل؟ 🤔
الفكرة الأساسية في أي Distributed System هي وجود أجهزة بتتواصل مع بعضها (Networking). الأجهزة دي بتبعت لبعض رسائل (Messages) عن طريق الشبكة عشان تنجز المهام. خليني أشرحلك 3 مكونات أساسية:
⚙️ الـ Nodes (العُقد): دي الأجهزة نفسها اللي بتشيل الداتا أو بتعمل عمليات معينة. كل جهاز بنسميه "Node".
⚙️ الـ Communication: العقد دي لازم تتواصل مع بعض باستخدام بروتوكولات زي HTTP أو gRPC.
⚙️ الـ Consensus (التوافق): لما أكتر من جهاز يشتغلوا مع بعض، لازم يتفقوا على حالة معينة، خصوصًا لو أكتر من جهاز بيعدل على نفس الداتا.
———
🛠 أمثلة حقيقية على الـ Distributed Systems
📍 الـ Google Search: عملية البحث بتتوزع على آلاف السيرفرات عشان تلاقي الإجابة في جزء من الثانية.
📍 منصة Facebook: لما تفتح صفحتك، البيانات بتجيلك من أكتر من سيرفر، وكل سيرفر مسؤول عن جزء معين زي المنشورات أو الصور، عشان التحميل يكون أسرع.
📍 الـ Blockchain: كل الأجهزة (Nodes) اللي في الشبكة بتشتغل مع بعض عشان تحقق التوافق (Consensus) على المعاملات.
———
⚠️ التحديات في الـ Distributed Systems
مع إن الفكرة عبقرية، لكن فيها شوية تحديات مهم تخلي بالك منها:
- الـ Latency (زمن الاستجابة): التواصل بين الأجهزة بيحتاج وقت، وده ممكن يأثر على سرعة النظام.
- الـ Data Consistency (توافق البيانات): لما أكتر من جهاز يشتغلوا على نفس الداتا، لازم نضمن إنهم ما يدخلوا في تعارض (Conflict).
- الـ Fault Tolerance: إزاي نضمن إن النظام يفضل شغال حتى لو حصلت أعطال في بعض الأجهزة.
———
وفقكم الله لكل خير 🌿
BY DevGuide 🇵🇸
Share with your friend now:
tgoop.com/the_developer_guide/5701