يشتري حساب Azure Microsoft السحابي نيابة عن قاعدة البيانات العالمية الموزعة: كيف يمكنني استخدام Cosmos DB لإخراج التشغيل والصيانة من "حفرة النار"
ربما يكون الأصدقاء الذين عملوا في الهندسة المعمارية السحابية الأصلية والأعمال التجارية العالمية قد مروا بلحظات قاتمة تجعل فروة الرأس مخدرة:
في الساعة الثالثة صباحًا بتوقيت بكين ، اهتز الهاتف المحمول بشكل محموم ، وأصدر نظام المراقبة أعلى مستوى من التنبيهات-"ارتفاع تأخر وصول المستخدم الأوروبي" ، "حدثت صراعات خطيرة في مزامنة البيانات عبر الإقليمية" ، "ارتفعت وحدة المعالجة المركزية لقاعدة البيانات الرئيسية إلى 100 ٪ دون استجابة". في هذا الوقت ، تنهض ضد الدوائر المظلمة ، وتتصل بشبكة VPN ، وتبدأ في مواجهة مجموعة من استراتيجيات جدول الفروع المبهرة ، وتأخير مزامنة السيد والعبد ، وفقدان Binlog ، والفهارس التي لا يمكن ضبطها أبدًا.
شراء وإعادة شحن حساب سحابة مايكروسوفت أزور بالنيابة
بصراحة ، عندما تواجه بنية قاعدة البيانات التقليدية أعمال عالمية وعالية التزامن ، فإن تكلفة التشغيل والصيانة هي ببساطة حفرة لا نهاية لها.
منذ فترة ، شربت مع عدد قليل من الأصدقاء القدامى الذين كانوا يعملون في الهندسة المعمارية ، وكان الجميع لا يزالون يتحدثون: "متى يمكن أن تكون هناك قاعدة بيانات يمكنها مزامنة البيانات بشكل عرضي مع كل ركن من أركان العالم ، دون القلق بشأن الانقسام والتوسع والقفل كل يوم ؟ الصراع ؟" في الواقع ، في السنوات الأخيرة ، جرب الجميع حلولًا مختلفة في بيئة الإنتاج ، من مجموعات MySQL/PostgreSQL المبنية ذاتيًا إلى العديد من مجموعات NoSQL الموزعة مفتوحة المصدر ، ووجدوا أخيرًا أنه إذا كنت تريد استخدام "التوزيع العالمي" و "التشغيل والصيانة السريعة".
Azure Cosmos DB
يمكن اعتباره معيارًا لا يمكن تجاوزه.
اليوم ، بغض النظر عن تلك الأوراق البيضاء الرسمية الغامضة والرسومات المعمارية الجافة ، أريد أن أتحدث معك من منظور فني من الدرجة الأولى حول كيفية قيام Cosmos DB بمساعدتنا في تشغيل تجربة NoSQL الموزعة عالميًا.
1. الألم العالمي التقليدي الموزع: لماذا تعمل دائمًا ساعات إضافية في وقت متأخر من الليل ؟
قبل الحديث عن Cosmos DB، دعونا نستعرض أولاً نقاط الضعف في الحلول التقليدية.
شراء وإعادة شحن حساب سحابة مايكروسوفت أزور بالنيابة
لنفترض أن عملك قد ذهب إلى البحر ، وينتشر المستخدمون في أمريكا الشمالية وأوروبا وجنوب شرق آسيا. لكي يتمتع المستخدمون المحليون بتجربة وصول حريري ، يجب عليك نشر عقدة قاعدة البيانات محليًا. في هذه اللحظة، بدأت المتاعب:
تأخير وتصادم مزامنة البيانات (Split-Brain): التأخير المادي للكابلات الضوئية متعددة الجنسيات موجود بشكل موضوعي. إذا قام مستخدم أمريكي ومستخدم أوروبي بتعديل نفس البيانات في الوقت نفسه، فكيف تحل التعارض؟ هل يتم التغطية حسب الطابع الزمني؟ أم أننا سنكتب منطق تعويض معقد للعمليات؟
يمكن أن يكون التوسع مشابهًا لـ "الجراحة الكبرى": اندلعت الأعمال فجأة ولم تعد قادرة على حملها بواسطة آلة واحدة. هل نقوم بتوزيع قواعد البيانات والجداول؟ تغيير الكود ، ونقل البيانات ، وإجراء التحقق من تناسق البيانات ، وأي خطوة تخطو على الحفرة هي حوادث إنتاج.
الثقب الأسود لمراقبة التشغيل والصيانة: إذا كان هناك المزيد من العقد ، فسيتم كسر سطح التشغيل. أي عقدة امتلأت وحدة التخزين الخاصة بها؟ أي عقدة اهتزت الشبكة ؟ يتم استنفاد موظفي التشغيل والصيانة فقط من خلال النظر إلى أسواق المراقبة المختلفة كل يوم.
ما نحتاجه ليس المزيد من معلمات التكوين، بل
النطاق العالمي خارج الصندوق وتجربة "Serverless/Managed" الحقيقية
.
ثانياً: تفكيك Azure Cosmos DB: ما الذي يجعله قادراً على تحقيق "إدارة عمليات فائقة السرعة"؟
"?
غالبًا ما يهز الأشخاص الذين يتعايشون مع Azure Cosmos DB لأول مرة بسبب خصائصه الأساسية. من خلال الجمع بين خبرتنا الفعلية في الهبوط في السنوات القليلة الماضية ، لديها العديد من القتلة في التشغيل والصيانة:
1. "أين نقر الماوس ، أين البيانات" الحقيقي: الحياة العالمية والنسخ بنقرة واحدة
في الهيكل التقليدي ، إذا كنت ترغب في إضافة مركز بيانات خارجي ، فيجب على فريق DBA تخطيط الشبكة ونشر الأمثلة وتكوين روابط النسخ قبل أسابيع قليلة.
وعلى بوابة Azure (Portal) الخاصة بـ Cosmos DB ، أصبحت الأمور عنيفة للغاية وأنيقة:
إذا كنت تفكر في أي بلد/منطقة في غرفة الكمبيوتر ، فانقر بالماوس مباشرة على الخريطة وانقر للحفظ. في غضون بضع دقائق ، تكمل البيانات العالمية تلقائيًا المزامنة متعددة الوظائف.
Multi-Master (Multi-Master): لا يدعم القراءة المتعددة في جميع أنحاء العالم فحسب ، بل يدعم أيضًا الكتابة المتعددة في جميع أنحاء العالم. هذا يعني أن مستخدمي أمريكا الشمالية يكتبون العقدة الأمريكية ، والمستخدمين الأوروبيين يكتبون العقدة الأوروبية ، ويساعدك المستوى الأساسي تلقائيًا على حلها من خلال التحكم في التزامن متعدد الإصدارات (MVCC) واستراتيجيات حل النزاعات.
تحرير التشغيل والصيانة: لست بحاجة إلى كتابة نصوص لمراقبة التأخير بين السيد والعبد ، ولا داعي للقلق بشأن انقطاع العمل بسبب تعليق العقد في منطقة معينة. يأتي مع SLA عالي الاستخدام (مثل ضمان التوافر بنسبة 99.999 ٪) ، وكيفية الاستجابة للكوارث في الأسفل وكيفية تكرار البيانات ، فإن الشركات المصنعة للسحابة شاملة.
2. وداعا لكابوس DBA: الفهرسة التلقائية (Automatic Indexing)
يعرف أي شخص كتب NoSQL أنه على الرغم من أن الهيكل مرن ، إذا تغير استعلام العمل ولم يتم إنشاء الفهرس ، فإن مسح الجدول الكامل سيترك قاعدة البيانات معلقة كل دقيقة.
شراء وإعادة شحن حساب سحابة مايكروسوفت أزور بالنيابة
غالبًا ما يتطلب NoSQL التقليدي DBA لتحليل جمل الاستعلام يدويًا ، وتصميم الفهارس الثانوية والفهارس المركبة بعناية.
قام Cosmos DB بشيء "وحشي" ولكنه صديق للغاية للتطوير والصيانة:
يتم فهرسة جميع خصائص جميع البيانات تلقائيًا بشكل افتراضي.
التطوير رائع: يمكنك حفظ مستند JSON ، مع أي حقول جديدة ، يمكنك استخدامه مباشرة للاستعلام المشروط عن WHERE دون تعديل أي تعريف لقاعدة البيانات.
تشغيل وصيانة سلس: لا حاجة إطلاقًا إلى ضبط فهارس B-Tree. على الرغم من أنه يستهلك قدرًا معينًا من مساحة التخزين في الخلفية للحفاظ على الفهرس ، إلا أنه بالنسبة لموظفي التشغيل والصيانة ، هناك إنذار مفقود بسبب "الفهرس المفقود" ، وهو ما يعني العيش لمدة عشر سنوات أقل.
3-القدرة على التنبؤ بالمللي ثانية: RU/s (وحدة الطلب) التحكم المكرر
في عصر السحابة ، سيكون توازن التكلفة والأداء دائمًا هو KPI الأساسي للعمليات والصيانة. أدخلت Cosmos DB
RU/ثانية (وحدة الطلب، وحدة الاستعلام)
مفهوم.
بغض النظر عما إذا كان استفسارك هو قراءة مفتاح بسيط ، أو إجراء استعلام مشترك لـ SQL معقد ، فهناك عدد RU الذي يمكن أن يستهلكه بالضبط.
يمكنك لكل حاوية (C
حتى إعدادات الإنتاجية الكلية للحاوية أو حتى قاعدة البيانات بأكملها. لا يدعم التعديل اليدوي فحسب ، بل يدعم أيضًا التكبير التلقائي (Autoscale)-يتم ملء RU تلقائيًا خلال فترة ذروة العمل ، ويتم تقليل الحضيض في وقت متأخر من الليل تلقائيًا ، ولن يتم إهدار الفواتير أبدًا.
مع وضع Serverless (Serverless) ، بالنسبة للأعمال الصغيرة أو بيئة الاختبار مع حركة مرور غير منتظمة للغاية ، "ادفع وفقًا للطلب الفعلي ، دون إنفاق أي أموال".
3. دليل تجنب الحفر لبيئة الإنتاج: المفاضلة وراء سرعة التشغيل والصيانة
على الرغم من أن Cosmos DB جعل تجربة التشغيل والصيانة إلى أقصى الحدود ، كمحارب قديم تسلق عدة مرات في الحفرة ، أود أن أذكر الجميع:
لا توجد بنية مثالية، بل يوجد فقط ما يناسب السيناريو المحدد.
لا يعني التشغيل والصيانة فائقي السرعة أن بإمكانك التخلي عن المسؤولية تمامًا.
1. اختيار مستويات الاتساق (Consistency Levels) هو فن بحد ذاته.
أكبر قاعدة فيزيائية في قواعد البيانات الموزعة هي
نظرية CAP
. يوفر Cosmos DB 5 مستويات مختلفة من الاتساق القوي (Strong) إلى التوافق النهائي (Eventual).
إذا كان عملك عبارة عن مدفوعات مالية ، فلا يمكنك تحمل أي وهم ، عليك اختيار الاتساق القوي ، لكن هذا سيؤدي إلى تأخير أعلى وأداء أقل.
إذا كان عملك ديناميكيًا اجتماعيًا ، أو الإعجاب ، أو إحصائيات مشاهدات الصفحة ، فلا تتردد في تحديد اتساق الجلسة أو الاتساق النهائي.
شراء وإعادة شحن حساب سحابة مايكروسوفت أزور بالنيابة
نصيحة التشغيل والصيانة: لا تسعَ بشكل عشوائي وراء "الاتساق القوي". تقسيم الحاويات وفقًا لألواح الأعمال المحددة ، ووضع الأعمال التي لا تتطلب تناسقًا مرتفعًا على مستوى تناسق فضفاض ، يمكن أن يؤدي ذلك إلى زيادة إنتاجية النظام بشكل هندسي.
2. تصميم مفتاح التقسيم يحدد النجاح أو الفشل
في عالم NoSQL، مفتاح التقسيم هو مربط الفرس لديك. إذا لم يتم تحديد مفتاح التقسيم بشكل جيد (على سبيل المثال ، اضغط على "البلد" ، و 90 ٪ من المستخدمين في الصين) ، فسيؤدي ذلك إلى
تقسيم النقاط الساخنة (Hot Spotting)
: تم ملء وحدة المعالجة المركزية و RU لقسم مادي أساسي معين ، بينما كانت الأقسام الأخرى في حالة من الذعر.
اقتراح التشغيل والصيانة: في المرحلة الأولى من التصميم المعماري ، يجب أن يكون اختيار مفتاح القسم مع فريق التطوير. عادةً ما تكون الحقول عالية التردد وعالية التزامن (مثل userId أو شرائح الأرقام ذات القاعدة العالية) خيارًا مثاليًا لضمان تجزئة البيانات بالتساوي على العقد المادية المختلفة في جميع أنحاء العالم.
رابعًا: ختامًا
إذا نظرنا إلى الوراء ، فإن جيلنا من الأشخاص الذين يقومون بالحوسبة السحابية وعمليات النظام والصيانة محظوظون للغاية.
في الماضي ، تم إنفاق معظم طاقتنا على تشغيل الجهاز الأساسي وصلاحه ، وتوسيع القرص ، وكيفية إصلاح هذه "الأعمال القذرة" يدويًا عند تعليق السيد والعبد في وقت واحد. وقاعدة بيانات NoSQL الموزعة عالميًا مثل Azure Cosmos DB ، تكمن قيمتها الأساسية في "تقليل الأبعاد" لتعقيد تشغيل قاعدة البيانات التقليدية.
إنه يوسع العالم ، ويتوسع بمرونة ، ويفهرس تلقائيًا ، ويتوفر بدرجة عالية من الكوارث ، والتي كانت في الأصل بحاجة إلى DBA ضخم
يتم تغليف التكنولوجيا المعقدة التي يمكن للفريق التعامل معها في عدد قليل من الأزرار البسيطة وواجهات برمجة التطبيقات البديهية.
دع قاعدة البيانات تعود إلى البيانات نفسها ، وتحرير التشغيل والصيانة من الفشل الأساسي المرهق للاهتمام بهيكل الأعمال ، وهذا ما يجب أن يكون عليه العصر السحابي الأصلي. في المرة القادمة التي تصادف فيها الشرطة في وقت متأخر من الليل ، ربما يمكنك التفكير في الأمر: هل حان الوقت لنقل تلك الهياكل القديمة إلى بيئة سحابة أصلية ذات مرونة عالمية حقًا ؟
شراء وإعادة شحن حساب سحابة مايكروسوفت أزور بالنيابة

