دليل نشر GCP للمؤسسات - Energent.ai

تقدم Energent.ai وكلاء سطح مكتب افتراضي مدعومين بالذكاء الاصطناعي يقومون بأتمتة سير العمل المعقدة متعددة التطبيقات لمستخدمي المؤسسات. يوفر هذا الدليل مواصفات نشر شاملة لمنصة Google Cloud باستخدام هيكلية حديثة قائمة على السحابة مع GKE وتصميم متعدد المستأجرين وعناصر تحكم أمان على مستوى المؤسسات.

  • تصنيف الوثيقة: عام
  • الإصدار: 3.0
  • آخر تحديث: 2025-05-28
  • الهيكلية: GCP GKE + هجينة بدون خادم
  • التوافق: SOC 2، أفضل ممارسات أمان Google Cloud

جدول المحتويات

  1. نظرة عامة على الهيكلية
  2. متطلبات البنية التحتية لـ GCP
  3. مواصفات مجموعة GKE
  4. هيكلية طبقة البيانات
  5. المكونات بدون خادم
  6. الأمان والتوافق
  7. هيكلية الشبكة
  8. خط أنابيب CI/CD
  9. المراقبة والملاحظة
  10. عملية النشر
  11. العمليات والصيانة
  12. الدعم والتصعيد

1. نظرة عامة على الهيكلية

1.1 هيكلية متعددة المستأجرين قائمة على السحابة

تُستخدم Energent.ai على منصة Google Cloud باستخدام هيكلية حديثة وقابلة للتوسع تجمع بين تنظيم Kubernetes والمكونات بدون خادم لتحقيق الأداء الأمثل وكفاءة التكلفة.

┌──────────────────────────────────────────────────────────────────┐
│                        بيئة سحابة GCP                           │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐   │
│  │   مجموعة GKE    │  │   بدون خادم     │  │   طبقة البيانات │   │
│  │                 │  │                 │  │                 │   │
│  │ • متعدد المستأجرين │  │ • وظائف المصادقة │  │ • Firestore     │   │
│  │ • n2-standard-4 │  │ • وظائف الفوترة │  │ • تخزين السحابة │   │
│  │ • التوسع التلقائي │  │ • بوابة API    │  │ • Filestore     │   │
│  │ • Flux GitOps   │  │ • Pub/Sub       │  │ • مدير الأسرار  │   │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘   │
│           │                     │                    │           │
│           └─────────────────────┼────────────────────┘           │
│                                 │                                │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                    حدود أمان VPC                            │ │
│  │  • الشبكات الخاصة • Cloud NAT    • قواعد الجدار الناري      │ │
│  │  • أنفاق IAP     • نقاط نهاية VPC • موازن التحميل          │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

1.2 نماذج النشر

النموذجالوصفحالة الاستخدامSLA
GKE متعدد المستأجرينمجموعة مشتركة مع عزل المساحاتنشر المؤسسات القياسي99.9%
GKE مخصصمجموعة مستأجر واحدأمان عالي، التوافق التنظيمي99.95%
النشر الهجينGKE + تكامل مع أنظمة العميل المحليةتكامل الأنظمة القديمة99.9%

2. متطلبات البنية التحتية لـ GCP

2.1 مواصفات البنية التحتية الدنيا

المكونالمواصفاتالغرض
إصدار مجموعة GKE1.30+تنظيم Kubernetes
نوع مثيل تجمع العقدn2-standard-4 (4 vCPU، 16 GB RAM)أعباء العمل المحسنة للحوسبة
تكوين العقدة الأدنى1 vCPU، 2 GB RAM لكل مستأجرتخصيص الموارد
الأقراص الدائمة100 GB SSD، مشفرتخزين دائم للبودات
Filestoreأساسي، مشفرنظام ملفات مشترك
تخزين السحابةقياسي، تمكين الإصدارتخزين الكائنات
Firestoreالوضع الأصلي، تشفير أثناء الراحةالبيانات الوصفية والتكوين

2.2 تبعيات خدمات GCP

الخدمةالغرضالتكوين
Google GKEتنظيم Kubernetesمجموعة خاصة، تمكين السجلات
Compute Engineالتوسع الديناميكي للعقدالتوسع التلقائي، المثيلات القابلة للإيقاف
Cloud Load Balancingتوزيع الحركةإنهاء SSL، Cloud Armor
Cloud Functionsوظائف بدون خادموقت التشغيل: Python 3.11، موصل VPC
API Gatewayإدارة APIتحديد المعدل، المصادقة
Cloud Monitoringالمراقبة والسجلاتمراقبة GKE، مقاييس مخصصة
Secret Managerإدارة الأسرارالتدوير التلقائي، التشفير
Cloud KMSإدارة المفاتيحمفاتيح مُدارة من العميل، التدوير التلقائي

3. مواصفات مجموعة GKE

3.1 تكوين المجموعة

# تكوين مجموعة GKE باستخدام Terraform
resource "google_container_cluster" "energent_cluster" {
name     = "energent-production"
location = var.gcp_region

remove_default_node_pool = true
initial_node_count       = 1

network    = google_compute_network.vpc.name
subnetwork = google_compute_subnetwork.subnet.name

networking_mode = "VPC_NATIVE"
ip_allocation_policy {
cluster_secondary_range_name  = "k8s-pod-range"
services_secondary_range_name = "k8s-service-range"
}

private_cluster_config {
enable_private_nodes    = true
enable_private_endpoint = false
master_ipv4_cidr_block  = "172.16.0.0/28"
}

master_auth {
client_certificate_config {
issue_client_certificate = false
}
}

workload_identity_config {
workload_pool = "${var.project_id}.svc.id.goog"
}

addons_config {
gcp_filestore_csi_driver_config {
enabled = true
}

network_policy_config {
disabled = false
}
}

cluster_telemetry {
type = "ENABLED"
}

logging_config {
enable_components = [
"SYSTEM_COMPONENTS",
"WORKLOADS",
"API_SERVER"
]
}

monitoring_config {
enable_components = [
"SYSTEM_COMPONENTS",
"WORKLOADS"
]
}
}

3.2 تكوين تجمع العقد

# تجمع العقد الأساسي
resource "google_container_node_pool" "energent_nodes" {
name       = "energent-node-pool"
location   = var.gcp_region
cluster    = google_container_cluster.energent_cluster.name
node_count = 3

autoscaling {
min_node_count = 2
max_node_count = 20
}

node_config {
preemptible  = false
machine_type = "n2-standard-4"
disk_size_gb = 100
disk_type    = "pd-ssd"

service_account = google_service_account.gke_service_account.email
oauth_scopes = [
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring",
"https://www.googleapis.com/auth/cloud-platform"
]

workload_metadata_config {
mode = "GKE_METADATA"
}

labels = {
env = "production"
app = "energent-ai"
}

taint {
key    = "workload"
value  = "energent-ai"
effect = "NO_SCHEDULE"
}
}

management {
auto_repair  = true
auto_upgrade = true
}
}

3.3 تخصيص الموارد متعددة المستأجرين

مستوى المستأجرحد وحدة المعالجة المركزيةحد الذاكرةالتخزينسير العمل المتزامن
أساسي1 vCPU2 GB10 GB1
قياسي2 vCPU4 GB25 GB2
متميز4 vCPU8 GB50 GB4
مؤسسات8 vCPU16 GB100 GB8

4. هيكلية طبقة البيانات

4.1 هيكلية التخزين

4.1.1 تكوين تخزين السحابة


# تخزين سحابي دلو لتخزين الكائنات
resource "google_storage_bucket" "energent_storage" {
  name     = "energent-${var.environment}-storage-${random_id.bucket_suffix.hex}"
  location = var.gcp_region

  uniform_bucket_level_access = true

  versioning {
    enabled = true
  }

  encryption {
    default_kms_key_name = google_kms_crypto_key.storage_key.id
  }

  lifecycle_rule {
    condition {
      age = 90
    }
    action {
      type          = "SetStorageClass"
      storage_class = "NEARLINE"
    }
  }

  retention_policy {
    retention_period = 2592000  # 30 days
  }

  labels = {
    environment = var.environment
    purpose     = "energent-object-storage"
  }
}

resource "google_storage_bucket_iam_member" "storage_admin" {
  bucket = google_storage_bucket.energent_storage.name
  role   = "roles/storage.admin"
  member = "serviceAccount:${google_service_account.gke_service_account.email}"
}

4.1.2 تكوين Firestore

# قاعدة بيانات Firestore للبيانات الوصفية والتكوين
resource "google_firestore_database" "energent_metadata" {
  project     = var.project_id
  name        = "energent-metadata-${var.environment}"
  location_id = var.gcp_region
  type        = "FIRESTORE_NATIVE"

  concurrency_mode = "OPTIMISTIC"
  app_engine_integration_mode = "DISABLED"

  point_in_time_recovery_enablement = "POINT_IN_TIME_RECOVERY_ENABLED"
  delete_protection_state = "DELETE_PROTECTION_ENABLED"
}

# قواعد أمان Firestore
resource "google_firestore_database" "security_rules" {
  depends_on = [google_firestore_database.energent_metadata]

  # سيتم تعريف محتوى قواعد الأمان هنا
  # تنفيذ عزل المستأجر وضوابط الوصول
}

4.1.3 تخزين Filestore المشترك

# Filestore لنظام الملفات المشترك
resource "google_filestore_instance" "energent_shared" {
name     = "energent-shared-${var.environment}"
location = var.gcp_zone
tier     = "BASIC_HDD"

file_shares {
capacity_gb = 1024
name        = "energent-share"
}

networks {
network = google_compute_network.vpc.name
modes   = ["MODE_IPV4"]
}

labels = {
environment = var.environment
purpose     = "shared-storage"
}
}

5. المكونات بدون خادم

5.1 وظائف السحابة

5.1.1 خدمة المصادقة

# وظيفة السحابة للمصادقة
resource "google_cloudfunctions2_function" "auth_service" {
name     = "energent-auth-${var.environment}"
location = var.gcp_region

build_config {
runtime     = "python311"
entry_point = "auth_handler"
source {
storage_source {
bucket = google_storage_bucket.functions_source.name
object = google_storage_bucket_object.auth_source.name
}
}
}

service_config {
max_instance_count = 100
min_instance_count = 1
available_memory   = "512Mi"
timeout_seconds    = 60

environment_variables = {
FIRESTORE_PROJECT = var.project_id
SECRET_MANAGER_PROJECT = var.project_id
ENVIRONMENT = var.environment
}

vpc_connector = google_vpc_access_connector.connector.id
vpc_connector_egress_settings = "ALL_TRAFFIC"

service_account_email = google_service_account.functions_service_account.email
}

event_trigger {
trigger_region = var.gcp_region
event_type     = "google.cloud.pubsub.topic.v1.messagePublished"
pubsub_topic   = google_pubsub_topic.auth_events.id
}

labels = {
environment = var.environment
service     = "authentication"
}
}

5.1.2 خدمة الفوترة

# وظيفة السحابة للفوترة
resource "google_cloudfunctions2_function" "billing_service" {
name     = "energent-billing-${var.environment}"
location = var.gcp_region

build_config {
runtime     = "python311"
entry_point = "billing_handler"
source {
storage_source {
bucket = google_storage_bucket.functions_source.name
object = google_storage_bucket_object.billing_source.name
}
}
}

service_config {
max_instance_count = 50
min_instance_count = 0
available_memory   = "1Gi"
timeout_seconds    = 300

environment_variables = {
FIRESTORE_PROJECT = var.project_id
STORAGE_BUCKET = google_storage_bucket.energent_storage.name
}

service_account_email = google_service_account.functions_service_account.email
}
}

5.2 تكوين بوابة API

# بوابة API لوظائف بدون خادم
resource "google_api_gateway_api" "energent_api" {
provider = google-beta
api_id   = "energent-api-${var.environment}"
project  = var.project_id

labels = {
environment = var.environment
service     = "api-gateway"
}
}

resource "google_api_gateway_api_config" "energent_api_config" {
provider      = google-beta
api           = google_api_gateway_api.energent_api.api_id
api_config_id = "energent-config-${var.environment}"
project       = var.project_id

openapi_documents {
document {
path     = "spec.yaml"
contents = base64encode(templatefile("${path.module}/api-spec.yaml", {
project_id = var.project_id
region     = var.gcp_region
}))
}
}

lifecycle {
create_before_destroy = true
}
}

resource "google_api_gateway_gateway" "energent_gateway" {
provider   = google-beta
gateway_id = "energent-gateway-${var.environment}"
api_config = google_api_gateway_api_config.energent_api_config.id
location   = var.gcp_region
project    = var.project_id

labels = {
environment = var.environment
service     = "api-gateway"
}
}

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

6.1 أمان الشبكة

6.1.1 تكوين VPC

# شبكة VPC وقواعد الجدار الناري
resource "google_compute_network" "vpc" {
name                    = "energent-vpc-${var.environment}"
auto_create_subnetworks = false
mtu                     = 1460
}

resource "google_compute_subnetwork" "subnet" {
name          = "energent-subnet-${var.environment}"
ip_cidr_range = "10.0.0.0/16"
region        = var.gcp_region
network       = google_compute_network.vpc.id

secondary_ip_range {
range_name    = "k8s-pod-range"
ip_cidr_range = "10.1.0.0/16"
}

secondary_ip_range {
range_name    = "k8s-service-range"
ip_cidr_range = "10.2.0.0/16"
}

private_ip_google_access = true
}

resource "google_compute_firewall" "allow_internal" {
name    = "energent-allow-internal"
network = google_compute_network.vpc.name

allow {
protocol = "tcp"
ports    = ["0-65535"]
}

allow {
protocol = "udp"
ports    = ["0-65535"]
}

allow {
protocol = "icmp"
}

source_ranges = ["10.0.0.0/8"]
}

resource "google_compute_firewall" "allow_https" {
name    = "energent-allow-https"
network = google_compute_network.vpc.name

allow {
protocol = "tcp"
ports    = ["443"]
}

source_ranges = ["0.0.0.0/0"]
target_tags   = ["https-server"]
}

6.1.2 قواعد الجدار الناري

الاتجاهالبروتوكولنطاق المنافذالمصدر/الوجهةالغرض
واردHTTPS4430.0.0.0/0الوصول إلى API
واردTCP1024-6553510.0.0.0/8حركة المرور الداخلية
صادرHTTPS4430.0.0.0/0استدعاءات API الخارجية
صادرTCP530.0.0.0/0حل DNS

6.2 معايير التشفير

حالة البياناتطريقة التشفيرإدارة المفاتيحالامتثال
في الراحةAES-256-GCMCloud KMS مع التدوير التلقائيSOC 2، FIPS 140-2 المستوى 3
في النقلTLS 1.3شهادات مُدارة من GoogleSOC 2، PCI DSS
في الذاكرةعلى مستوى التطبيقوحدة أمان الأجهزةSOC 2
النسخ الاحتياطيAES-256Cloud KMS عبر المناطقSOC 2، GDPR

6.3 IAM وحسابات الخدمة

6.3.1 حسابات خدمة GKE

# حساب خدمة GKE
resource "google_service_account" "gke_service_account" {
  account_id   = "energent-gke-${var.environment}"
  display_name = "Energent GKE Service Account"
  project      = var.project_id
}

resource "google_project_iam_member" "gke_permissions" {
  for_each = toset([
    "roles/logging.logWriter",
    "roles/monitoring.metricWriter",
    "roles/monitoring.viewer",
    "roles/storage.objectViewer"
  ])

  project = var.project_id
  role    = each.value
  member  = "serviceAccount:${google_service_account.gke_service_account.email}"
}

# ربط هوية عبء العمل
resource "google_service_account_iam_member" "workload_identity" {
  service_account_id = google_service_account.gke_service_account.name
  role               = "roles/iam.workloadIdentityUser"
  member             = "serviceAccount:${var.project_id}.svc.id.goog[energent-ai/energent-platform]"
}

7. هندسة الشبكة

7.1 تصميم VPC

┌─────────────────────────────────────────────────────────────────┐
│                         VPC (10.0.0.0/16)                       │
│                                                                 │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │  Public Subnet  │    │  Public Subnet  │    │ Public Sub  │  │
│  │   (10.0.1.0/24) │    │   (10.0.2.0/24) │    │(10.0.3.0/24)│  │
│  │                 │    │                 │    │             │  │
│  │   Cloud NAT     │    │   Cloud NAT     │    │ Cloud NAT   │  │
│  │   Load Balancer │    │   Load Balancer │    │Load Balancer│  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Private Subnet  │    │ Private Subnet  │    │Private Sub  │  │
│  │  (10.1.0.0/16)  │    │  (10.1.0.0/16)  │    │(10.1.0.0/16)│  │
│  │                 │    │                 │    │             │  │
│  │  GKE Nodes      │    │  GKE Nodes      │    │ GKE Nodes   │  │
│  │  Functions VPC  │    │  Functions VPC  │    │ Functions   │  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Services Subnet │    │ Services Subnet │    │Services Sub │  │
│  │  (10.2.0.0/16)  │    │  (10.2.0.0/16)  │    │(10.2.0.0/16)│  │
│  │                 │    │                 │    │             │  │
│  │   Firestore     │    │   Firestore     │    │ Firestore   │  │
│  │   Cloud Storage │    │   Cloud Storage │    │Cloud Storage│  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
└─────────────────────────────────────────────────────────────────┘

7.2 اتصالات الخدمة الخاصة

الخدمةالنوعالغرض
Cloud Storageنقطة نهاية خاصةالوصول إلى تخزين الكائنات
Firestoreنقطة نهاية خاصةالوصول إلى البيانات الوصفية
GKEعنقود خاصالوصول إلى واجهة برمجة التطبيقات للعنقود
Container Registryنقطة نهاية خاصةسجل الحاويات
Cloud Monitoringنقطة نهاية خاصةالمراقبة وتسجيل الأحداث
Secret Managerنقطة نهاية خاصةالوصول إلى الأسرار

8. خط أنابيب CI/CD

8.1 البنية التحتية ككود (Terraform)

8.1.1 هيكل Terraform

terraform/
├── environments/
│   ├── dev/
│   ├── staging/
│   └── production/
├── modules/
│   ├── gke/
│   ├── networking/
│   ├── security/
│   └── storage/
├── shared/
│   └── backend.tf
└── global/
    └── iam.tf

8.1.2 خط أنابيب Terraform (Cloud Build)

# cloudbuild.yaml
steps:
  # Terraform Init
  - name: 'hashicorp/terraform:1.6.0'
    entrypoint: 'sh'
    args:
      - '-c'
      - |
        cd terraform/environments/${_ENVIRONMENT}
        terraform init -backend-config="bucket=${_TF_STATE_BUCKET}"

  # Terraform Plan
  - name: 'hashicorp/terraform:1.6.0'
    entrypoint: 'sh'
    args:
      - '-c'
      - |
        cd terraform/environments/${_ENVIRONMENT}
        terraform plan -var-file="${_ENVIRONMENT}.tfvars" -out=tfplan

  # Terraform Apply (only on main branch)
  - name: 'hashicorp/terraform:1.6.0'
    entrypoint: 'sh'
    args:
      - '-c'
      - |
        if [ "${BRANCH_NAME}" = "main" ]; then
          cd terraform/environments/${_ENVIRONMENT}
          terraform apply -auto-approve tfplan
        else
          echo "Skipping apply for non-main branch"
        fi

substitutions:
  _ENVIRONMENT: 'production'
  _TF_STATE_BUCKET: 'energent-terraform-state'

options:
  logging: CLOUD_LOGGING_ONLY
  machineType: 'E2_HIGHCPU_8'

timeout: 1200s

8.2 Kubernetes GitOps (Flux)

8.2.1 إعداد Flux

# flux-system/gotk-sync.yaml
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
  name: energent-k8s
  namespace: flux-system
spec:
  interval: 1m
  ref:
    branch: main
  url: https://github.com/energent-ai/k8s-manifests
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
  name: energent-apps
  namespace: flux-system
spec:
  interval: 10m
  path: './apps'
  prune: true
  sourceRef:
    kind: GitRepository
    name: energent-k8s
  validation: client

8.3 النشر بدون خوادم (Cloud Build)

8.3.1 إعداد نشر الوظائف

# cloudbuild-functions.yaml
steps:
  # Deploy Auth Function
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:latest'
    entrypoint: 'bash'
    args:
      - '-c'
      - |
        cd functions/auth
        gcloud functions deploy energent-auth-${_ENVIRONMENT} \
          --runtime python311 \
          --trigger-http \
          --entry-point auth_handler \
          --memory 512MB \
          --timeout 60s \
          --region ${_REGION} \
          --vpc-connector ${_VPC_CONNECTOR} \
          --set-env-vars ENVIRONMENT=${_ENVIRONMENT}

  # Deploy Billing Function
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:latest'
    entrypoint: 'bash'
    args:
      - '-c'
      - |
        cd functions/billing
        gcloud functions deploy energent-billing-${_ENVIRONMENT} \
          --runtime python311 \
          --trigger-topic billing-events \
          --entry-point billing_handler \
          --memory 1024MB \
          --timeout 300s \
          --region ${_REGION}

substitutions:
  _ENVIRONMENT: 'production'
  _REGION: 'us-central1'
  _VPC_CONNECTOR: 'energent-vpc-connector'

options:
  logging: CLOUD_LOGGING_ONLY

9. المراقبة والقابلية للملاحظة

9.1 إعداد Cloud Monitoring

9.1.1 مراقبة GKE

# Cloud Monitoring for GKE
resource "google_monitoring_dashboard" "gke_dashboard" {
  dashboard_json = jsonencode({
    displayName = "Energent GKE Dashboard"
    mosaicLayout = {
      tiles = [
        {
          width = 6
          height = 4
          widget = {
            title = "GKE Cluster CPU Utilization"
            xyChart = {
              dataSets = [{
                timeSeriesQuery = {
                  timeSeriesFilter = {
                    filter = "resource.type=\"k8s_cluster\" AND metric.type=\"kubernetes.io/container/cpu/core_usage_time\""
                  }
                }
              }]
            }
          }
        }
      ]
    }
  })
}

# Log-based Metrics
resource "google_logging_metric" "error_rate" {
  name   = "energent_error_rate"
  filter = "resource.type=\"k8s_container\" AND resource.labels.namespace_name=\"energent-ai\" AND severity=\"ERROR\""

  metric_descriptor {
    metric_kind = "GAUGE"
    value_type  = "INT64"
    display_name = "Energent Error Rate"
  }
}

9.2 مقاييس التطبيق

فئة المقاييسالمقاييسالهدفعتبة التنبيه
التوافروقت التشغيل، فحوصات الصحة99.9%< 99.5%
الأداءوقت الاستجابة، الإنتاجية< 2s, > 1000 RPS> 5s, < 500 RPS
استخدام المواردCPU، ذاكرة، تخزين< 80%> 90%
معدلات الأخطاءأخطاء 4xx، 5xx< 1%> 5%

9.3 تسجيل التدقيق

# Cloud Audit Logs Configuration
resource "google_project_iam_audit_config" "project_audit" {
  project = var.project_id
  service = "allServices"

  audit_log_config {
    log_type = "ADMIN_READ"
  }

  audit_log_config {
    log_type = "DATA_READ"
  }

  audit_log_config {
    log_type = "DATA_WRITE"
  }
}

# Log Sink for Security Events
resource "google_logging_project_sink" "security_sink" {
  name        = "energent-security-sink"
  destination = "storage.googleapis.com/${google_storage_bucket.audit_logs.name}"

  filter = "protoPayload.serviceName=\"container.googleapis.com\" OR protoPayload.serviceName=\"iam.googleapis.com\""

  unique_writer_identity = true
}

10. عملية النشر

10.1 الجدول الزمني للنشر

المرحلةالمدةالأنشطةأصحاب المصلحة
ما قبل النشر2-3 أيامتخطيط البنية التحتية، مراجعة الأمانفريق تكنولوجيا المعلومات، الأمان، حلول Energent
البنية التحتية1-2 أيامنشر Terraform، إعداد VPCفريق DevOps، منصة Energent
عنقود GKE0.5 يومتوفير العنقود، تجمعات العقدفريق DevOps، منصة Energent
التطبيق0.5 يومنشر Flux، طرح التطبيقفريق منصة Energent
التكامل1-2 أيامIAM، المراقبة، الاختبارفريق تكنولوجيا المعلومات، دعم Energent
الانتقال إلى الإنتاج0.5 يومالانتقال إلى الإنتاج، التحققجميع أصحاب المصلحة

10.2 أوامر النشر

10.2.1 نشر البنية التحتية

# Infrastructure Deployment with Terraform
cd terraform/environments/production
terraform init -backend-config="bucket=energent-terraform-state"
terraform plan -var-file="production.tfvars"
terraform apply -auto-approve

# Verify GKE cluster
gcloud container clusters get-credentials energent-production --region us-central1
kubectl get nodes

10.2.2 نشر التطبيق

# Install Flux GitOps
flux bootstrap github \
  --owner=energent-ai \
  --repository=k8s-manifests \
  --branch=main \
  --path=./clusters/production

# Deploy serverless components
gcloud builds submit --config cloudbuild-functions.yaml \
  --substitutions _ENVIRONMENT=production,_REGION=us-central1

# التحقق من النشر
kubectl get pods -n energent-ai
kubectl get ingress -n energent-ai

10.3 التحقق من النشر

# نقاط التحقق الصحي
curl -k https://api.energent.example.com/health
curl -k https://api.energent.example.com/metrics

# التحقق من Kubernetes
kubectl top nodes
kubectl get hpa -n energent-ai
kubectl logs -n energent-ai -l app=energent-platform

11. العمليات والصيانة

11.1 النسخ الاحتياطي واستعادة الكوارث

11.1.1 استراتيجية النسخ الاحتياطي

المكونالتكرارالاحتفاظRTORPO
حالة GKE Clusterيوميًا30 يومًا< 4 ساعات< 24 ساعة
بيانات التطبيقفي الوقت الفعلي90 يومًا< 1 ساعة< 15 دقيقة
التكوينعند التغيير1 سنة< 30 دقيقة0
سجلات التدقيقفي الوقت الفعلي7 سنوات< 24 ساعة0

11.1.2 إجراءات استعادة الكوارث

# النسخ الاحتياطي لـ GKE cluster باستخدام Velero
velero backup create energent-cluster-backup \
  --include-namespaces energent-ai \
  --storage-location gcp

# استعادة نقطة زمنية لـ Firestore
gcloud firestore databases restore \
  --source-database=energent-metadata-production \
  --destination-database=energent-metadata-restored \
  --backup-time=2025-05-28T10:00:00Z

11.2 التوسع والأداء

11.2.1 تكوين التوسع التلقائي

# Horizontal Pod Autoscaler
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: energent-platform-hpa
  namespace: energent-ai
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: energent-platform
  minReplicas: 3
  maxReplicas: 50
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 80

11.3 التحديث والصيانة

11.3.1 التحديثات التدريجية

# تحديث GKE cluster
gcloud container clusters upgrade energent-production \
  --master \
  --cluster-version 1.30 \
  --region us-central1

# تحديث تدريجي للتطبيق عبر Flux
git commit -am "Update energent-platform to v2.1.0"
git push origin main
# Flux يكتشف التغييرات ويطبقها تلقائيًا

12. الدعم والتصعيد

12.1 مستويات الدعم

المستوىوقت الاستجابةالقنواتالنطاق
L1 - أساسي< 4 ساعاتالبريد الإلكتروني، البوابةالأسئلة العامة، الوثائق
L2 - قياسي< 2 ساعاتالهاتف، البريد الإلكتروني، الاجتماعالمشكلات التقنية، دعم التكامل
L3 - مميز< 1 ساعةالهاتف، الاجتماع، الفيديوالمشكلات التقنية المعقدة، الهندسة
L4 - حرج< 30 دقيقةالهاتف، الرسائل النصية، التصعيدانقطاعات الإنتاج، الحوادث الأمنية

12.2 تغطية الدعم على مدار الساعة

دعم المؤسسات:

تصعيد الطوارئ:

12.3 اتفاقيات مستوى الخدمة

الخدمةSLAالعقوبة
توفر المنصة99.9% وقت تشغيل10% خصم شهري لكل 0.1% نقص
وقت الاستجابة (P95)< 2 ثانية5% خصم شهري إذا كان > 5 ثوانٍ
استجابة الدعمحسب المستوى أعلاهالتصعيد إلى المستوى التالي
استعادة البياناتRTO < 4 ساعات25% خصم شهري إذا تم تجاوزه

الملاحق

الملحق أ: تكاليف خدمات GCP

الخدمةالتكلفة الشهرية المقدرةعامل التوسع
GKE Cluster$75ثابت لكل مجموعة
Compute Engine (3x n2-standard-4)$850خطي لكل عقدة
Persistent Disks (300GB)$60خطي لكل GB
Cloud Storage (1TB)$20خطي لكل GB
Firestore$120حسب الاستخدام
Cloud Functions$35حسب الطلب
إجمالي التكلفة الأساسية~$1,160/شهريًالـ 100 مستأجر

الملحق ب: قائمة التحقق من الامتثال الأمني

  • تم نشر VPC مع الشبكات الفرعية الخاصة
  • قواعد الجدار الناري مع الوصول بأقل امتياز
  • تشفير Cloud KMS لجميع البيانات أثناء الراحة
  • TLS 1.3 لجميع البيانات أثناء النقل
  • IAM مع الحد الأدنى من الأذونات
  • تم تمكين سجلات التدقيق السحابية
  • تم تمكين مركز القيادة الأمنية
  • تم تمكين قيود سياسة المؤسسة
  • مدير الأسرار لجميع بيانات الاعتماد
  • الفحوصات الأمنية والتقييمات المنتظمة

الملحق ج: دليل استكشاف الأخطاء وإصلاحها

المشكلات الشائعة:

  1. عقد GKE لا تنضم إلى المجموعة

    • تحقق من أذونات حساب الخدمة
    • تحقق من توجيه الشبكة الفرعية وCloud NAT
  2. حاويات التطبيق CrashLooping

    • تحقق من حدود الموارد والطلبات
    • تحقق من مطالبات الحجم المستمر
  3. مشكلات الاتصال بالشبكة

    • تحقق من تكوين موصل VPC
    • تحقق من قواعد الجدار الناري

  • تصنيف الوثيقة: عام
  • الإصدار: 3.0
  • آخر تحديث: 2025-05-28
  • المراجعة التالية: 2025-08-28
  • الاتصال: support@energent.ai