تدفق بيانات IoT إلى Autonomous Database باستخدام وظائف بدون خادم
يلزم تطوير أحمال العمل التي تستفيد من أجهزة Internet of Things (IoT) بشكل فعال في الوقت الفعلي. عند نشر المزيد من الأجهزة والمستشعرات، يلزم زيادة حجم وتنوع البيانات المتدفقة. استخدم الوظائف التي لا تحتاج إلى خوادم وقاعدة بيانات مستقلة في Oracle Cloud لأتمتة معالجة بيانات IoT المتدفقة وتوسيع نطاقها.
البنية
في هذه البنية، تتدفق البيانات من أجهزة IoT من خلال جيت واي API إلى وظائف بدون خادم، والتي تستخدم خدمة التدفق لتحميل البيانات إلى قاعدة بيانات مستقلة في Oracle Cloud. يستطيع المستخدمون خارج السحابة الوصول إلى البيانات من خلال خادم ويب يستند إلى Flask يعمل على طبعة Oracle Cloud Infrastructure Compute.
يوضح الشكل التالي هذه البنية.
oci-arch-iot-streaming-oracle.zip
تشتمل البنية على المكونات التالية:
- Region (المنطقة)
منطقة Oracle Cloud Infrastructure هي منطقة جغرافية محلية تحتوي على مركز بيانات واحد أو أكثر، تسمى نطاقات الإتاحة. والمناطق مستقلة عن المناطق الأخرى، ويمكن لمسافات شاسعة أن تفصل بينها (عبر البلدان أو حتى القارات).
- شبكة السحابة الافتراضية (VCN) والشبكات الفرعية
VCN شبكة قابلة للتخصيص ومحددة برمجيًا تقوم بإعدادها في منطقة Oracle Cloud Infrastructure. مثل شبكات مراكز البيانات التقليدية، توفر لك شبكات VCN التحكم الكامل في بيئة الشبكة. يمكن أن يحتوي VCN على كتل CIDR متعددة غير متداخلة يمكنك تغييرها بعد تكوين VCN. يمكنك تقسيم VCN إلى شبكات فرعية، يمكن تحديد نطاقها إلى منطقة أو إلى نطاق إتاحة. تتكون كل شبكة فرعية من نطاق متجاور من العناوين لا يتداخل مع الشبكات الفرعية الأخرى في VCN. يمكنك تغيير حجم الشبكة الفرعية بعد التكوين. يمكن أن تكون الشبكة الفرعية عامة أو خاصة.
في هذه البنية، يتم إرفاق قاعدة البيانات المستقلة ووظيفة إعداد قاعدة البيانات بشبكة فرعية خاصة. طبعة الحوسبة التي تستضيف خادم الويب والوظائف التي تعالج التدفقات يتم توزيعها في شبكة فرعية عامة.
- مجموعات أمن الشبكات
تعمل وحدات NSG كحواجز حماية افتراضية لموارد السحابة الخاصة بك. باستخدام نموذج أمان الثقة الصفرية في Oracle Cloud Infrastructure، يتم رفض كل حركة المرور، ويمكنك التحكم في حركة مرور الشبكة داخل VCN. تتكون مجموعة NSG من مجموعة من قواعد تأمين ingress وegress التي لا تنطبق إلا على مجموعة محددة من وحدات VNIC في VCN واحدة.
يتم التحكم في الوصول إلى قاعدة البيانات وخادم الويب في هذه البنية من خلال مجموعات بيانات وطنية منفصلة.
- بوابة API
يتيح لك Oracle API Gateway نشر واجهات برمجة التطبيقات مع نقاط النهاية الخاصة التي يمكن الوصول إليها من داخل شبكتك، والتي يمكن عرضها على الإنترنت العام إذا لزم الأمر. تدعم نقاط النهاية التحقق من واجهة برمجة التطبيقات وتحويل الطلب والاستجابة وCORS والتصديق والاعتماد والحد من الطلب.
- تدفق
يوفر Oracle Cloud Infrastructure Streaming حل تخزين مُدار بالكامل وقابل للتوسيع ودائم لاستيعاب تدفقات البيانات المستمرة والكبيرة الحجم التي يمكنك استهلاكها ومعالجتها في الوقت الفعلي. يمكنك استخدام Streaming لاستيعاب بيانات كبيرة الحجم، مثل سجلات التطبيق، والقياس عن بُعد التشغيلي، وبيانات منطقة النقر على الويب؛ أو لحالات الاستخدام الأخرى التي يتم فيها إنتاج البيانات ومعالجتها باستمرار وتسلسل في نموذج إرسال سكريبت النشر.
- الوظائف
يعد Oracle Functions نظامًا أساسيًا مدارًا بالكامل ومتعدد العملاء وقابلًا للتوسيع بشكل كبير، عند الطلب، وهو نظام أساسي لوظائف كخدمة (FaaS). ويتم تشغيله بواسطة محرك المصدر المفتوح لمشروع Fn. تمكنك الدوال من نشر التعليمة البرمجية أو استدعاؤها مباشرةً أو تشغيلها استجابة للأحداث. يستخدم Oracle Functions حاويات Docker المضيفة في Oracle Cloud Infrastructure Registry.
- قاعدة بيانات مستقلة
تستخدم هذه البنية قاعدة بيانات مستقلة (Oracle Autonomous Data Warehouse أو Oracle Autonomous Transaction Processing) بنقطة نهاية خاصة.
Oracle Autonomous Data Warehouse هي خدمة قاعدة بيانات ذاتية التوجيه والتأمين والإصلاح يتم تحسينها لأحمال عمل تخزين البيانات. لست بحاجة إلى تكوين أي جهاز أو إدارته، أو تثبيت أي برنامج. يعالج Oracle Cloud Infrastructure تكوين قاعدة البيانات، بالإضافة إلى النسخ الاحتياطي والتصحيح والترقية وتوسيع قاعدة البيانات.
Oracle Autonomous Transaction Processing هي خدمة قاعدة بيانات ذاتية التوجيه والتأمين والإصلاح يتم تحسينها لأحمال عمل معالجة المعاملات. لست بحاجة إلى تكوين أي جهاز أو إدارته، أو تثبيت أي برنامج. يعالج Oracle Cloud Infrastructure تكوين قاعدة البيانات، بالإضافة إلى النسخ الاحتياطي والتصحيح والترقية وتوسيع قاعدة البيانات.
- خادم الويب
في هذه البنية، يتم توزيع نقطة انتهاء عمل Flask المصغرة على طبعة الحوسبة. يمكن للتطبيق المستند إلى Flask عرض البيانات في قاعدة البيانات المستقلة كمحتوى ويب ديناميكي.
التوصيات
استخدم التوصيات التالية كنقطة بداية. قد تختلف متطلباتك.
- حجم VCN
عند تكوين VCN، حدد عدد كتل CIDR المطلوبة وحجم كل قطعة استنادًا إلى عدد الموارد التي تخطط لإرفاقها بالشبكات الفرعية في VCN. استخدم كتل CIDR الموجودة داخل مساحة عنوان IP الخاصة القياسية.
حدد كتل CIDR التي لا تتداخل مع أي شبكة أخرى (في Oracle Cloud Infrastructure أو مركز البيانات المحلي أو موفر سحابة آخر) تنوي إعداد اتصالات خاصة بها.
بعد تكوين VCN، يمكنك تغيير مجموعات CIDR الخاصة بها وإضافتها وإزالتها.
- حوسبة الأشكال
في هذه البنية، يتم استخدام صورة Oracle Linux 7.8 وشكل VM.Standard2.1 لخادم الويب المستند إلى Flash. اختر شكلًا ملائمًا لاحتياجات موارد التطبيق.
- سمات جيت واي API
تدعم نقاط انتهاء جيت واي API مراجعة API وتحويل الطلب والاستجابة وCORS والمصادقة والاعتماد والحد من الطلب. اختر الميزات التي تناسب أعمالك واحتياجات تكنولوجيا المعلومات.
- تقسيم الجدول
توفر لك خدمة التدفق سجل رسائل مقسم وملحق فقط: تدفق. المقطع هو قسم من تدفق. تتيح لك المقاطع توزيع تدفق عن طريق تجزئة الرسائل عبر نقاط توصيل متعددة. يمكنك وضع كل مقطع على جهاز منفصل لتمكين مستهلكين متعددين من القراءة من تدفق متوازي. بالنسبة لأعباء العمل الكبيرة والكثيفة الحوسبة، فكر في زيادة عدد المقاطع.
- إصدار قاعدة البيانات الذاتية
استخدم أحدث إصدار متاح لقاعدة البيانات المستقلة.
الاعتبارات
عند تنفيذ هذه البنية، يجب مراعاة متطلباتك للمعلمات التالية:
- عرض الطلب
بعد تكوين جيت واي API ونشر واجهة برمجة تطبيقات واحدة أو أكثر، قد ترغب في الحد من المعدل الذي يمكن به لعملاء الواجهة الأمامية إرسال الطلبات إلى الخدمات الخلفية. حدد حد معدل الطلب استنادًا إلى متطلباتك للحفاظ على درجة عالية من التوفر والاستخدام العادل من خلال حماية موارد الخلفية من أن تغلب عليها طلبات كثيرة للغاية. قد تحتاج أيضًا إلى منع هجمات رفض الخدمة (DoS) أو التحكم في استهلاك الموارد وتقييده. في نهاية المطاف، يمكنك تطبيق حد تعرفة بشكل عام على كل المسارات الموجودة في مواصفات توزيع API.
- حدود الخدمة
عند تصميم البنية، ضع في اعتبارك حدود الخدمة لخدمات البث والوظائف. راجع وثائق حدود الخدمة الواردة في قسم استكشاف المزيد.
- قابلية التوسع
- قاعدة البيانات
يمكنك قياس عدد نواة وحدة المعالجة المركزية لقاعدة البيانات يدويًا لأعلى أو لأسفل في أي وقت. تتيح ميزة التوسيع التلقائي لقواعد البيانات الذاتية لقاعدة البيانات إمكانية استخدام ما يصل إلى ثلاثة أضعاف العدد الأساسي الحالي من نواة CPU في أي وقت. ومع تزايد الطلب، يؤدي التوسيع الآلي تلقائيا إلى زيادة عدد النواة المستخدمة. تسمح لك قواعد البيانات الذاتية بتوسيع سعة التخزين في أي وقت دون التأثير على التوفر أو الأداء.
- التطبيق
يمكنك توسيع تطبيق Flask باستخدام مجمع الطبعات وميزات التوسيع التلقائي.
تمكنك مجمعات الطبعات من تزويد طبعات الحوسبة المتعددة وتكوينها استنادًا إلى نفس التكوين داخل نفس المنطقة.
استخدم الضبط التلقائي لتعديل عدد طبعات الحوسبة تلقائيًا في مجمع طبعات استنادًا إلى مقاييس الأداء، مثل استخدام CPU. يساعدك التوسيع الآلي على توفير أداء متسق للمستخدمين أثناء فترات الطلب المرتفع وتقليل تكاليفك عندما يكون الطلب منخفضًا.
- الوظائف
يقوم Oracle Functions بتكوين حاويات الوظائف وإزالتها تلقائيًا استنادًا إلى تحميل الطلب. يتم الدفع فقط عند استدعاء الوظائف والمدة التي يتم تشغيلها.
- قاعدة البيانات
- إتاحة التطبيق
توفر مجالات الخطأ أفضل مرونة في نطاق التوفر. إذا كنت بحاجة إلى إتاحة أعلى، فكر في استخدام نطاقات إتاحة متعددة أو مناطق متعددة حيثما كان ذلك ممكنًا.
- النسخ الاحتياطية
- قاعدة البيانات
يقوم Oracle Cloud Infrastructure تلقائيًا بنسخ قواعد البيانات الذاتية احتياطيًا والاحتفاظ بالنسخ الاحتياطية لمدة 60 يومًا. يمكنك استعادة قاعدة البيانات واستعادتها إلى أي نقطة زمنية أثناء فترة الاحتفاظ. يمكنك أيضًا تكوين نسخ احتياطية يدوية لتكملة النسخ الاحتياطية الآلية. يتم تخزين النسخ الاحتياطية اليدوية في رزمة Oracle Cloud Infrastructure Object Storage التي تقوم بتكوينها، ويتم الاحتفاظ بها لمدة 60 يومًا.
- التطبيق
تتيح لك خدمة Oracle Cloud Infrastructure Block Volumes إمكانية تكوين نسخ احتياطية للبيانات في الوقت المحدد في وحدة تخزين الكتل. يمكنك استعادة هذه النسخ الاحتياطية إلى وحدات تخزين جديدة في أي وقت.
يمكنك أيضًا استخدام الخدمة لعمل نسخة احتياطية متسقة مع وقت التوقف لوحدة تخزين التمهيد بدون انقطاع التطبيق أو وقت التوقف. تحتوي وحدات تخزين التمهيد والكتل على نفس إمكانات النسخ الاحتياطي.
- قاعدة البيانات
- الأمان
- التحكم في الوصول
استخدم الأنظمة لتقييد من يمكنه الوصول إلى مواردك في السحابة والإجراءات التي يمكنه تنفيذها.
- أمان الشبكة
توفر خدمة الشبكات ميزتي جدار الحماية الظاهريتين اللتين تستخدمان قواعد السرية للتحكم في حركة المرور على مستوى الحزمة: قوائم الأمان ومجموعات تأمين الشبكة (NSG). تتكون مجموعة NSG من مجموعة من قواعد السرية التي تنطبق فقط على مجموعة من وحدات VNIC من اختيارك في VCN واحد. على سبيل المثال، يمكنك اختيار كل طبعات الحوسبة التي تعمل كخوادم ويب في طبقة الويب لتطبيق متعدد الطبقات في VCN.
تعمل قواعد سرية NSG بنفس وظيفة قواعد قائمة السرية. ومع ذلك، بالنسبة لمصدر أو وجهة قاعدة سرية NSG، يمكنك تحديد NSG بدلاً من قطعة CIDR. لذلك، يمكنك كتابة قواعد التأمين بسهولة للتحكم في حركة المرور بين مجموعتي بيانات غير مخططتين في نفس VCN أو حركة المرور داخل مجموعة بيانات غير مخططة واحدة. عند تكوين نظام قاعدة بيانات، يمكنك تحديد مجموعة واحدة أو أكثر من مجموعات البيانات غير الكافية. يمكنك أيضًا تحديث نظام قاعدة بيانات موجود لاستخدام مجموعة واحدة أو أكثر من مجموعات البيانات غير الكافية.
- التحكم في الوصول
توزيع
تتوفر تعليمات Terraform البرمجية لهذا الهيكل المرجعي في GitHub. يمكنك سحب التعليمة البرمجية إلى Oracle Cloud Infrastructure Resource Manager بنقرة واحدة وتكوين المكدس وتوزيعه. بدلاً من ذلك، قم بتنزيل التعليمة البرمجية من GitHub إلى الكمبيوتر، وتخصيص التعليمة البرمجية، وتوزيع البنية باستخدام Terraform CLI.
- التوزيع باستخدام Oracle Cloud Infrastructure Resource Manager:
- انقر
إذا لم تكن قد قمت بتسجيل الدخول بالفعل، أدخل بيانات صلاحية العميل والمستأجر.
- مراجعة البنود والشروط وقبولها.
- حدد المنطقة التي تريد توزيع المكدس بها.
- اتبع الموجهات والتعليمات على الشاشة لتكوين المكدس.
- بعد تكوين المكدس، انقر على إجراءات Terraform، وحدد خطة.
- انتظر حتى إتمام الوظيفة، وراجع الخطة.
لإجراء أية تغييرات، ارجع إلى صفحة تفاصيل المكدس وانقر على تحرير المكدس وقم بإجراء التغييرات المطلوبة. ثم قم بتشغيل إجراء الخطة مرة أخرى.
- إذا لم تكن هناك حاجة إلى أية تغييرات أخرى، ارجع إلى صفحة تفاصيل المكدس وانقر على إجراءات Terraform وحدد تطبيق.
- انقر
- النشر باستخدام Terraform CLI:
- انتقل إلى GitHub.
- قم بتنزيل التعليمة البرمجية أو استنساخها إلى الكمبيوتر المحلي.
- اتبع الإرشادات الموجودة في README.
سجل التغيير
يسرد هذا السجل التغييرات الهامة فقط:
أغسطس 2 2022 | تمت إضافة موارد إضافية إلى قسم "استكشاف المزيد". |
نوفمبر 19 2021 | تمت إضافة خيار تنزيل الإصدارات القابلة للتحرير (.SVG و.DRAWIO) من مخطط البنية. |
فبراير 4 2021 | تمت إضافة معلومات حول وظائف الضبط في قسم الاعتبارات. |
نوفمبر 24 2020 |
|