اهلاً
باتكلم عن سؤال يتكرر عندي و مهم للمطورين و لاصحاب البزنس اللي شغلهم online سواءً مواقع او تطبيقات ، السؤال هو كيف اعرف "حجم السيرفر المناسب" المقصود طبعاً (ال resources) طيب هنا ندخل في اكثر من شغلة :
باتكلم عن سؤال يتكرر عندي و مهم للمطورين و لاصحاب البزنس اللي شغلهم online سواءً مواقع او تطبيقات ، السؤال هو كيف اعرف "حجم السيرفر المناسب" المقصود طبعاً (ال resources) طيب هنا ندخل في اكثر من شغلة :
اول شي : هل موقعك او خدمتك تحتاج قاعدة بيانات ؟ اذا ايه هنا بنحتاج نخليها centralized يعني نحتاج نسوي قاعدة بيانات منفصلة و مهما كان عدد السيرفرات عندك راح يرجعون لنفس قاعدة البيانات ، ليش ؟ لانه لو حصل عندك ضغط و فتحت سيرفر جديد معناها عندك سيرفرين و الداتا فيهم راح تختلف
و المشكلة الثانية انه لو انتهيت من واحد منهم و وقف الداتا اللي فيه راحت عليك عشان كذا نستخدم قاعدة بيانات وحدة يتواصلون جميع السيرفرات معها ، طيب جانا ضغط و قاعدة البيانات مو جالسة تستحمل ال requests من ال servers وش نسوي ؟ هنا فيه اشياء نقدر نسويها لتخفيف الضغط و توزيع العمليات
يعني نقدر نسوي reading replicas و هي سيرفرات قواعد بيانات للقراءة فقط و الداتا اللي فيها نسخة من ال central database اللي سويناها بالطريقة خذي قللنا العمليات على قاعدة البيانات الاساسية و خليناها تكتفي بعملية الكتابة (اضافة،تعديل،حذف)
طبعاً ال reading replicas نقدر نسوي لها autoscaling و نضيف العدد اللي نحتاجه وقت الحاجة و نوقف اي سيرفر اضافي بشكل تلقائي اذا انتهينا منه بدون ما نخسر اي داتا.
طيب الحين نجي للنقطة الثانية : كيف اعرف السيرفر اللي عندي كم يتحمل من مستخدم في نفس الوقت ، هنا نسوي شي اسمه stress test اللي يصير في الاختبار هذا هو اننا نسوي محاكاة لعدد مستخدمين جالسين يستخدمون الخدمة حقتك في نفس الوقت
بعد نهاية الاختبار راح تشوف في كل مرحلة كم الوقت اللي ياخذه السيرفر في الرد على المستخدمين عند كل نقطة و متى السيرفر ما استجاب - the server is down - من هنا تعرف كم يتحمل سيرفرك و مهم جداً انه في الوقت هذا تاخذ السيرفر في حالته الطبيعية.
طيب عرفنا كم يتحمل السيرفر الحين نجي للموضوع الاهم ، انا اسوي اعلانات و يطيح السيرفر كيف احل المشكلة هذي !
انا ما اعرف كم مستخدم بيجيني هنا نجي لموضوع ال auto scaling للسيرفرات ، في ال auto scaling اللي يصير هو اننا نجط شروط معينة اذا تحققت راح يتنفذ امر معين
انا ما اعرف كم مستخدم بيجيني هنا نجي لموضوع ال auto scaling للسيرفرات ، في ال auto scaling اللي يصير هو اننا نجط شروط معينة اذا تحققت راح يتنفذ امر معين
مثلاً في حال كان استخدام ال cpu > 60% هنا افتح سيرفر جديد بالمواصفات الفلانية او افتح العدد الفلاني من السيرفرات بالمواصفات الفلانية.
في حال استخدام ال cpu < 40% وقف واحد من السيرفرات او العدد الفلاني من السيرفرات.
في حال استخدام ال cpu < 40% وقف واحد من السيرفرات او العدد الفلاني من السيرفرات.
ندخل حالياً في موضوع ال cost optimization :
انت كصاحب بزنس يهمك طبعاً انك تقلل التكاليف قدر الامكان و عشان توصل للنقطة هذي لازم نعرف وش الخيارات اللي عندنا ، بعض الخدمات مثل (aws) - ما ادري عن google cloud و alibaba cloud -
انت كصاحب بزنس يهمك طبعاً انك تقلل التكاليف قدر الامكان و عشان توصل للنقطة هذي لازم نعرف وش الخيارات اللي عندنا ، بعض الخدمات مثل (aws) - ما ادري عن google cloud و alibaba cloud -
عندهم خدمة حلوة و هي انك تقدر تسوي pid على السيرفرات ، يعني عندهم مثلاً ٥٠ الف سيرفر فاضي فيقولون تقدر تحط اعلى مبلغ ممكن تدفعه ع السيرفر الواحد في الساعة و اعلى pid بياخذ السيرفر المشكلة هنا هي ان السيرفرات هذي ممكن تختفي من عندك في اي دقيقة
فلازم اذا عندك database تكون centralized والا بتروح عليك ، طيب ما ابي استخدم الخدمة هذي و مستعد ادفع اكثر و اضمن شي stable اذا احتجته. هنا مثل ما ذكرت سابقاً ال auto scaling العادي يفترض يفي بالغرض.
نجي لنقطة ثانية وش السيرفر اللي اخليه اساسي و منه نقيس خل نحتاج نرفع عدد السيرفرات او لا ، بالنسبة لي اشوف انه السيرفر الاساسي يفترض يكون يغطي بشكل ممتاز عدد مستخدمين في اقل وقت في اليوم ، يعني خلنا نفترض انه اقل عدد مستخدمين يجينا بين الساعة ١ الليل و ٣ الفجر
هنا راح ناخذ متوسط العدد هذا (نفترض ١٠٠٠ مستخدم و نزيد عليه شوي مثلاً نخليه ١٢٠٠) يفترض السيرفر يقدر يخدم ١٢٠٠ بدون مشاكل او تأخير فلو جانا ١٥٠٠ يفترض انه يقدر يشيلهم بتأخير بسيط و و يفترض ان ال ١٥٠٠ يوصلون مرحلة انهم يفتحون سيرفر جديد بال auto scale طبعاً ما علينا خوف من التكلفة
لانه مثل ما ذكرت ال auto scale مثل ما هو يقدر يفتح سيرفرات يقدر يقفلهم بعد ما تنتهي الحاجة منهم. فيه نقطة مهمة بالنسبة لل auto scale و هي انه عندنا نوعين منه الاول ياخذ نفس السيرفر و يوسعه او بعباره ثانية راح يحذف السيرفر و يفتح لك واحد اكبر منه و هنا طبعاً بيكون عندنا down time
و النوع الثاني راح يحافظ على السيرفر و يفتح لك واحد جديد او اكثر بدون ما يحذف الاساسي و هنا ما راح يكون عندنا down time
طبعاً الشرح مو متعمق مرة لكن فيه الافكار الرئيسية كيف تقيس قدرة السيرفر و كيف تضمن ان الداتا مشتركة عند كل السيرفرات و كيف تخفف الضغط عن ال database server
و بس والله خلصت سواليفي ?
اذا عندك اي ملاحظات او تشوف اني اخطأت في شي او افكار و ودك تشاركها يا ليت تتحفنا في الردود ❤️?
اذا عندك اي ملاحظات او تشوف اني اخطأت في شي او افكار و ودك تشاركها يا ليت تتحفنا في الردود ❤️?
جاري تحميل الاقتراحات...