7سبتمبر

تعرف على البنية التحتية التقنية لشبكة StackExchange

قبل أن أبدأ في موضوع هذه التدوينة عن StackExchange ، أنا متأكد وبنسبة كبيرة جدًا بأنك قد مررت بالسيناريو التالي كمستخدم للحاسوب: تواجهك مشكلة برمجية أو تقنية معينة وتبحث عنها في العم جوجل وتتفاجأ في أغلب الأحيان بأن الإجابة لسؤالك موجودة في موقع Stack Overflow حتى أصبح هذا الموقع الملاذ الأول للتقنيين في حل مشاكلهم المختلفة. لاحظت مؤخرًا ظهور عدد كبير من المواقع التي تعمل بنفس أسلوب Stack Overflow ولكنها متخصصة في مجالات معينة مثل ServerFault، Ask Ubuntu، MathOverflow, Super User وغيرها الكثير حتى لاحظت أنها جميعًا تتبع لشبكة StackExchange العملاقة والتي تضم تحت أجنحتها 110 موقع متخصص في الأسئلة والأجوبة!

 

إحصائيات عامة

  • تضم الشبكة 110 موقع وتزيد بمعدل 3-4 مواقع شهريًا
  • عدد المستخدمين في الشبكة 4 مليون مستخدم
  • تم طرح 8 مليون سؤال و40 مليون إجابة
  • تأتي الشبكة ككل في المركز 54 عالميًا في تدفق البيانات (Traffic)
  • تحصد الشبكة 560 مليون زيارة شهرياً

البنية التحتية

  • تعمل الشبكة على 25 سيرفر
  • مجموع البيانات هو 2 تيرابايت مخزنة على ذواكر SSD
  • كل ويب سيرفر لديه ذاكرتي SSD بسعة 320 جيجابايت تعمل بتقنية RAID 1
  • 11 ويب سيرفر يعملون باستخدام IIS من مايكروسوفت
  • 2 موزعي حمل (Load Balancers) بنظام Active/Passive
  • 4 سيرفرات قواعد بيانات
  • 3 سيرفرات للتطبيقات
  • 3 أجهزة مخصصة للقيام بعمليات البحث
  • جهازين مخصصين للتخزين المؤقت الموزع (Distributed Caching)
  • شبكتين باستخدام سويتشات Nexus 5596 من سيسكو بالألياف البصرية
  • جدارين ناريين من نوع X-5525 ASA من سيسكو
  • راوترين من نوع 3945 من سيسكو
  • سيرفرين مخصصين للقراءة فقط من قواعد البيانات وتستخدم لواجهتهم البرمجية StackExchange API

المنصات المستخدمة

  • ElasticSearch – سيرفر مخصص للبحث
  • Redis – سيرفر مخصص لهيكلة قواعد البيانات
  • HAProxy – أداة مخصصة لتوزيع الحمل و High Availability
  • MS SQL – سيرفرات قواعد البيانات من مايكروسوفت
  • Opserver – أداة لمتابعة النظام والأداء من تطوير StackExchange أنفسهم
  • TeamCity – أداة مخصصة للمطورين وهي للتكامل بين الأنظمة

بالرغم من الحجم الكبير جدًا للبيانات والضغط عليهم، إلا أن احصائياتهم تشير بأن استهلاك المعالجات لديهم يكون بمعدل 10% فقط! والأسباب كثيرة منها استخدامهم لذواكر SSD واستخدامهم للتخزين المؤقت Caching على مستويات كثيرة تبدأ من شبكات توصيل المحتوى CDN إلى قواعد البيانات حتى يتم تخفيف الضغط بقدر الإمكان على السيرفرات الرئيسية. تجدون هنا المزيد من المعلومات حول بقية الأمور التقنية وغير التقنية كتفاصيل الفرق داخل الشركة وسبب تفضيلهم لبعض المنتجات على أخرى.

 

 

شارك التدوينة !

4 تعليقات

  1. السلام عليكم.
    مستغرب لماذا لم يستخدموا apache او nginx ؟
    ——
    اغلب حلول مشاكلي البرمجية موجودة في stachoverflow 🙂

    • وعليكم السلام أخي الحسين،
      حسب تبريرهم فإن أغلب الشبكة مبرمجة باستخدام C#، وهي تعمل بشكل أفضل على IIS ولذا قاموا باستخدامه.
      وبنفس السيناريو يقومون بتشغيل Redis على أنظمة لينكس لأنها تعمل بشكل أفضل عليها.

  2. موضوع ممتاز . شكرا للمعلومات .

  3. كل الشكر لك ياعسل تدوينة جميلة

    هنالك اسئلة كثيرة تدور في بالي ولكني ساكتفي بشكرك

    لا تحرمنا من هالنوعية من المعلومات

    الاستثمار في المعرفة من اجمل انواع الاستثمارات وارقاها

اضف رد

لن يتم نشر البريد الإلكتروني . الحقول المطلوبة مشار لها بـ *

*

كُتِبَتْ بِحُب ♥