Cloud Spanner مع Terraform

1. نظرة عامة

تاريخ آخر تعديل: 23/07/2020

ما هي خدمة Cloud Spanner؟

Google Cloud Spanner هي قاعدة بيانات موزّعة عالميًا ومتوافقة مع ACID وتعالج تلقائيًا النُسخ المتماثلة وتقسيم البيانات ومعالجة المعاملات، لتتمكّن من التوسّع بسرعة لتلبية أي نمط استخدام وضمان نجاح منتجاتك.

الميزات الرئيسية

  • قاعدة بيانات ارتباطية مصمّمة لتتناسب مع نطاق واسع: تشمل هذه القاعدة كل ما تتوقعه من قاعدة بيانات ارتباطية، مثل المخططات وطلبات بحث SQL ومعاملات ACID، وذلك بعد اختبارها وجعلها جاهزة للتوسع على مستوى العالم.
  • توفّر بنسبة% 99.999: توفّر خدمة Cloud Spanner تكنولوجيا رائدة في المجال تبلغ% 99.999 في الأجهزة التي تعمل في مناطق متعدّدة، مع العلم بأنّ فترة التوقف عن العمل تقل بمقدار 10 مرات مقارنةً بأربع تسعات، كما تُوفّر نسخًا متزامنة شفافة ومتزامنة على مستوى عمليات الضبط على مستوى المناطق والمناطق المتعددة.
  • التقسيم التلقائي: تعمل خدمة Cloud Spanner على تحسين الأداء عن طريق تقسيم البيانات تلقائيًا بناءً على حِمل الطلب وحجم البيانات. ونتيجة لذلك، يمكنك قضاء وقت أقل في القلق بشأن كيفية توسيع نطاق قاعدة بياناتك، والتركيز بدلاً من ذلك على توسيع نطاق نشاطك التجاري.

عرض كل الميزات

المُعطيات

  • كيفية استخدام موفِّر Terraform من Google Cloud.
  • استخدام Terraform لإنشاء مثيلات وقواعد بيانات Cloud Spanner.
  • استخدام Terraform لتعديل موارد Cloud Spanner.
  • استخدام Terraform لحذف موارد Cloud Spanner.

2. الإعداد والمتطلبات

إعداد بيئة ذاتية

إذا لم يكن لديك حساب Google (Gmail أو Google Apps)، يجب عليك إنشاء حساب. سجِّل الدخول إلى وحدة تحكُّم Google Cloud Platform ( console.cloud.google.com) وأنشئ مشروعًا جديدًا:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليه لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID.

بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.

لن يكلفك تنفيذ هذا الدرس التطبيقي أكثر من بضعة دولارات، ولكن قد تزيد التكاليف إذا قررت استخدام المزيد من الموارد أو إذا تركتها قيد التشغيل (يُرجى الاطّلاع على قسم "التنظيف" في نهاية هذا المستند).

المستخدمون الجدد في Google Cloud Platform مؤهّلون للحصول على فترة تجريبية مجانية بقيمة 300 دولار أمريكي.

المصادقة

يُرجى تثبيت أداة سطر الأوامر gcloud إذا لم يسبق لك إجراء ذلك. بعد تثبيت gcloud، فعِّل "بيانات الاعتماد التلقائية للتطبيق" من خلال تنفيذ الأمر التالي في الوحدة الطرفية:

$ gcloud auth application-default login

تيراثيم

إذا لم تكن قد تثبّت Terraform من قبل، فثبّت Terraform.

3- موفِّر خدمة Google Cloud Terraform

يوفّر موفّر Google Cloud Terraform أربعة موارد Cloud Spanner:

في هذا الدرس التطبيقي حول الترميز، سننشئ مثيلات وقواعد بيانات Cloud Spanner ونديرها.

البيئة

في بيئة التطوير، أنشِئ دليلاً جديدًا لملفات إعداد Terraform.

$ mkdir ~/terraform-spanner
$ cd ~/terraform-spanner

ثم، قم بإنشاء ملف باسم "main.tf" بالمحتوى التالي واستبدال PROJECT_ID بمعرّف مشروعك على Google Cloud:

$ cat >> main.tf <<'EOF'
provider "google" {
  project = "PROJECT_ID"
}
EOF

في بقية هذا الدرس التطبيقي حول الترميز، سنعدّل هذا الملف ونطبّق التغييرات.

4. إنشاء مثيلات وقواعد بيانات

تعديل ملف main.tf بالمحتوى التالي لإضافة مثيل Cloud Spanner جديد:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 3
}

شغِّل الأمر التالي لتطبيق التغييرات:

$ terraform apply
# ...
Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes
# ...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

بعد تطبيق التغييرات، ستتمكّن من الاطّلاع على المثيل على Google Cloud Console. يُرجى العلم أنّه لا يمكن تعديل الإعدادات على مستوى منطقة معيّنة بعد إنشاء مثيل.

48b67416982fa152.png

بعد إنشاء المثيل، سننشئ قاعدة بيانات في الخطوات التالية. تعديل main.tf بالمحتوى التالي:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 3
}

resource "google_spanner_database" "database" {
  instance = google_spanner_instance.main.name
  name     = "my-first-database"
}

مرة أخرى، استخدِم الأمر التالي لتطبيق التغييرات:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

بعد النجاح، ستكون قاعدة البيانات الأولى متاحة ضمن المثال:

9962a71c6b2a3aff.png

5- تعديل مثيل

وكما أشرنا في القسم السابق، ليست كل خصائص المثيلات قابلة للتعديل. ولكن يمكنك زيادة/تقليل عدد العقد لضبط الموارد التي يستخدمها المثيل. يحتوي المثيل الذي تم إنشاؤه على 3 عُقد. وبتعديل الملف الرئيسي.tf، سنزيد عدد العُقد إلى 5:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 5
}

resource "google_spanner_database" "database" {
  instance = google_spanner_instance.main.name
  name     = "my-first-database"
}

الخطوة التالية هي تطبيق التغييرات:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

بعد نجاح الإجراء، سيستخدم المثيل 5 عُقد.

6- حذف قاعدة بيانات

يمكنك حذف قاعدة بيانات نهائيًا عند عدم الحاجة إليها. ببساطة، قم بإزالة قاعدة البيانات من main.tf وقم بتطبيق التغييرات.

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 5
}
$ terraform apply
# ...
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

بعد النجاح، سيتم حذف قاعدة البيانات نهائيًا.

7. حذف مثيل

يمكنك حذف أي مثيل نهائيًا بمجرد عدم حاجتك إليه. ما عليك سوى إزالة المثيل من main.tf وتطبيق التغييرات.

provider "google" {
  project = "PROJECT_ID"
}
$ terraform apply
# ...
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

بعد نجاح الإجراء، سيتم حذف المثيل نهائيًا.

8. تهانينا!

لقد أنشأت موارد Cloud Spanner وعدّلتها وحذفها باستخدام Terraform.

المواضيع التي تناولناها

  • كيفية استخدام موفر خدمة Google Cloud Terraform.
  • استخدام Terraform لإنشاء مثيلات وقواعد بيانات Cloud Spanner.
  • استخدام Terraform لتعديل موارد Cloud Spanner.
  • استخدام Terraform لحذف موارد Cloud Spanner.

مزيد من المعلومات