أفضل الممارسات التي تحكم هياكل التطبيقات.
فتح الكل إغلاق الكل
نظرة عامة
تؤدي لغات البرمجة وأطر العمل التي تتبناها لبناء تطبيقك دورًا محوريًا في نجاح تسليم التطبيق وصيانته على مدار الوقت. إن خيارات اللغة وإطار العمل لها عواقب طويلة الأجل على كيفية توسيع أعمالك وتشغيل تطبيقك وتقديم ميزات عالية الجودة لعملائك. وعادة ما تكون التغييرات في اللغة أو الإطار باهظة التكلفة. يؤدي دعم النظم الإيكولوجية المتوازية للغات وأطر العمل المتعددة إلى زيادة التعقيد وتقليل المرونة.
يؤثر اختيار اللغة والإطار على مجموعة من العوامل، بما في ذلك سرعة التسليم والاستقرار وقوة النظام البيئي الحالي والاستعداد التشغيلي وأداء الإنتاج. استخدم منصات منخفضة التعليمات البرمجية حيثما أمكن بحيث يمكنك التركيز على حل مشاكل عملك بدلاً من مواجهة مضاعفات التطور التقليدي. إذا كانت متطلبات تطبيقك أكثر تعقيدًا، اختر اللغات الناضجة والأطر الخفيفة.
تفاصيل المبدأ
تمكنك الأنظمة الأساسية ذات التعليمات البرمجية المنخفضة من إنشاء تطبيقات المؤسسات واختبارها ونشرها بسرعة أكبر من التعليمات البرمجية اليدوية التقليدية. تعد هذه المنصات مناسبة تمامًا لإنشاء تطبيقات الفرص بالتعاون مع أصحاب المصلحة في الأعمال بالإضافة إلى تطبيقات إعداد تقارير البيانات والتحليل. كما تمكّنك الأنظمة الأساسية منخفضة التعليمات البرمجية من توسيع تطبيقات SaaS وتحديث التطبيقات القديمة. يساعدك هذا النهج على تجنب المضاعفات عندما تريد إضافة إمكانات جديدة، مثل التمثيل المرئي للبيانات، وجمع البيانات، وتحليلات البيانات، والأمان، وإمكانية الوصول، والأداء، والعولمة. منصة منخفضة الرمز تخفف بشكل كبير من هذه المضاعفات وتقلل بشكل كبير من كمية التعليمات البرمجية التي تحتفظ بها.
ومع ذلك، إذا كان تطبيقك لديه متطلبات أكثر تعقيدًا، فاختر لغة برمجة ناضجة مقترنة بإطار خفيف الوزن. عند اختيار لغة برمجة، حدد لغة توفر لك مزايا أساسية، مثل:
وتميل اللغات الجديدة إلى إحداث معدل تغيير أعلى في تصميمها اللغوي وما يقابله من نظم إيكولوجية ومكتبات. ويعني ارتفاع معدل التغيير أن تقييم المخاطر أكثر صعوبة وأكثر تكلفة لإجراء تغييرات لاحقة.
عند اختيار إطار عمل، حدد إطار عمل مفتوح المصدر. تخضع الأطر مفتوحة المصدر لاستعراض الأقران المستمر، مما يعني أن الميزات قريبة مما يريده معظم المطورين لأنها تساهم في إنشاء أطر العمل وصيانتها. يتم العثور على الأخطاء وإصلاحها بسرعة. كما تريد أيضًا تحديد إطار عمل خفيف الوزن يستهلك موارد قليلة مثل وحدة المعالجة المركزية (CPU) أو الذاكرة أو عرض النطاق الترددي للشبكة أو مراجع الملفات.
استخدم إطار التطبيق الذي يوازن بين تحسين التركيز على المهام (منطق الأعمال على القالب والسقالات) والمرونة (مما يتيح لك دعم احتياجات الميزات الحالية والمستقبلية). اعتماد إطار عمل يوفر افتراضات سهلة الاستهلاك والمعقولة وغير المثيرة للجدل للميزات العامة، مثل التسجيل والقياس عن بُعد والأمان والتكوين، بالإضافة إلى الأنماط العامة، مثل إنشاء واجهات برمجة تطبيقات REST.
توصيات Oracle
Oracle APEX هي نظام أساسي منخفض التعليمات البرمجية يوفر لك مكونات عالية المستوى، مثل النماذج والمخططات وعناصر واجهة المستخدم. كما توفر APEX أنماط تصميم مشتركة من خلال بيئة تطوير رسومية بديهية. يمكن للتطبيقات التي تم تطويرها باستخدام APEX الوصول إلى البيانات المحلية عبر SQL والتكامل مع الخدمات الخارجية باستخدام واجهات برمجة تطبيقات REST. بالإضافة إلى ذلك، يمكنك نشر الوظيفة التي تقوم بتطويرها في APEX كواجهات برمجة تطبيقات REST للاستهلاك الخارجي.
إذا كان نظامًا أساسيًا منخفض التعليمات البرمجية غير مناسب لتطبيقاتك، فتبني Java كلغة برمجة. يوفر Java مجموعة ثابتة وواسعة من الإمكانات لمعظم حالات استخدام التطبيقات الشائعة ولديه نظام إيكولوجي سليم من المكتبات والأطر الموثوقة والمستقرة لتطوير التطبيقات الحديثة. يركز Java على البساطة وسهولة القراءة بالإضافة إلى دعمه الممتاز لأدوات المطور بما في ذلك أدوات التحليل الثابتة وتكاليف صيانة البرامج التي تحد من إطارات الاختبار ومخاطر الأخطاء في تطبيقات الإنتاج.
استخدم GraalVM لتطوير تطبيقك وتشغيله. GraalVM هو توزيع JDK يقوم الأزواج باستقرار Java بأفضل أداء في الفئة من خلال تحسين وقت التشغيل الديناميكي والتصحيح المتكرر والاستباقي للثغرات الأمنية وتحليل الأداء المنخفض التكلفة والأدوات التشخيصية، مثل Java Flight Recorder.
أنشئ التطبيق الخاص بك باستخدام نهج واجهة برمجة التطبيقات أولاً باستخدام مجموعة Graal للتطوير لـ Micronaut أو إطار عمل Helidon. يوفر كلا النهجين دعامة تقلل بشكل كبير من الوقت لتقديم تطبيقك وأنماط سهلة الاستخدام لحالات الاستخدام المشتركة، مثل واجهات برمجة تطبيقات REST، على أساس مجموعة من الخيارات الإطارية البسيطة وغير الخلافية للأنشطة المشتركة، مثل التسجيل والقياس عن بعد والتخزين. بالإضافة إلى ذلك، يدعم كلا النهجين الخدمات عالية الأداء، من خلال دعم المدخلات/المخرجات غير المعوقة باستخدام واجهات برمجة التطبيقات التفاعلية، وانخفاض الكمون، من خلال دعم مكتبات الشبكات عالية الأداء.
يتوفر لكل من Helidon وGDK دعم مدمج للصورة الأصلية GraalVM، مما يمكنك من بناء تطبيقات تتسم بالكفاءة في الذاكرة وصغر الحجم.
نظرة عامة
قم بتقسيم ميزات أو مهام التطبيق إلى خدمات مستقلة مقترنة بغير إحكام تعمل مع بعضها بعضًا. تصميم كل خدمة ذات نطاق وظيفي محدود يركز على ميزة أو قدرة واحدة. وبالمقارنة مع البنية التقليدية أحادية اللغة، يعمل هذا النهج على تحسين صيانة التطبيقات وتطوير الميزات والاختبار والنشر وقابلية التوسع.
اتباع نهج تصميم واجهة برمجة تطبيقات REST الأولى بالعقد لتوفير واجهات واضحة مفهومة للاتصال بالخدمات وفيما بينها. يوفر عقد واجهة برمجة التطبيقات الآلية اللازمة للفرق للتعاون في الوظائف واستهلاكها دون الاعتماد على التفاصيل الداخلية لتنفيذ الخدمة. على سبيل المثال، يمكن أن تكون الخدمة مملوكة بالكامل لفريق تطوير يمكنه تحسين تنفيذها بحرية دون الحاجة إلى تنسيق تبعيات الرموز مع أفرقة تطوير أخرى.
تفاصيل المبدأ
ابدأ باتباع نهج العقد أولًا من خلال تحديد الواجهة البرمجية للتطبيق لخدمة REST. بعد ذلك، قم بوضع نموذج أولي لتنفيذ API للسماح لأصحاب المصلحة، مثل الفرق التي ستستخدمه، بمحاولته. عندما يتفق الجميع على تفاصيل واجهة برمجة التطبيقات، يمكن أن تعمل الفرق المستقلة بالتوازي لتنفيذ الخدمة والخدمات الأخرى التي ستستهلكها.
حدد عمليات تنفيذ النهج لاتفاقيات مستوى الخدمة والأمان في وقت مبكر من دورة تشغيل المنتج للتأكد من وضوح الجميع في جميع جوانب عقد الخدمة.
قم بمعاملة مواصفات واجهة برمجة التطبيقات الخاصة بك كرمز وقم بإدارتها في نظام التحكم في الإصدار بالإضافة إلى تكوينات النهج والرمز المصدر.
توصيات Oracle
حدد واجهة برمجة التطبيقات باستخدام الصيغة OpenAPI الخاصة بالتنفيذ غير المحدد وقم بتخزينها في مستودع توفره Oracle Cloud Infrastructure (OCI) DevOps.
يمكنك تنفيذ خدماتك باستخدام نهج المصدر المفتوح خفيف الوزن، مثل مجموعة Graal للتطوير لـ Micronaut أو Helidon.
توزيع خدماتك على منصات بدون خادم، مثل Oracle Container Engine for Kubernetes أو Oracle Functions، لتسهيل النشر وقابلية التوسيع وكفاءة التكلفة.
استخدم Oracle Cloud Infrastructure API Gateway لتكوين نقاط انتهاء خاصة أو عامة محمية ومحكومة من مواصفات API.
استخدم Oracle Cloud Infrastructure Service Mesh لتبسيط الاتصال وتأمينه بين الخدمات المستضافة في مجموعة Oracle Container Engine for Kubernetes. تتيح لك شبكة خدمات OCI أيضًا مراقبة جميع نسب استخدام الشبكة عبر الشبكة بين خدماتك عبر المقاييس والسجلات المنبعثة من مكون الوكيل الخاص بها والذي يعمل جانبيًا على نقاط توصيل التطبيقات.
نظرة عامة
رمز حزم الحاويات وتبعياته كوحدة واحدة، بحيث يتم تشغيل التطبيق بسرعة وموثوقية عبر بيئات الحوسبة المتعددة. صورة الحاوية هي ملف يقوم، عند تنفيذه، بإنشاء حاوية وبدئها في بيئة حوسبة.
ومقارنة بالآلات الافتراضية التقليدية، تكون الحاويات أصغر حجمًا وتتطلب موارد أقل وأوقات بداية أسرع. كما أنه نظام أساسي مستقل ويمكنه تشغيل التطبيقات في أي مكان. للاستفادة من هذه المزايا، قم بفك تكوين تطبيقك في الخدمات التي يقوم كل منها بوظيفة أعمال منفصلة وحزم كل خدمة كحاوية. للتطبيقات القديمة، استبدل تدريجيا كل وظيفة موجودة في تطبيقك بخدمة ذات حاوية حتى يتم إعادة تصميم التطبيق بأكمله.
تفاصيل أساسية
رمز وتبعيات تطبيق التعبئة في وحدة قابلة للتنفيذ واحدة (صورة حاوية) تعني أن الحاوية قابلة للنقل للغاية. من خلال الجمع بين قابلية النقل هذه مع تجريد البنية التحتية، تجلب الحاويات الاتساق التشغيلي إلى تطبيقك. سواء كان تطبيقك يعمل محليًا على خادم مادي أو في السحابة على جهاز افتراضي، فإنه ينتج النتائج نفسها في كل مرة.
ومن خلال إمكانية إعادة الإنتاج والتنبؤ المستمرة هذه، تعمل الحاويات على تبسيط عمليات DevOps وتمكين فرق التطوير لديك من نشر تطبيقاتك بشكل أسرع. ومن خلال توفير ميزة العزل على مستوى العمليات، ونظرًا لأنه يتم استبدالها بشكل متكرر، تعمل الحاويات على تبسيط العمليات المرتبطة بمعالجة الثغرات الأمنية بالبرامج وتسريعها. كما أن تقسيم التطبيقات إلى خدمات حاويات نمطية يجعلها قوية للغاية. لا يؤدي الخطأ أو الفشل في الخدمة الفردية إلى تعطيل التطبيق بأكمله، ويمكنك تحديث أو تصحيح كل خدمة بشكل مستقل عن باقي التطبيق.
على عكس جهاز افتراضي، لا تأتي الحاوية مع نظام تشغيل خاص بها ؛ بدلاً من ذلك، تشترك في نظام التشغيل الخاص بمضيفها. نتيجة لذلك، تكون الحاويات أصغر حجما وأسرع للبدء من الآلات الافتراضية. معظم صور الحاويات هي عشرات الميجابايت في الحجم مقارنة بالأجهزة الظاهرية التي يمكن أن تكون عدة جيجابايت، وأوقات البداية بالثواني بدلاً من الدقائق التي يستغرقها بدء الآلات الظاهرية.
أفضل طريقة لتشغيل وتوسيع التطبيق الخاص بك مع خدمات وحدات في الحاويات هو نشر خدمة واحدة لكل حاوية. ويعزل هذا النهج الخدمات بعضها عن بعض، مما يزيل وقت التوقف ويتيح التوسع المستقل لكل خدمة.
على الرغم من أنه يمكنك نشر الحاويات يدويًا، إلا أنه من الأفضل استخدام برنامج إدارة الحاويات الذي يتكامل مع أدوات التكامل والنشر المستمرة لديك.
توصيات Oracle
استخدم Oracle Cloud Infrastructure Registry (سجل الحاويات) لتخزين صور الحاوية الخاصة بك وOracle Cloud Infrastructure Container Engine for Kubernetes (OKE) لتشغيل الحاويات وإدارتها. يتم تكامل هذه الخدمات المدارة بالكامل مع قدرات منصة OCI، وهي متاحة في جميع مناطق Oracle Cloud، وتستوفي المعايير التنظيمية، مثل PCI وISO وSOC وHIPAA وFedRAMP.
بالإضافة إلى تخزين صور الحاويات في سجل الحاويات، يمكنك تخزين قوائم البيانات (التي تسمى أحيانًا الصور متعددة البنيات) لدعم العديد من البنيات، مثل ARM وAMD64. لتحديد مواطن الضعف الأمنية المحتملة وتخفيفها، قم بتمكين المسح الضوئي للصور على كل الصور التي تم تحميلها إلى سجل الحاويات. يجب توقيع صور الحاوية للتأكد من توزيع الصور المعتمدة والموثوق بها فقط على OKE.
نظرة عامة
التكامل المستمر (CI) والنشر المستمر (CD) هما مجموعة من الأدوات والإجراءات التي تستخدمها فرق التطوير لتقديم تغييرات التعليمات البرمجية بشكل متكرر وموثوق. تتضمن أفضل ممارسات الدمج المستمر/التسليم المستمر مراجعات التعليمات البرمجية، والتوجيه لاختبار الوحدة، واختبار التكامل، وإيداع التعليمات البرمجية، وتذاكر تقديم الوثائق، ونشر التطبيقات في بيئات التطوير والاختبار.
يوضح التكامل المستمر ممارسة يقوم فيها المطورون بشكل متكرر بدمج تغييرات التعليمات البرمجية الخاصة بهم في الفرع الرئيسي لمخزن مشترك. يتم التحقق من تغييرات المطورين من خلال إنشاء بنية وتشغيل اختبارات تلقائية ضد البناء. تضمن الاختبارات عدم كسر التطبيق الخاص بك كلما تم دمج تغييرات جديدة في الفرع الرئيسي.
وتشمل مزايا التكامل المستمر ما يلي:
التسليم المستمر هو خطوة أبعد من التكامل المستمر ؛ بعد اجتياز الاختبارات المناسبة، يتم تسليم البناء تلقائيًا إلى بيئة الاختبار و / أو الإنتاج. الهدف من التسليم المستمر هو أن يكون دائمًا قاعدة تعليمات برمجية جاهزة للنشر في بيئة إنتاج العملاء.
تشمل المزايا الإضافية للتسليم المستمر ما يلي:
ينتقل النشر المستمر خطوة واحدة أبعد من التسليم المستمر؛ يتم نشر كل تغيير يمر بجميع الاختبارات تلقائيًا إلى بيئة إنتاج عملائك. لا يوجد تدخّل بشري - يمكن للاختبار الفاشل فقط منع حدوث تغيير جديد في الإنتاج. وبدون أي تدخل بشري، يعتمد النشر المستمر بشكل كبير على أتمتة الاختبار المصممة بشكل جيد.
وتشمل المزايا الإضافية للنشر المستمر ما يلي:
يقدم الدمج المستمر/التسليم المستمر أفضل الممارسات لتخزين التعليمات البرمجية ودمجها ونشرها وصيانتها لأتمتة كيفية إنشاء تطبيقاتك. زيادة رضا العملاء بفضل الجودة المحسنة والتدفق المستمر للتحسينات
توصيات Oracle
استخدم DevOps Service لأتمتة نشر التطبيقات المحلية للسحابة. أولاً، تخزين التعليمة البرمجية في مخزن تعليمات DevOps البرمجية وتكوين فرع إصدار. العمل في زيادات صغيرة لإجراء تغييرات على فرع الإصدار وتسوية المشكلات في الفرع يوميًا لضمان استقراره. ثم استخدم وظيفة المشغلات في مستودع التعليمات البرمجية لبدء مسار إنشاء DevOps تلقائيًا.
استخدم توجيه بناء DevOps مفرد لإنشاء كل البيانات الاصطناعية المقترنة بمخزن التعليمات البرمجية. في حالة فشل البناء، قم بتكوين خطة مبيعات البناء للانتظار للاعتماد قبل إتمامها. يجب أن ستحول طلب الموافقة إلى المثبت الذي قام بتشغيل البناء، ويجب عليه حل المشكلة من خلال تثبيت تعليمات برمجية جديدة ثم الموافقة على إتمام البناء. بالنسبة إلى عمليات الإنشاء الناجحة، قم بتكوين خط توجيه الإنشاء لتسليم البيانات الاصطناعية تلقائيًا إلى خدمة Oracle Cloud Infrastructure Artifacts Registry ولتشغيل خط توجيه توزيع DevOps.
أضف إدارة تبعية التطبيق لاكتشاف الثغرات الأمنية (CVE) في تبعيات التطبيق أثناء مرحلة الإنشاء في مسار إنشاء OCI DevOps. بهذه الطريقة، ستتمكن من اكتشاف المخاطر المحتملة وإصلاحها بمجرد معرفتها.
استخدم مدير الموارد لتكوين جميع بيئات البنية التحتية الخاصة بك في منطقة أمان الحد الأقصى للاستفادة تلقائيًا من أمان النشر. باستخدام مدير الموارد، يمكنك استخدام البنية التحتية كرموز لأتمتة تكوين البنية التحتية عبر كل المناطق بطريقة متسقة. بعد ذلك، يمكنك تكوين خطة توزيع DevOps لتوزيعها دائمًا على الموارد التي قمت بتكوينها في منطقة الحماية.
تكوين خط توجيه توزيع DevOps مفرد يقوم بنشر كل البيانات الاصطناعية التي تم تكوينها من خط توجيه بناء مفرد. تنظيم بيئات النشر، مثل منطقة OCI ونطاق التوفر ونطاق الأخطاء. يمكنك تكوين مسار بيانات باستخدام إستراتيجية نشر خضراء زرقاء أو متدحرجة. قم أيضًا بتكوينه لتشغيل الاختبارات تلقائيًا. تمكين مراقبة OCI وApplication Performance Monitoring في التطبيق والبنية التحتية لاكتشاف المشكلات.
في حالة عدم اكتشاف مشكلات وإتمام الاختبارات بنجاح، قم بتكوين خطة التوزيع لتوزيع البيانات الاصطناعية تلقائيًا على البيئة التالية في استراتيجية النشر حتى يتم نشر البيانات الاصطناعية بالكامل في جميع بيئات الإنتاج. عند التوزيع في بيئة الإنتاج، قم بتكوين خطة المبيعات لتوزيعها على جميع نطاقات الخطأ في نطاق إتاحة واحد في المرة الواحدة. قم بالتوزيع على كل نطاق إتاحة في منطقة واحدة في كل مرة، ثم على كل منطقة واحدة في كل مرة. استمر في استخدام مراقبة OCI وApplication Performance Monitoring في التطبيق والبنية التحتية لاكتشاف المشكلات بسرعة. قم بإعداد التنبيهات، وفي حالة إسقاط أية قياسات أساسية فجأة أثناء النشر، قم بفشل النشر تلقائيًا وتشغيل إلغاء التعديلات على الإصدار السابق.
نظرة عامة
توفر الخدمة المدارة وظيفة محددة دون الحاجة إلى تنفيذ مهام الصيانة المرتبطة بتحسين الأداء أو التوفر أو القياس أو الأمان أو الترقية. مع خدمة مدارة، يمكنك التركيز على تقديم ميزات لعملائك بدلاً من القلق بشأن تعقيد العمليات.
توفر خدمة OCI المُدارة مكونًا آمنًا وقابلًا للتوسع لتطوير السحابة الأصلية. استخدم الخدمات المدارة لتطوير وتشغيل تطبيقك وتخزين بياناته؛ تحصل على أفضل الحلول في فئتها دون الحاجة إلى خبرة في كل مجال لبناء وتشغيل التطبيق الخاص بك.
تفاصيل أساسية
تتيح لك الخدمات المُدارة إنشاء تطبيقات عالية التوفر والقابلة للتطوير والمرونة والأداء مع الأمان والتوافق والمرونة.
تلخص الخدمات المدارة تعقيد المكونات الأساسية لتطبيقك، مما يسهل تخزين البيانات واسترجاعها أو تكوين تطبيقك وتشغيله. تتكامل الخدمات مع مجموعات الأدوات التي توفر إنشاءًا تلقائيًا واختبارًا ونشرًا لتطبيقك. تعمل الخدمات المُدارة على تحسين الإنتاجية وتقليل وقت التسويق.
تعمل الخدمات المدارة على إضفاء الطابع المركزي على مهام إدارة البنية التحتية المختلفة وأتمتتها، وإزالة الأخطاء البشرية والحاجة إلى مهارات متخصصة. يتم تحديث البنية التحتية وتأمينها، وتمكّنك الخدمات من مراقبة وتتبع التعديلات أو الوصول، مما يضمن سرية وتكامل التطبيق والبيانات.
الخدمات المدارة متاحة وقابلة للتوسيع بشكل كبير، وتلبية احتياجات التطبيق، ولا تدفع إلا ثمن ما تستخدمه. يمكنك أن تبدأ صغيرة الحجم والتوسع دون أن تواجه أي تدهور في الأداء أو الموثوقية.
توصيات Oracle
نوصي بالخدمات السحابية التالية:
وهذه الخدمات عالية التوفر وعالية الأداء ومرنة. تتم إدارة بنيتهم التحتية وتصحيحها لضمان أن يظل تطبيقك آمنًا.
نظرة عامة
يمكن أن تتكون حالة التطبيق من العديد من العناصر، بما في ذلك الذاكرة المخبئية للبيانات، وتفضيلات المستخدم، والتخصيص، والرسائل المتبادلة بين الخدمات، والموضع في سير عمل متعدد الخطوات، وتوزيع التطبيق، وتكوين وقت التشغيل، وجلسة عمل المستخدم (على سبيل المثال، الصفحة التي زارها المستخدم آخر مرة أو الحجم والعناصر في عربة التسوق الخاصة بالمستخدم). إذا فقدت حالة التطبيق الخاص بك، فقد يؤدي إلى فقدان البيانات، وعطل في التطبيق الخاص بك، وتجربة مستخدم دون المستوى الأمثل - وأحيانًا فشل التطبيق الكامل.
إذا قمت بتخزين حالة التطبيق على أنظمة الملفات المحلية أو في ذاكرة مضيف واحد، فقد يتم فقدها إذا واجه التطبيق حالات انقطاع، مثل مرات إعادة التشغيل أو حالات فشل القرص المحلي. بدلاً من ذلك، احفظ الحالة في مخازن المقاومة الخارجية. استخدم أقل عدد ممكن من مخازن الاحتفاظ بالبيانات، ومن الأفضل أن يتم استخدام واحد فقط لتوفير اتساق البيانات.
تفاصيل المبدأ
يتم تخزين عناصر حالة التطبيق بشكل تقليدي باعتبارها بيانات اصطناعية متعددة بتنسيقات مختلفة، مثل الكائنات المسلسلة أو وثائق JSON أو XML أو الملفات النصية. إذا كانت هذه العناصر مخزنة عبر متغيرات ثابتة متعددة، مثل أنظمة الملفات الخارجية، أو متاجر الرسائل، أو متاجر الكائنات، أو قواعد البيانات المتعددة، أو تخزين الكتل المرنة، فمن الممكن أن تخرج مخازن البيانات المختلفة من المزامنة، مما يؤدي إلى عدم اتساق الحالة. يجب على التطبيق أيضًا تنفيذ المعاملات والروابط والأفكار لضمان اتساق البيانات عند الحاجة إلى تحديث الحالة كوحدة.
من خلال تفريق عناصر حالة التطبيق عبر متاجر متعددة، تزيد الفرص من الثغرات الأمنية. عمليات دورة الحياة - مثل إضافة وإزالة نقاط التوصيل والتصحيح والنسخ الاحتياطي والتعافي وتكرار الكوارث والإيكولوجيا الاستعادة معقدة للغاية وتتطلب مراعاة خاصة للحفاظ على اتساق الولاية عبر مختلف المتاجر.
ونتيجة لذلك، فإن النهج الأفضل هو تخزين كل حالة التطبيق وبياناته في قاعدة بيانات واحدة، إن أمكن. تظل البيانات متسقة في متجر واحد ويسهل إدارتها. باستخدام هذا النهج، يمكن استبدال مثيلات التطبيق. يساعد هذا بشكل خاص في تصميمات التطبيقات الحديثة، مثل الخدمات المصغرة المرنة أو المثيلات المؤقتة إذ يوجد مثيل فقط لخدمة طلبات واحدة أو طلبات قليلة. يتم تبسيط إضافة نقطة توصيل لأنه يمكن لنقطة توصيل جديدة الحصول على أحدث نسخة من الحالة - ولا تؤدي إزالة نقطة توصيل إلى فقد الحالة بالكامل. يمكن تطبيق التصحيحات بطريقة متدرجة فقط من خلال استبدال البرامج التنفيذية. يمكن استعادة نقطة توصيل من النسخ الاحتياطية واكتساب الحالة من قاعدة البيانات. ويمكن استنساخ الدولة باستمرار كوحدة إلى مناطق مختلفة لاستعادة القدرة على العمل بعد الكوارث. يمكن أن يضمن وجود حالة متسقة في مناطق مختلفة وجود أية مشاكل وظيفية في تطبيقك بعد الانتقال بعد الفشل أو التبديل.
توصيات Oracle
إذا كان تطبيقك يستخدم قاعدة بيانات، فاستخدم قاعدة البيانات نفسها لتخزين حالتها. توفر قاعدة البيانات مستوى أفضل من التوفر والتكامل والأمان مقارنة بالبدائل، مثل الملفات أو التمثيلات المضمّنة بالذاكرة. من الناحية المثالية، استخدم قاعدة بيانات متعددة النماذج (التي يمكنها تخزين صيغ مختلفة) لتخزين جميع عناصر حالة التطبيق الخاص بك. كما يتيح استخدام قاعدة بيانات متعددة النماذج بدلاً من مخازن بيانات متعددة الأغراض إمكانية تحقيق الاتساق والحفاظ عليه بسهولة عبر جميع عناصر حالة التطبيق. (ملاحظة: على الرغم من أنه مسموح بتخزين الحالة المخزنة في الذاكرة المخبئية في التطبيق، يجب تصميم التطبيق لاستخدام قاعدة البيانات كمصدر للحقيقة والتمكن من إعادة تكوين حالتها من قاعدة البيانات.) Oracle Database هي مثالية لهذا الغرض. فهو يخزن تنسيقات مختلفة ويوفر أداءً يمكن التنبؤ به، لذا فإن تخزين حالة تطبيقك فيه لا يقلل من أداء تطبيقك.
إذا لم يستخدم التطبيق قاعدة بيانات، فاستخدم مخازن دائمة أخرى، مثل Oracle Cloud Infrastructure Object Storage، لتخزين الحالة. إذا تعذر الاحتفاظ بحالة التطبيق في مخزن بيانات واحد، فقم بتصميم تطبيقك لتخزين الحالة في عدة مخازن بيانات يمكن الاحتفاظ بها في حالة التزامن واستردادها كوحدة متسقة بعد الفشل.
فيما يلي بعض التوصيات لتخزين الحالة في Oracle Database.
نظرة عامة
قد يستخدم التطبيق البيانات بتنسيقات متنوعة، مثل جدولي (علائقي) أو غير منظم أو XML أو JSON أو مكاني أو رسم بياني. عادةً ما يتطلب هذا التنوع نوعًا مختلفًا من قواعد البيانات لكل تنسيق بيانات. على سبيل المثال: قاعدة بيانات علائقية للبيانات العلائقية أو مخزن وثائق للبيانات غير المهيكلة أو قاعدة بيانات رسم بياني للبيانات المتدرجة المرتبطة. ومع ذلك، غالبًا ما يؤدي استخدام قواعد بيانات متعددة إلى تعقيد تشغيلي إضافي وعدم تناسق البيانات. بدلاً من ذلك، استخدم قاعدة بيانات واحدة متعددة النماذج لتخزين وفهرسة والبحث عن أنواع وصيغ متعددة من البيانات.
الاستفادة من وظيفة قاعدة البيانات لتبسيط منطق التطبيق. على سبيل المثال، استخدم SQL للاستعلامات والروابط والتحليل؛ واستخدم المعاملات لضمان الاتساق والعزلة؛ واستخدم خوارزميات التعلم الآلي وإمكانات التحليلات المضمنة لتجنب عمليات نقل البيانات غير الضرورية. لحماية البيانات الحساسة، استخدم ميزات تأمين قاعدة البيانات والتحكم في الوصول، واستخدم الاستنساخ لتحسين توفر التطبيقات وقابليتها للتوسع ومرونتها.
تفاصيل المبدأ
استخدم قاعدة بيانات متعددة النماذج لتخزين أنواع مختلفة من البيانات، مثل وثائق JSON والرسوم البيانية للخصائص والبيانات العلائقية. توفر قواعد البيانات المتقدمة متعددة النماذج دعمًا كاملًا لأي نوع من البيانات المخزنة في قاعدة البيانات. يمكنك تخزين وثائق JSON جديدة وإدراج صفوف علائقية وتحديث الرسم البياني للخاصية في نفس معاملة ACID. يمكنك استخدام جمل SQL للربط والترشيح والتجميع عبر هذه الأنواع المختلفة من البيانات - وهذا يوفر الاتساق القوي وضمانات التزامن التي اعتدت عليها من قواعد البيانات العلائقية. بالإضافة إلى تقديم هذه المجموعة الغنية من الميزات، يمكن أيضًا استخدام قاعدة بيانات متعددة النماذج كمخزن بيانات أحادي الغرض يتم الوصول إليه باستخدام واجهات برمجة تطبيقات بخلاف SQL، مثل واجهات برمجة تطبيقات REST، وواجهات برمجة تطبيقات مخزن الوثائق، وواجهات برمجة تطبيقات الرسوم البيانية.
تتمثل الميزة الرئيسية لاستخدام قاعدة بيانات متعددة النماذج في إعادة استخدامها. على الرغم من أن البيانات قد تكون من أنواع وأشكال مختلفة، فإن التكنولوجيا الأساسية لإدارة تلك البيانات لا تتغير. ويعني هذا أنك لست مضطرًا إلى تعلم تقنيات قواعد بيانات متعددة وفهم كيفية استخدام كل نوع من البيانات وضبطه. ولأن التكنولوجيا لا تزال ثابتة، فليس عليك إعادة كتابة رمز التطبيق. أيضًا، تعمل قاعدة البيانات متعددة النماذج على تحسين مرونة تطبيقك عن طريق تقليل تجزئة البيانات، مما يجعل النسخ الاحتياطي والاسترداد أسهل.
توصيات Oracle
استخدم Oracle Autonomous Database، قاعدة بيانات متقاربة متعددة النماذج، لتخزين كل البيانات وإدارتها وتحليلها. تسهيل صيانة التطبيق باستخدام طرق العرض لعرض البيانات في الجداول حتى يمكن تغيير المخطط الأساسي دون التأثير على التطبيقات الموجودة. استخدم إعادة التعريف المستندة إلى الإصدار بحيث يمكنك ترقية التطبيق بدون توقف. استخدم Oracle Data Safe لتنفيذ وتقييم عناصر تحكم التأمين وإخفاء البيانات الحساسة والوصول إلى بيانات المراجعة. استخدم Oracle Data Guard كمخزن مؤقت للقراءة قابل للتوسيع للغاية للبيانات الخاصة بك وللحفاظ على نسخة احتياطية متسقة لاستعادة القدرة على العمل بعد الكوارث.
تقوم Oracle Autonomous Database بتنفيذ مهام تشغيلية من دون أي تأثير أو مقاطعة لحمل العمل. ويعني هذا أنك لست بحاجة إلى إضافة منطق تعويضي معقد إلى التطبيق لمعالجة سيناريوهات التحجيم أو تجاوز الفشل. وتدير قاعدة البيانات الموارد، مثل وحدة المعالجة المركزية والتخزين، بشكل مستقل وتوفر قابلية توسع ثنائية الاتجاه مرنة.
نظرة عامة
يمكن لطلب مستخدم واحد اتباع مسار معقد عبر الخدمات المتعددة أو الخدمات الصغيرة التي تشكل تطبيقًا حديثًا. يتعقب التتبع الشامل رحلة كل طلب من مصدره إلى أعماق بنيتك التحتية ويساعدك على تصحيح السبب الرئيسي للمشكلة. تُستخدم المراقبة بشكل عام كأداة تشخيصية، مع تنبيه مطوريك عندما لا يعمل تطبيقك كما هو متوقع.
يجب على المطورين والمسئولين وموظفي الأمن الحفاظ على فهم موثوق وفي الوقت المناسب لصحة التطبيق الخاص بك، والأداء، وحالة التشغيل، والحوادث الأمنية المحتملة. يضمن هذا الفهم أن وظيفة التطبيق وأداءه يلبيان التوقعات خلال دورة حياته؛ ويمكنه أيضًا تبسيط تشخيص الحوادث واسترداد التطبيقات. وينبغي أن يكون الرصد والتعقب الشاملان من طرف إلى طرف واضحين من أجل التنفيذ والإدارة دون إضافة تعقيد إلى التطبيق.
تفاصيل رئيسة
يمكن أن يفشل تطبيقك في التصرف كما هو متوقع بطرق عديدة. على سبيل المثال، يمكن أن يعمل بشكل سيئ أو يفشل تمامًا فحسب. على عكس تطبيق أحادي تقليدي، يقدم تطبيق تم إنشاؤه من الخدمات الصغيرة تحديات تشخيصية إضافية بسبب التفاعلات المتعددة بين مكوناته.
التتبع هو أفضل طريقة لفهم ما يحدث لطلب المستخدم بسرعة أثناء انتقاله عبر الخدمات الصغيرة والمكونات الأخرى مثل البنية التحتية التي تشكل التطبيق الخاص بك. استخدم التتبع النهائي لتجميع البيانات الخاصة بكل طلب مستخدم، ثم قم بمراجعة البيانات لمعرفة مكان وجود اختناقات وزمن انتقال التطبيق. على سبيل المثال، يمكن أن يمر الطلب ذهابًا وإيابًا من خلال خدمات صغيرة متعددة قبل استيفاؤه. بدون طريقة لتتبع رحلة الطلب بأكملها، لا توجد طريقة لتحديد السبب الجذري لفشله.
المراقبة أكثر توجيهًا بشكل عام، وتحسين فهمك لكيفية تصرف تطبيقك من خلال مراقبة تطبيقك ثم جمع المقاييس وتجميعها وتحليلها. كما يتيح الرصد النهائي التكامل الذكي والآلي مع الأدوات التي تقوم ديناميكيًا بتعديل قدرة الموارد وتنسيق الردود على الأحداث غير المتوقعة.
إن الحصول على فهم واضح ودقيق وفي الوقت المناسب لحالة التطبيق وتاريخه التشغيلي ليس فقط حول قياس تجربة المستخدم النهائي. وقد تحتاج أيضًا إلى الحفاظ على الامتثال للهيئات القضائية الإقليمية أو الوطنية التي قد تتطلب القدرة على إعداد تقارير مفصلة عن الأنشطة حسب الطلب أو تقديم شهادات بشأن معالجة عناصر بيانات محددة وحساسة.
بشكل عام، يجب أن تكون حلول المراقبة متوافقة مع أدوات الطرف الثالث ومتوافقة مع الأدوات الإدارية للبيئة بشكل خاص. من المهم الحفاظ على مرونة التصميم وتجنب قفل الموردين.
توصيات Oracle
قم بإنشاء إمكانات مراقبة وتتبع شاملة في تطبيقك منذ البداية واجعلها متسقة خلال دورة حياتها. يجب ألا تضيف الإمكانات أي تعقيدات إلى التطوير والاختبار والنشر، كما يجب أن تكون سهلة التنفيذ والإدارة. يمكنك اعتماد حلول، حيثما أمكن، لاستيعاب تنوع الأنظمة الأساسية التي تستخدمها حاليًا والتي يمكن نشرها في المستقبل.
تم تصميم خدمات OCI، مثل المراقبة، لتقديم دعم فوري للمراقبة. يمكنك أيضًا توسيع العديد من خدمات OCI لمكونات التطبيق باستخدام تجربة توزيع وإدارة متسقة من خلال واجهات API وSDK المدعومة. على سبيل المثال، يمكنك إضافة تجميع قياس المراقبة التلقائي أو التقاط السجل مع التخزين المركزي لكل الآلات والتطبيقات الظاهرية.
أثناء التطوير والاختبار، يمكنك تكوين الخدمات لجمع معلومات تصحيح الأخطاء أو اختبار الأداء الأساسية فقط. نظرًا لأن تطبيقك يقترب من نشر الإنتاج، قم بزيادة نطاق المعلومات التي يتم جمعها وتكرارها وقابليتها للتتبع من خلال إجراء تحديثات بسيطة على معلمات التكوين الموجودة.
تسجل Oracle Cloud Infrastructure Service Mesh تلقائيًا مجموعة متنوعة من مقاييس الاتصالات وسجلاتها للخدمات التي تعمل في Oracle Container Engine for Kubernetes. يمكنك استخدام هذه البيانات لتعقب حالة الخدمات في الشبكة وتحسين أداء التطبيق.
استخدم مجموعة بيانات قوية ومركزية لبيئة مثيل السحابة بأكملها لتوفير موقع واحد للتحليل والتحقيق المنسق وإنشاء التنبيهات. يتيح مركز موصل الخدمة استجابات مرنة ومتسقة وقابلة للتخصيص للأحداث. تتيح تحليلات تسجيل OCI إمكانية إجراء تحليل وتحقق فعالين لجميع أنظمة تسجيل الأحداث السحابية (والخارجية). يمكنك أيضًا استخدام مركز موصل خدمة OCI والوظائف والإشعارات لتحويل القياسات والسجلات المضمنة إلى تنبيهات قابلة للتنفيذ. ويمكنك الاستفادة من تكاملاتنا مع منتجات وخدمات الطرف الثالث، مثل Splunk وGrafana.
تساعدك خدمات OCI التالية على دمج التسجيل والمراقبة والتتبع على مستوى البيئات التي تستضيف تطبيقك: تحليلات التسجيل والمراقبة والدخول، Application Performance Monitoring، إدارة نظام التشغيل، إدارة قاعدة البيانات، وخدمة إدارة Java . تتكامل هذه الخدمات المدارة بالكامل مع موارد البنية التحتية المشتركة لـ OCI وتوفر آليات مدعومة لتكامل موارد تطبيقاتك المخصصة.
نظرة عامة
نقطة فشل واحدة هي مكون واحد من مكونات التطبيق الذي، عند الفشل، يجعل التطبيق بأكمله غير متاح أو غير موثوق به. عند تطوير تطبيق ليكون متوافرًا وموثوقًا به، استخدم النسخ المتماثل التلقائي للبيانات لضمان ألا يؤدي فشل مكون واحد إلى فقد البيانات.
يؤدي استنساخ البيانات عبر الأجهزة واستخدام الشبكات الزائدة إلى حمايتك من فشل الجهاز الروتيني والشبكة. يؤدي استنساخ بياناتك في مراكز البيانات (أو "نطاقات التوفر") عبر مناطق جغرافية متعددة إلى حمايتك من الكوارث المحلية، مثل الحرائق أو الزلازل أو الفيضانات أو الأعاصير.
تفاصيل المبدأ
لكي يتمكن تطبيقك من تحقيق التوافر العالي، يجب التأكد من أن البيانات التي يعتمد عليها تطبيقك تظل متاحة عند حدوث حالات فشل. إن أساس التوافر العالي للبيانات هو التكرار عبر النسخ الآلي للبيانات.
النسخ المتماثل هو عملية نسخ كائنات قاعدة البيانات وصيانتها، مثل الجداول، في قواعد بيانات متعددة تشكل نظام قاعدة بيانات موزع. يتم تسجيل التغييرات المطبقة في موقع واحد وتخزينها محليًا قبل إعادة توجيهها وتطبيقها في كل من النسخ المتماثلة الموجودة في المواقع البعيدة.
ويمكن أن تعمل قواعد البيانات المستنسخة بطريقتين مختلفتين هما: التفاعل النشط والنشاط. في الوضع السلبي النشط، توجد نسخة متماثلة أساسية واحدة ونسخة متماثلة ثانوية واحدة أو أكثر؛ وتشارك فقط النسخة المتماثلة الأساسية في معالجة بيانات التطبيق. في وضع النشاط، تشارك جميع النسخ المتماثلة في معالجة البيانات. يوفر الوضع النشط استخدامًا أفضل للموارد والإتاحة الأعلى نظرًا لعدم الحاجة إلى تجاوز الفشل الأساسي الثانوي.
يضمن التكرار فشل نسخ البيانات بشكل مستقل. وعادة ما تكون عمليات فشل الأجهزة أو الأقراص مستقلة، إلا أن تعطل الشبكة أو الطاقة قد يتسبب في فشل مجموعة من الأجهزة في نفس الوقت. وللوقاية من هذه الحوادث، ينبغي أيضًا أن تكون البنية التحتية للشبكة والطاقة زائدة عن الحاجة، ويجب أن توضع نسخ البيانات المتماثلة بعناية عبر مختلف الأجهزة والمواقع التي لا يمكن أن تفشل معًا.
توصيات Oracle
تم تصميم مراكز بيانات OCI بعناية لإزالة نقاط الفشل الكارثي المفردة. يحتوي مركز البيانات النموذجي أو نطاق الإتاحة على وحدات فشل مستقلة متعددة تعرف باسم نطاقات الخطأ. لا يمكن فشل نطاقين مستقلين للخطأ معًا. وعلى نحو مماثل، قد تحتوي منطقة واحدة على العديد من نطاقات الإتاحة، والتي يتم فصلها جغرافيًا لضمان عدم فشل اثنتين منها في نفس الوقت.
استخدم خدمات تخزين OCI، مثل وحدات تخزين الكتل وتخزين الكائنات وتخزين الملفات، لاستنساخ البيانات عبر نطاقات الأخطاء والإتاحة بحيث لا يمكن لأي نقطة فشل واحدة أن تؤثر على توفر بيانات التطبيق. استفد من عزل الأخطاء المرنة المضمنة في OCI باستخدام Container Engine for Kubernetes لنشر التطبيق عبر نطاقات الأخطاء والإتاحة المتعددة. يوفر Oracle Autonomous Database وData Guard وGoldenGate استنساخ الأجهزة والبرامج النشطة للتوافر العالي بالإضافة إلى التصحيح والترقية في وقت التوقف الصفري. استخدم هذه الخدمات المُدارة للحصول على بيانات عالية التوفر دون الحاجة إلى إنشاء بنية تحتية للتخزين الخاصة بك وصيانتها.
نظرة عامة
يعد الدفاع المتعمق أحد الأساليب التي تعمل فيها عناصر التحكم الأمنية المتعددة المستقلة والمتكررة كطبقات دفاع لأحد التطبيقات. تم تصميم الطبقات لتوفير الأمان حتى إذا فشل أحدها على سبيل المثال، جدار حماية مقترن بميزة الكشف عن التسلل.
ومع ذلك، فإن الإدارة اليدوية وتكوين عناصر التحكم في الأمان يمكن أن يكون معقدًا وغامضًا وعرضًا للأخطاء بشكل فردي وجماعي. بدلاً من ذلك، قم بتأمين التطبيق وبياناته باستخدام عناصر تحكم الأمان الآلية.
تفاصيل رئيسة
يدير الدفاع المتعمق المخاطر باستخدام عناصر تحكم متنوعة تغطي عناصر الأمان المادية والفنية والإدارية والتشغيلية والموظفين والإجرائية. إن استقلالهم يعني أنهم يوفرون دفاعًا عميقًا يتعامل مع الإخفاقات أو الاستغلال أو الثغرات الأمنية الأخرى. تم تصميم الضوابط للتعامل مع المخاطر بطرق مختلفة وتوفير التسجيل والمراجعة وغير ذلك من الميزات لضمان اكتشاف الانتهاكات الأمنية التي تحاول الإبلاغ عنها لأصحاب المصلحة المعنيين.
بدلاً من الحاجة إلى تكوين مجموعة معقدة من عناصر التحكم في الأمان يدويًا، استخدم عناصر تحكم آلية بسيطة وصورية لتأمين تطبيقك. تعمل الضوابط الأمنية التلقائية على القضاء على الخطأ البشري (السبب الجذري للعديد من الحوادث الأمنية) وتساعدك على تأمين تطبيقك وبياناته دون الحاجة إلى أن تصبح خبيرًا أمنيًا.
توصيات Oracle
قم بتنفيذ عناصر تحكم أمان تلقائية سهلة الاستخدام في جميع مراحل دورة حياة التطبيق، بما في ذلك التطوير والبناء والاختبار والنشر ووقت التشغيل. تحقق من المستخدمين والأذون وأنظمة الوصول في كل خطوة من خطوات دورة الحياة وتأكد من منح حق الوصول فقط عند الاقتضاء. اكتشف مشاكل الأمان التي يتم إدخالها مبكرًا في دورة حياة تطوير البرامج. يضمن الاكتشاف المبكر نشر تطبيقك في الإنتاج باستخدام أفضل الممارسات الخاصة بهيكل الأمان، كما يضمن اكتشاف مشكلات الأمان التشغيلي الناجمة عن سوء التكوينات أو نقاط الضعف المكتشفة والتخفيف من حدتها.
تقدم OCI خدمات أمان مؤتمتة متعددة لتأمين التطبيق وبياناته. فيما يلي بعض التوصيات لاستخدام خدمات OCI: