scalability معنى ماذا يعني التوسع؟




التوسع المهبلي (4)

قرأت العديد من المقالات التي تقارن لغات البرمجة.

هناك كلمة تأتي غالبًا: قابلية التوسع. لقد حاولت بالفعل البحث عن تفسير بسيط وواضح ، ولكن لم أجده.

هل يمكنك شرح ماذا تعني قابلية التوسع؟

شكر.


ما أفهمه هو أنه يعني أن الزيادة الطولية في الناتج المطلوب تتطلب فقط زيادة خطية في الموارد .


بالفعل إجابات رائعة هنا ، أردت فقط إضافة بعض الأشياء هنا.

يمكن تحقيق قابلية التطوير بطريقتين:

  1. عمودي - بهذه الطريقة ، يمكنك إضافة المزيد من الأجهزة مثل المزيد من ذاكرة الوصول العشوائي (RAM) أو المعالج أو المزيد من العقد. يمكنك أيضًا تقديم موازن تحميل ، مما سيساعد في توجيه المكالمات الواردة إلى خوادم مختلفة استنادًا إلى خوارزمية التوجيه المستخدمة. أصبح التطبيق الآن قادرًا على التعامل مع المزيد من التحميل حيث تتم مشاركة التحميل عبر الخوادم.

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


القابلية للتطوير هي قدرة البرنامج على التوسع. على سبيل المثال ، إذا تمكنت من القيام بشيء ما على قاعدة بيانات صغيرة (قل أقل من 1000 سجل) ، فإن برنامجًا قابلًا للتطوير بدرجة كبيرة سيعمل بشكل جيد على مجموعة صغيرة ، وكذلك يعمل بشكل جيد على مجموعة كبيرة (لنقل الملايين ، أو مليارات من السجلات ).

مثل الفجوة قال ، سيكون لها نمو خطي لمتطلبات الموارد. ابحث عن تدوينة Big-O للحصول على مزيد من التفاصيل حول كيف يمكن للبرامج أن تتطلب المزيد من الحوسبة كلما زاد حجم مدخلات البيانات. شيء مكافئ مثل Big-O (x ^ 2) هو أقل فعالية بكثير مع مدخلات x كبيرة من شيء خطي مثل Big-O (x).


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

عند الحديث عن قابلية التوسع في الأنظمة ، فإننا نميز عادةً بين

  • "زيادة" - القدرة على النمو باستخدام أجهزة أقوى
  • "Scale out" - القدرة على النمو بإضافة المزيد من الأجهزة

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