سؤال

رأيت أن هناك سؤالًا مشابهًا تم طرحه على بعد عدة أشهر ، لكنه لم يعالج وضعي جيدًا. من هنا تبدأ...

أنا بصدد البناء من نقطة الصفر ، تطبيق .NET على الويب الذي لديه القدرة على أن يصبح موقعًا عالي الحجم (عدة مئات من مرات مشاهدة الصفحة شهريًا) وأنا أفكر بشدة في استخدام Microsoft Azure لاستضافته . لم أقم ببناء أي شيء بعد وما زلت أبحث عن خياراتي المختلفة.

التطبيق نفسه ، في جوهره ، هو تطبيق CRUD قياسي يعمل على عدد من أنواع الكيانات المختلفة (مثل المستخدم ، الطلب ، العنصر ، إلخ). من المحتمل أن تكون هناك بعض عمليات الخلفية التي قد تعمل وبعض قوائم الانتظار للبيانات (لتحديثات غير واقعية-مثل الحصول على شارة للغاية ، على سبيل المثال) ، ولكن معظم التفاعلات مع المستخدم ستكون نوع الإجراءات النموذجية الخاصة بك.

فيما يتعلق بـ Azure ، لقد قرأت عددًا من المقالات حول استخدام Microsoft Azure Storage لتخزين بيانات المعاملات وأنا أفكر بشدة في القيام بذلك بدلاً من استخدام Azure SQL DB. ومع ذلك ، لم أر أو قرأت عددًا من قصص النجاح للأشخاص الحقيقيين و/أو الشركات الحقيقية التي تقوم بذلك. لذلك اعتقدت أنني سأتواصل مع المجتمع So لمعرفة ما إذا كان لدى أي شخص أي خبرة في استخدام Microsoft Azure Storage ، ونوع الحظ الذي لديك ، وأي مسكات يجب أن أبحث عنها ، وأي أفضل ممارسات لديك تعال إلى الأعلى مع.

لقد قرأت من خلال الكثير من قسم Microsoft Azure MSDN ومستند Programming Microsoft Azure Table API من Microsoft. أنا أبحث عن نصيحة عملية ، ودروس مستفادة ، وأفضل الممارسات ، وما إلى ذلك ، شكرًا مقدمًا!

هل كانت مفيدة؟

المحلول

يشبه Windows Azure Storage مثل أي تخزين NOSQL. إنه يعمل في سيناريوهات عالية النطاق لنا (ضخ ملايين السجلات لكل مستخدم). ومع ذلك ، من الصعب توسيع نطاق نهج CRUD الكلاسيكي أو التكيف مع هذا.

أوصي أن أبدأ في البحث على طول نمط CQRS من البنية. فيما يلي بعض المراجع التي قد تجعلك تبدأ:

نصائح أخرى

يعتمد على نوع البيانات التي تتحدث عنها - عمومًا هناك ميل إلى المبالغة في تقدير متطلبات بيانات المعاملات. يمكن أن تكون الكثير من البيانات تتوافق حقًا مع Azure SQL 1 جيجابايت (نحن مزود SaaS وبيانات المعاملات التي يبلغ عددها حوالي 20 عميلًا يمكن أن تتوافق مع هذا المساحة القليلة). أيضًا ، لسبب غريب ، رأيت أن استهلاك مساحة SQL Azure يبدو أقل إلى حد ما من حجم قاعدة البيانات التي أراها محلية (قد يكون لها علاقة بكيفية التعامل مع السجلات ، وليس متأكدًا). والآن 50 جيجابايت هو الحد الأقصى ، وهو بصراحة كبيرة.

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

حتى إجابة قصيرة - احتفظ ببيانات المعاملات في SQL Azure والبيانات غير العلمية في Windows Azure. سيبقي العمل مع SQL Azure أيضًا أكثر إنتاجية ، لأنه مألوف جدًا من حيث البرمجة. تعامل مع Windows Azure على غرار كيفية التعامل مع تخزين الملفات المحلية Windows مع بعض الفوائد المضافة (هياكل الجدول الأساسية المدعومة).

شيء آخر يجب مراعاته هو عدد المعاملات التي سترسلها/تلقيها من المتجر. الجزء الجميل حول SQL Azure هو أنه عبارة عن تكلفة / شهر ثابت ، وإذا كنت تقوم بالاستعلامات داخل مركز البيانات نفسه (أي من دور ويب Windows Azure الموجود في نفس مركز البيانات مثل قاعدة بيانات SQL Azure) ، فهناك هناك لا توجد رسوم إضافية.

على الرغم من أن تكلفة المعاملات إلى متاجر Windows Azure منخفضة جدًا ، إلا أنها شيء لديه إمكانية الإضافة إذا قمت بما يكفي منها.

يجب عليك أيضًا التحقق من نمط استخدام البيانات الخاص بك قبل اتخاذ قرار استخدام Azure Storage أو SQL Storage. نظرًا لأن Azure Storage يوفر حلول NOSQL ، فهي أكثر توجهاً نحو متطلبات قاعدة غير الإبلاغ. هنا لا يعني التقارير تقارير ولكنها تعني أن إمكانيات الاستعلام عن تخزين Azure محدودة غير التحسين لمختلف سيناريوهات الاستعلام. مع بنية CQRS ، يتم فصل عمليات crud والإبلاغ عن ذلك ، وبالتالي يمكن القيام بمزيج من كل من التخزين Azure و Azure SQL.

مكان آخر للعثور على المعلومات هو الخروج من خيارات Windows Azure والنظر إلى AWS. تم فحص خيارات S3 و SimpledB على مدار فترة زمنية أطول ولديها العديد من قصص النجاح الإضافية على الويب. ومع ذلك ، تتشابه S3 و SimpledB في الوظائف مع طاولة تخزين Windows Azure وتخزين Blob. إذا كنت تفكر في بيانات كبيرة حقًا ، وهي هذه الهياكل ، تحقق بالتأكيد من خيارات AWS. إذا فقط للحصول على نقطة مرجعية على الحلول الحالية المبنية حول البيانات الكبيرة.

أما بالنسبة لـ SQL Azure ، فهو رائع بالنسبة للعديد من المعاملات ، والحفاظ على تكاليف المعاملات منخفضة ، والحفاظ على العلاقات والنزاهة العامة على أساس البيانات العلائقية. ومع ذلك ، إذا كنت ستحصل على كميات هائلة من البيانات ، فما عليك سوى المضي قدمًا والهدف من هياكل البيانات الكبيرة ، مثل Table Windows Azure أو Amazon SimpledB.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top