نشر تطبيق فيديو محفوظ في حاويات باستخدام GraphQL وNoSQL

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

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

تميلك هذه البنية من خلال تطبيق تدفق فيديو حسب الطلب يتألف من العديد من الخدمات الصغيرة باستخدام خدمات Oracle Cloud Infrastructure المختلفة. وفي هذه البنية، ينصب التركيز على خدمة صغيرة لتتبع النشاط. يجمع الخلفية لتطبيق التدفق البيانات لإنشاء تقارير مثل العروض الأكثر شيوعًا ومتوسط وقت المراقبة لكل عرض.



البنية

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

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

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

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

يتمتع مطورو التطبيقات الحديثة بالعديد من الخيارات عند مواجهتهم لتحديد وقت وكيفية الاحتفاظ بجزء من البيانات. في السنوات الأخيرة، أصبحت قواعد بيانات NoSQL شائعة الاستخدام بشكل متزايد، والآن يُنظر إليها باعتبارها واحدة من الأدوات اللازمة التي يجب أن يكون لدى كل مطور تطبيقات تحت تصرفه. في حين أن قواعد البيانات العلائقية "المجربة والحقيقية" رائعة في حل مشكلات التطبيقات التقليدية مثل تطبيع البيانات والاتساق الصارم والاستعلامات المعقدة بشكل تعسفي للوصول إلى تلك البيانات، فإن قواعد بيانات NoSQL تتبع نهجًا مختلفًا.

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

بصفتك مطورًا، يمكنك الاتصال بـ Oracle NoSQL Database Cloud Service والعمل باستخدام جداول NoSQL باستخدام مجموعات تطوير البرامج (SDK) NoSQL المتاحة بالعديد من اللغات. Oracle Cloud Infrastructure Container Instances هي خدمة مدارة بالكامل ومناسبة لأحمال العمل المحفوظة في حاويات والتي لا تتطلب نظامًا أساسيًا لتنظيم الحاويات مثل Kubernetes لنشر تطبيق GraphQL. استخدم Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) عندما يريد فريق التطوير لديك إنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها بشكل موثوق.

يتيح لك Oracle Cloud Infrastructure API Gateway نشر واجهات برمجة التطبيقات بنقاط نهاية خاصة يمكن الوصول إليها من داخل شبكتك، والتي يمكنك عرضها بعناوين IP العامة إذا كنت تريد قبولها لحركة مرور الإنترنت. تدعم نقاط النهاية التحقق من واجهة برمجة التطبيقات وتحويل الطلب والاستجابة، وCORS، والمصادقة/التصريح، وتقييد الطلب.

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

فيما يلي بعض مزايا استخدام Oracle NoSQL Database Cloud Service:

  • نمذجة البيانات: يدعم Oracle NoSQL Database Cloud Service إنشاء النماذج القائمة على المخطط والتي لا تحتاج إلى مخطط (JSON). يوفر طريقة بديهية لتطوير التطبيقات المستندة إلى GraphQL. تم تصميم مخطط قاعدة البيانات GraphQL باستخدام هياكل البيانات المتداخلة، مع مطابقة ما سيستخدمه المطورون عند تنفيذ NoSQL Data Modeling. اختيار أصلي.
  • دورة حياة التطوير الأسرع: يكتب المطورون تطبيقاتهم. تقوم Oracle بتنفيذ إدارة قاعدة البيانات وإدارة التخزين والتوافر العالي وقابلية التوسع لمساعدة المطورين على التركيز على تقديم تطبيقات عالية الأداء. يقوم المطورون بنشر الجداول أو تدرجات الجداول وإدارتها، وليس المجموعات أو قواعد البيانات لخدماتهم الصغيرة GraphQL.
  • إدارة الوصول إلى الهوية: يستخدم Oracle NoSQL Database Cloud Service Oracle Cloud Infrastructure Identity and Access Management لتوفير وصول آمن إلى Oracle Cloud. تمكنك Oracle Cloud Infrastructure Identity and Access Management من تكوين مجموعات ديناميكية ومنح إذنًا لفحص جداول Oracle NoSQL Database Cloud Service أو قراءتها أو استخدامها أو إدارتها.
  • سلامة البيانات في التكرار: تخزن Oracle NoSQL Database Cloud Service البيانات عبر نطاقات التوافر المتعددة (ADs)، أو نطاقات الخطأ (FDs) في مناطق AD واحدة. وإذا أصبح AD أو FD غير متاح، فإن بيانات المستخدم لا تزال قابلة للوصول من AD أو FD آخر. الطلبات إلى نقطة انتهاء منطقة ليست خاصة بـ AD/FD، لذلك يكون عدم توفر AD/FD شفافًا.
  • أداء عالٍ وإمكانية التنبؤ: تستفيد Oracle NoSQL Database Cloud Service من أحدث تقنيات المكونات في Oracle Cloud Infrastructure من خلال توفير أداء عالٍ على نطاق واسع. يعرف المطورون أن تطبيقاتهم تعيد البيانات مع زمن انتقال يمكن التنبؤ به، حتى مع زيادة متطلبات الإنتاجية والتخزين.
  • مدارة بالكامل من دون إدارة: لا يحتاج المطورون إلى إدارة خوادم البيانات أو البنية الأساسية والأمان. تحافظ Oracle على الأجهزة والبرامج التي تتيح للمطورين التركيز على إنشاء التطبيقات.
  • إنتاجية حسب الطلب وتوفير التخزين: يتوسع نطاق Oracle NoSQL Database Cloud Service لتلبية متطلبات أداء إنتاجية التطبيقات بزمن كمون منخفض ويمكن التنبؤ به. مع زيادة أحمال العمل مع تقلبات دورية في الأعمال، يمكن للتطبيقات زيادة الإنتاجية المقدمة للحفاظ على تجربة مستخدم متسقة. مع انخفاض أحمال العمل، يمكن للتطبيقات نفسها تقليل الإنتاجية التي توفرها، مما يؤدي إلى تقليل نفقات التشغيل. وبفضل السعة حسب الطلب، لن تحتاج إلى توفير قدرات القراءة أو الكتابة لكل جدول. أنت تدفع فقط مقابل وحدات القراءة والكتابة التي تم استهلاكها بالفعل.

يوضح الشكل التالي هذه البنية المرجعية.



حاويات-فيديو-app-graphql-nosql-architecture.zip

تتضمن البنية المكونات التالية:

  • مجموعة العملاء

    يُعد الإيجار قسمًا آمنًا ومعزولاً تقوم Oracle بإعداده داخل Oracle Cloud عند تسجيل الاشتراك في Oracle Cloud Infrastructure. يمكنك إنشاء مواردك وتنظيمها وإدارتها في Oracle Cloud ضمن مستأجرك.

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

  • Region (المنطقة)

    منطقة Oracle Cloud Infrastructure هي منطقة جغرافية محلية تحتوي على مركز بيانات واحد أو أكثر، تسمى نطاقات التوفر. المناطق مستقلة عن المناطق الأخرى، والمسافات الشاسعة يمكن أن تفصل بينها (عبر البلدان أو حتى القارات).

  • حاوية

    الحاويات عبارة عن أقسام منطقية عبر المناطق داخل عقد إيجار Oracle Cloud Infrastructure. استخدم الحاويات لتنظيم مواردك في Oracle Cloud، والتحكم في الوصول إلى الموارد، وتعيين حصص الاستخدام. للتحكم في الوصول إلى الموارد في أحد الأقسام، عليك تعريف الأنظمة التي تحدد من يمكنه الوصول إلى الموارد والإجراءات التي يمكنه تنفيذها.

  • مجال التوفر

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

  • مجال الخطأ

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

  • الشبكات الفرعية وشبكة السحابة الافتراضية (VCN)

    شبكة السحابة الافتراضية (VCN) هي شبكة قابلة للتخصيص ومحددة بالبرامج قمت بإعدادها في منطقة Oracle Cloud Infrastructure. توفر لك شبكات VCN، مثلها مثل شبكات مراكز البيانات التقليدية، تحكمًا كاملاً في بيئة شبكتك. يمكن أن يحتوي VCN على العديد من كتل CIDR غير المتداخلة التي يمكنك تغييرها بعد إنشاء VCN. يمكنك تقسيم شبكة سحابية افتراضية (VCN) إلى شبكات فرعية، يمكن تحديد مجال لها إلى منطقة أو إلى نطاق إتاحة. وتتكون كل شبكة فرعية من نطاق متجاور من العناوين التي لا تتداخل مع الشبكات الفرعية الأخرى في شبكة السحابة الافتراضية (VCN). يمكنك تغيير حجم الشبكة الفرعية بعد إنشائها. يمكن أن تكون الشبكة الفرعية عامة أو خاصة.

  • قائمة السرية

    بالنسبة لكل شبكة فرعية، يمكنك إنشاء قواعد أمان تحدد المصدر والوجهة ونوع حركة المرور التي يجب السماح بها داخل الشبكة الفرعية وخارجها.

  • بوابة الخدمة

    توفر بوابة الخدمة إمكانية الوصول من شبكة سحابة افتراضية (VCN) إلى الخدمات الأخرى، مثل Oracle NoSQL Database Cloud Service. تنتقل حركة المرور من VCN إلى خدمة Oracle عبر نسيج شبكة Oracle ولا تنتقل أبدًا عبر الإنترنت.

  • بوابة الإنترنت

    تتيح بوابة الإنترنت حركة المرور بين الشبكات الفرعية العامة في شبكة سحابية افتراضية (VCN) والإنترنت العام.

  • بوابة API

    يتيح لك Oracle API Gateway نشر واجهات برمجة التطبيقات بنقاط نهاية خاصة يمكن الوصول إليها من داخل شبكتك، والتي يمكنك عرضها على الإنترنت العام إذا لزم الأمر. تدعم نقاط النهاية التحقق من واجهة برمجة التطبيقات وتحويل الطلب والاستجابة، وCORS، والمصادقة والاعتماد، وتقييد الطلب.

  • إدارة الهوية والوصول (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) هو مستوى التحكم في الوصول لـ Oracle Cloud Infrastructure (OCI) وOracle Cloud Applications. تتيح واجهة برمجة تطبيقات IAM وواجهة المستخدم إمكانية إدارة نطاقات الهوية والموارد داخل نطاق الهوية. يمثل كل نطاق هوية OCI IAM حلاً مستقلاً لإدارة الهوية والوصول أو مجموعة مستخدمين مختلفة.

  • الأنظمة

    تحدد سياسة Oracle Cloud Infrastructure Identity and Access Management من يمكنه الوصول إلى الموارد وكيفية الوصول إليها. يتم منح الوصول على مستوى المجموعة والإقليم، مما يعني أنه يمكنك كتابة سياسة تمنح المجموعة نوعًا محددًا من الوصول داخل قسم معين، أو إلى الإيجار.

  • NoSQL قاعدة البيانات

    تسهل Oracle NoSQL Database Cloud Service على المطورين إنشاء التطبيقات باستخدام نماذج قاعدة البيانات المستندة إلى المستندات والعمودية والقيمة الأساسية، مما يوفر أوقات استجابة يمكن التنبؤ بها لمدة ملي ثانية مع استنساخ البيانات للتوافر العالي. توفر الخدمة معاملات ACID وتوسيع بدون خادم وأمانًا شاملاً وتسعيرًا منخفضًا للدفع مقابل الاستخدام لكل من أوضاع السعة المتوفرة حسب الطلب، بما في ذلك توافق بنسبة 100% مع Oracle NoSQL Database المحلي.

  • طبعات الحاوية

    Oracle Cloud Infrastructure Container Instances هي خدمة حوسبة بدون خادم تمكنك من تشغيل الحاويات على الفور دون إدارة أي خوادم.

  • محرك حاوية Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetes هي خدمة مدارة بالكامل وقابلة للتوسع وعالية التوافر يمكنك استخدامها لنشر تطبيقاتك المحفوظة في حاويات على السحابة. يمكنك تحديد موارد الحوسبة التي تتطلبها تطبيقاتك، ويقوم Container Engine for Kubernetes بتوفيرها على Oracle Cloud Infrastructure في عقد إيجار موجود. يستخدم محرك حاوية Kubernetes نظام Kubernetes لأتمتة نشر التطبيقات المحفوظة في حاويات وتوسيعها وإدارتها عبر مجموعات المضيفين.

التوصيات

استخدم التوصيات التالية كنقطة بداية. قد تختلف متطلباتك عن البنية الموضحة هنا.
  • بوابة API

    يمكن استخدام عبّارة API لتوفير مستوى أولي من عناصر التحكم في الفحص والاستخدام مثل:

    • مصادقة الخدمة والاعتماد
    • عناصر التحكم في الخدمة مثل تحديد السعر
    • تسجيل تحليلات استخدام الخدمة

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

الاعتبارات

ضع في اعتبارك ما يلي عند توزيع هذه البنية المرجعية.

  • الأمان

    يجب عليك معالجة التأمين على مستوى التطبيق في بوابة واجهة برمجة التطبيقات. يمكنك معالجة أمان محدد دقيق GraphQL (على سبيل المثال، الوصول على مستوى السمة) باستخدام توجيهات GraphQL مثل @auth.

توزيع

لنشر هذه البنية، اتبع التعليمات الخاصة بنشر تطبيق تتبع النشاط في هذا التدريب المباشر:

إشعارات الاستلام

المؤلفون:

  • داريو فيغا
  • مايكل بري