
- بواسطة x32x01 ||
لما تبني تطبيق جديد، بيكون متقسم جزئين:
المشاكل مع السيرفر الواحد
تخيل السيرفر زي لاب توب:
الحل؟ نفصل الخدمات:
إيه هو Scalability؟
Scalability معناها إن السيستم جاهز للتوسع لما عدد المستخدمين يزيد. وده ممكن يتحقق بطريقتين:
العيب: السيرفر ليه حد أقصى، ولو وقع، السيستم كله يقع.
دور الـ Load Balancer
الـ Load Balancer هو طبقة بتحطها قدام السيرفرات لتوزيع الضغط (Traffic):
إدارة قواعد البيانات
مش ممكن تقسم قاعدة البيانات على أكتر من سيرفر بنفس طريقة الكود، لأن:
ليه الشركات الكبيرة بتنجح؟
الشركات زي أمازون ونتفليكس بتقدر تخدم ملايين المستخدمين لأنها:
- Frontend: الجزء اللي بيشوفه المستخدم، زي الموقع أو تطبيق الموبايل.
- Backend: الجزء اللي ورا الكواليس، فيه السيرفرات وقواعد البيانات.
المشاكل مع السيرفر الواحد
تخيل السيرفر زي لاب توب:- كل ما تضيف ضغط أو Requests كتير، هيبدأ يهنج.
- لو عدد المستخدمين زاد جدًا، السيستم كله ممكن ينهار.
الحل؟ نفصل الخدمات:
- قاعدة البيانات على سيرفر لوحدها.
- كود الـ Backend على سيرفر تاني.
إيه هو Scalability؟
Scalability معناها إن السيستم جاهز للتوسع لما عدد المستخدمين يزيد. وده ممكن يتحقق بطريقتين:1. Vertical Scaling
زيادة إمكانيات السيرفر نفسه:- تزود RAM أو CPU.
- زي ما تغير لاب توب قديم بلابتوب أقوى.

2. Horizontal Scaling
استخدام أكتر من سيرفر بدل سيرفر واحد:- لو سيرفر وقع، الباقي يفضل شغال.
- ممكن تزود عدد السيرفرات حسب الضغط على النظام.
دور الـ Load Balancer
الـ Load Balancer هو طبقة بتحطها قدام السيرفرات لتوزيع الضغط (Traffic):- يحدد أي سيرفر عليه أقل ضغط ويروح له الـ Request.
- يوزع الطلبات بشكل متوازن باستخدام أكتر من طريقة.
إدارة قواعد البيانات
مش ممكن تقسم قاعدة البيانات على أكتر من سيرفر بنفس طريقة الكود، لأن:- لو عملت Insert في سيرفر وما اتعملش في التاني، البيانات هتلخبط.
- استخدام Database Cluster.
- مفهوم Replication لضمان تزامن البيانات بين السيرفرات.
ليه الشركات الكبيرة بتنجح؟
الشركات زي أمازون ونتفليكس بتقدر تخدم ملايين المستخدمين لأنها:- تعتمد على مهندسين فاهمين كويس Scalability و System Design.
- كل ما تفهم توزيع الضغط وحل مشاكل الداتا، السيستم هيقدر يخدم ملايين المستخدمين من غير ما ينهار.
التعديل الأخير: