ترحيل أحمال عمل Linux وPostgreSQL

مكتمل

ترشدك هذه الوحدة خلال ترحيل حمل عمل موجود من بيئة محلية أو سحابية إلى Azure. وهو يغطي ترحيل الحساب إلى جهاز ظاهري Azure (VM) والبيانات إلى قاعدة بيانات Azure ل PostgreSQL. التطبيق هو عينة غير محددة للسحابة وهي موقف احتياطي لأي تطبيق في العالم الحقيقي تم إعداده للترحيل إلى السحابة.

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

  • التحول من بيئة ذاتية الاستضافة (مثل من قاعدة بيانات مدارة ذاتيا) إلى عرض قاعدة بيانات مدارة بالكامل
  • التحول من الحوسبة المجردة إلى الأجهزة الظاهرية المستضافة على السحابة

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

حمل العمل والبيانات

حمل العمل لدينا هو تطبيق مكتوب في Go ويعمل مع البيانات داخل PostgreSQL. بياناتنا هي مجموعة بيانات مفتوحة تمكنك من استكشاف قوة النظام الأساسي Postgres والملحقات ذات الصلة.

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

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

ما هي قيمة ترحيل حمل العمل هذا؟

قد تتساءل عن فوائد ترحيل حمل العمل هذا إلى السحابة. فيما يلي بعض اقتراحات القيمة.

الأمان والامتثال

عند إحضار أحمال عمل الحوسبة والبيانات إلى السحابة، فإنها تستفيد من قدرات الأمان المتزايدة.

تستفيد الأجهزة الظاهرية في Azure من مجموعة واسعة من ميزات الأمان والتوافق، بما في ذلك جدران الحماية والشبكات الظاهرية والوصول إلى الجهاز الظاهري في الوقت المناسب والتشفير والتحكم في الوصول المستند إلى الدور (RBAC) والحوسبة السرية. تدعم قاعدة بيانات Azure ل PostgreSQL العديد من الميزات المماثلة، مثل التشفير باستخدام المفاتيح المدارة من قبل العملاء، وشهادات التوافق، ودعم Microsoft Defender for Cloud.

أمان الاتصالات بين الأجهزة الظاهرية وقواعد البيانات

أثناء دمج جهاز ظاهري مع قاعدة بيانات Azure ل PostgreSQL، من المهم أن يتمكنوا من الاتصال ببعضهم بطريقة آمنة تقلل من خطر فقدان البيانات.

تمكنك مصادقة Microsoft Entra من الاتصال بقاعدة بيانات Azure ل PostgreSQL دون كلمات مرور تقليدية. بدلا من ذلك، يمكنك استخدام هويات Microsoft Entra لحمل عمل التطبيق الخاص بك (أي الهويات المدارة) والمستخدمين والمسؤولين عبر حسابات مستخدمي Microsoft Entra الخاصة بهم. يخفف هذا النهج من مخاطر اختراق بيانات الاعتماد طويلة الأمد والسماح للجهات الفاعلة السيئة بالوصول إلى بياناتك.

يمكن لمعرف Microsoft Entra والهويات المدارة وRBAC الدقيقة تمكين حمل عمل التطبيق الخاص بك من الوصول إلى البيانات وإدارة الموارد في Azure بشكل آمن، باتباع مبدأ أقل امتياز.

الوصول إلى حساب عالي الأداء وفعال من حيث التكلفة عبر مناطق متعددة

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

يمكنك قياس الحساب عموديا وأفقيا، بما في ذلك عبر النسخ المتماثلة لقاعدة البيانات والخيارات الموزعة مثل Azure Cosmos DB ل PostgreSQL. Azure Cosmos DB ل PostgreSQL هي خدمة مدارة ل PostgreSQL موسعة مع القوة الفائقة مفتوحة المصدر ل Citus للجداول الموزعة. يتم إقران هذا الحساب ببعض أسرع خيارات التخزين السحابي لتخصيص متطلبات الإدخال/الإخراج للحساب والتخزين مع حمل العمل الخاص بك.

إدارة التكاليف وفعاليتها من حيث التكلفة

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

فوترة الأداة المساعدة تمكن العملاء من التعامل مع فترات الطلب المرتفع دون الحاجة إلى دفع تكلفة الإفراط في التوفير. يسمح الترحيل إلى أجيال أسرع وأكثر كفاءة من الحوسبة عند توفرها.

يمكن للعملاء أيضا الاستفادة من Azure Hybrid Benefit لتوفير تكاليف الترخيص لتوزيعات Linux محددة. لمعرفة المزيد، راجع Azure Hybrid Benefit للأجهزة الظاهرية Red Hat Enterprise Linux (RHEL) وSUSE Linux Enterprise Server (SLES).

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

عمليات اليوم الثاني

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

قبل البدء

تم تصميم هذه الوحدة لمساعدتك على ترحيل حمل عمل Linux وPostgreSQL موجود إلى Azure. ومع ذلك، فإنه لا يركز على كيفية تصدير البيانات من قاعدة البيانات المصدر أو كيفية إعداد التطبيق للترحيل. أحد أسباب هذا النهج هو أن هناك العديد من أنواع قواعد البيانات والتطبيقات المصدر التي يمكنك ترحيلها، والعملية لكل نوع فريدة من نوعها.

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

يمكنك استخدام نموذج التطبيق، Azure-Samples/tailwind-traders-go، كموقف لرمز التطبيق المراد ترحيله. تتوفر البنية الأساسية Bicep كتعلم برمجي، وعينة Postgres والبيانات الثنائية، والموارد الأخرى لدعم الجزء العملي من هذه الوحدة النمطية في مستودع GitHub Azure-Samples/linux-postgres-migration .

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

التعليمة البرمجية للتطبيق

يجب تخزين التعليمات البرمجية للتطبيق الخاص بك في التحكم بالمصادر، ويفضل أن يكون مستودعا في GitHub.

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

بيانات Postgres

يجب تخزين بيانات Postgres في .sql ملف يمكنك استخدامه لإنشاء مخطط قاعدة البيانات وإدراج البيانات. في هذا الترحيل المحاكي، يمكنك استخدام نموذج ملف بيانات، ، tailwind.sqlداخل Azure-Samples/linux-postgres-migration المستودع. يمكنك نسخ الملف إلى Azure Blob Storage ثم استيراده إلى قاعدة بيانات Azure ل PostgreSQL.

عندما يحين الوقت لترحيل بياناتك الخاصة، يمكنك تصدير بياناتك من قاعدة البيانات المصدر وحفظها في .sql ملف. ثم نسخ الملف إلى Blob Storage كما هو موضح في هذه الوحدة النمطية.

ملفات ثنائية

تحتوي معظم التطبيقات على ملفات ثنائية أخرى، مثل ملفات الوسائط، التي تحتاج إلى ترحيل. بالنسبة إلى نموذج التطبيق، ستتعلم كيفية ترحيل الصور عن طريق نسخها من Azure-Samples/linux-postgres-migration إلى Blob Storage.

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

البنية الأساسية كتعلم برمجي (Bicep)

يتم أيضا تخزين البنية الأساسية كتعلم برمجية لهذه الوحدة النمطية في Azure-Samples/linux-postgres-migration. تم تصميمه ليكون بنية مرجعية يمكنك استخدامها كما هي، مع الحد الأدنى من التغييرات، إذا كان بإمكانك جعل البيانات المصدر والتطبيق يتوافقان مع البنية الموضحة مسبقا.

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

وبالمثل، نترك خيار إضافة قاعدة جدار حماية إلى خادم PostgreSQL للسماح بعنوان IP محدد. في بيئة الإنتاج، قد تقوم بتعطيل الوصول العام بالكامل إلى الخادم.

الاختلافات بين بيئات المصدر وAzure

أحد الاختلافات الرئيسية في الترحيل من بيئة أخرى إلى Azure هو أنك تستخدم بشكل كامل عناصر التحكم في الأمان والهوية التي يوفرها Azure:

  • يمكنك استخدام الهويات المدارة للأجهزة الظاهرية وقاعدة بيانات Azure ل PostgreSQL.
  • يمكنك استخدام معرف Microsoft Entra للمصادقة على قاعدة البيانات.
  • يمكنك استخدام معرف Microsoft Entra، بدلا من مفاتيح Secure Shell (SSH)، للوصول إلى الأجهزة الظاهرية.

بدلا من القيام بترحيل الرفع والتحويل، فإنك تغتنم الفرصة لتحديث التطبيق للاستفادة الكاملة من ميزات الأمان والتوافق التي يوفرها Azure.

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

غالبا ما يتطلب استخدام هوية مدارة للمصادقة تغييرات في التعليمات البرمجية في التطبيق الخاص بك. توضح هذه الوحدة كيفية استخدام المكتبة azidentity في Go للحصول على رمز مميز للهوية المدارة. تتوفر المكتبة نفسها عبر Microsoft SDKs.

إنشاء حساب Azure وتثبيت Azure CLI

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

لتشغيل الأوامر في الوحدات التالية، تحتاج إلى الوصول إلى Bash shell. يمكن أن تكون هذه القذيفة في أي من هذه المناطق:

  • على جهازك المحلي. على سبيل المثال، استخدم macOS أو Linux أو نظام Windows الفرعي لـ Linux (WSL) أو Docker.
  • على جهاز ظاهري. على سبيل المثال، استخدم Multipass أو Azure.
  • على السحابة. على سبيل المثال، استخدم Azure Cloud Shell أو GitHub Codespaces.

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

الموارد