एंटरप्राइज GCP डिप्लॉयमेंट गाइड - Energent.ai

2025-05-28

Energent.ai एआई-संचालित वर्चुअल डेस्कटॉप एजेंट्स प्रदान करता है जो एंटरप्राइज उपयोगकर्ताओं के लिए जटिल मल्टी-एप्लिकेशन वर्कफ़्लोज़ को स्वचालित करते हैं। यह गाइड GKE, मल्टी-टेनेंट डिज़ाइन और एंटरप्राइज-ग्रेड सुरक्षा नियंत्रणों के साथ आधुनिक क्लाउड-नेटिव आर्किटेक्चर का उपयोग करके Google क्लाउड प्लेटफ़ॉर्म डिप्लॉयमेंट विनिर्देश प्रदान करता है।

  • दस्तावेज़ वर्गीकरण: सार्वजनिक
  • संस्करण: 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 क्लाउड प्लेटफ़ॉर्म पर एक आधुनिक, स्केलेबल आर्किटेक्चर का उपयोग करके तैनात होता है जो कुबेरनेट्स ऑर्केस्ट्रेशन को सर्वरलेस घटकों के साथ जोड़ता है ताकि इष्टतम प्रदर्शन और लागत दक्षता प्राप्त हो सके।

┌──────────────────────────────────────────────────────────────────┐
│                        GCP क्लाउड पर्यावरण                     │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐   │
│  │   GKE क्लस्टर   │  │   सर्वरलेस      │  │   डेटा लेयर     │   │
│  │                 │  │                 │  │                 │   │
│  │ • मल्टी-टेनेंट │  │ • फंक्शन्स ऑथ  │  │ • Firestore      │   │
│  │ • n2-standard-4 │  │ • फंक्शन्स बिल │  │ • क्लाउड स्टोरेज │   │
│  │ • ऑटो-स्केलिंग │  │ • API गेटवे    │  │ • Filestore      │   │
│  │ • Flux GitOps   │  │ • Pub/Sub       │  │ • सीक्रेट मैनजर │   │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘   │
│           │                     │                    │           │
│           └─────────────────────┼────────────────────┘           │
│                                 │                                │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                    VPC सुरक्षा सीमा                         │ │
│  │  • प्राइवेट सबनेट्स • क्लाउड NAT    • फ़ायरवॉल नियम         │ │
│  │  • IAP टनल्स      • VPC एंडपॉइंट्स • लोड बैलेंसर          │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

1.2 डिप्लॉयमेंट मॉडल्स

मॉडलविवरणउपयोग मामलाSLA
मल्टी-टेनेंट GKEनेमस्पेस आइसोलेशन के साथ साझा क्लस्टरमानक एंटरप्राइज डिप्लॉयमेंट99.9%
डेडिकेटेड GKEसिंगल-टेनेंट क्लस्टरउच्च-सुरक्षा, नियामक अनुपालन99.95%
हाइब्रिड डिप्लॉयमेंटGKE + ग्राहक ऑन-प्रिमाइसेस इंटीग्रेशनलेगेसी सिस्टम इंटीग्रेशन99.9%

2. GCP इंफ्रास्ट्रक्चर आवश्यकताएँ

2.1 न्यूनतम इंफ्रास्ट्रक्चर विनिर्देश

घटकविनिर्देशउद्देश्य
GKE क्लस्टर संस्करण1.30+कुबेरनेट्स ऑर्केस्ट्रेशन
नोड पूल इंस्टेंस प्रकारn2-standard-4 (4 vCPU, 16 GB RAM)कंप्यूट-ऑप्टिमाइज़्ड वर्कलोड्स
न्यूनतम नोड कॉन्फ़िगरेशन1 vCPU, 2 GB RAM प्रति टेनेंटसंसाधन आवंटन
पर्सिस्टेंट डिस्क्स100 GB SSD, एन्क्रिप्टेडपॉड पर्सिस्टेंट स्टोरेज
Filestoreबेसिक, एन्क्रिप्टेडसाझा फाइल सिस्टम
क्लाउड स्टोरेजमानक, वर्शनिंग सक्षमऑब्जेक्ट स्टोरेज
Firestoreनेटिव मोड, एन्क्रिप्शन एट रेस्टमेटाडेटा और कॉन्फ़िगरेशन

2.2 GCP सेवा निर्भरताएँ

सेवाउद्देश्यकॉन्फ़िगरेशन
Google GKEकुबेरनेट्स ऑर्केस्ट्रेशनप्राइवेट क्लस्टर, लॉगिंग सक्षम
कंप्यूट इंजनडायनामिक नोड स्केलिंगऑटो-स्केलिंग, प्रीएम्प्टिबल इंस्टेंस
क्लाउड लोड बैलेंसिंगट्रैफिक वितरणSSL टर्मिनेशन, क्लाउड आर्मर
क्लाउड फंक्शन्ससर्वरलेस फंक्शन्सरनटाइम: Python 3.11, VPC कनेक्टर
API गेटवेAPI प्रबंधनरेट लिमिटिंग, प्रमाणीकरण
क्लाउड मॉनिटरिंगमॉनिटरिंग और लॉगिंगGKE मॉनिटरिंग, कस्टम मेट्रिक्स
सीक्रेट मैनेजरसीक्रेट्स प्रबंधनऑटोमैटिक रोटेशन, एन्क्रिप्शन
क्लाउड 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 मल्टी-टेनेंट संसाधन आवंटन

टेनेंट टियरCPU सीमामेमोरी सीमास्टोरेजसमवर्ती वर्कफ़्लोज़
बेसिक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 दिन
  }

  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 फायरस्टोर कॉन्फ़िगरेशन

# मेटाडेटा और कॉन्फ़िगरेशन के लिए फायरस्टोर डेटाबेस
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"
}

# फायरस्टोर सुरक्षा नियम
resource "google_firestore_database" "security_rules" {
  depends_on = [google_firestore_database.energent_metadata]

  # सुरक्षा नियमों की सामग्री यहां परिभाषित की जाएगी
  # टेनेंट आइसोलेशन और एक्सेस कंट्रोल लागू करना
}

4.1.3 फाइलस्टोर साझा स्टोरेज

# साझा फ़ाइल सिस्टम के लिए फाइलस्टोर
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 एपीआई गेटवे कॉन्फ़िगरेशन

# सर्वरलेस फ़ंक्शन्स के लिए एपीआई गेटवे
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 वीपीसी कॉन्फ़िगरेशन

# वीपीसी नेटवर्क और फ़ायरवॉल नियम
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एपीआई एक्सेस
इनबाउंडTCP1024-6553510.0.0.0/8आंतरिक ट्रैफ़िक
आउटबाउंडHTTPS4430.0.0.0/0बाहरी एपीआई कॉल
आउटबाउंडTCP530.0.0.0/0DNS समाधान

6.2 एन्क्रिप्शन मानक

डेटा स्थितिएन्क्रिप्शन विधिकुंजी प्रबंधनअनुपालन
स्थिरAES-256-GCMक्लाउड KMS ऑटो-रोटेशन के साथSOC 2, FIPS 140-2 स्तर 3
स्थानांतरण मेंTLS 1.3गूगल-प्रबंधित प्रमाणपत्रSOC 2, PCI DSS
मेमोरी मेंएप्लिकेशन-स्तरीयहार्डवेयर सुरक्षा मॉड्यूलSOC 2
बैकअपAES-256क्रॉस-क्षेत्र क्लाउड KMSSOC 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 वीपीसी डिज़ाइन

┌─────────────────────────────────────────────────────────────────┐
│                         वीपीसी (10.0.0.0/16)                   │
│                                                                 │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │  सार्वजनिक सबनेट │    │  सार्वजनिक सबनेट │    │ सार्वजनिक सब │  │
│  │   (10.0.1.0/24) │    │   (10.0.2.0/24) │    │(10.0.3.0/24)│  │
│  │                 │    │                 │    │             │  │
│  │   क्लाउड NAT     │    │   क्लाउड NAT     │    │ क्लाउड NAT   │  │
│  │   लोड बैलेंसर   │    │   लोड बैलेंसर   │    │लोड बैलेंसर  │  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ निजी सबनेट      │    │ निजी सबनेट      │    │निजी सबनेट   │  │
│  │  (10.1.0.0/16)  │    │  (10.1.0.0/16)  │    │(10.1.0.0/16)│  │
│  │                 │    │                 │    │             │  │
│  │  जीकेई नोड्स     │    │  जीकेई नोड्स     │    │ जीकेई नोड्स  │  │
│  │  फंक्शन्स वीपीसी │    │  फंक्शन्स वीपीसी │    │ फंक्शन्स    │  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ सेवाएं सबनेट    │    │ सेवाएं सबनेट    │    │सेवाएं सबनेट │  │
│  │  (10.2.0.0/16)  │    │  (10.2.0.0/16)  │    │(10.2.0.0/16)│  │
│  │                 │    │                 │    │             │  │
│  │   फायरस्टोर     │    │   फायरस्टोर     │    │ फायरस्टोर    │  │
│  │   क्लाउड स्टोरेज │    │   क्लाउड स्टोरेज │    │क्लाउड स्टोरेज│  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
└─────────────────────────────────────────────────────────────────┘

7.2 निजी सेवा कनेक्शन

सेवाप्रकारउद्देश्य
क्लाउड स्टोरेजनिजी एंडपॉइंटऑब्जेक्ट स्टोरेज एक्सेस
फायरस्टोरनिजी एंडपॉइंटमेटाडेटा एक्सेस
जीकेईनिजी क्लस्टरक्लस्टर एपीआई एक्सेस
कंटेनर रजिस्ट्रीनिजी एंडपॉइंटकंटेनर रजिस्ट्री
क्लाउड मॉनिटरिंगनिजी एंडपॉइंटमॉनिटरिंग और लॉगिंग
सीक्रेट मैनेजरनिजी एंडपॉइंटसीक्रेट्स एक्सेस

8. सीआई/सीडी पाइपलाइन

8.1 कोड के रूप में इंफ्रास्ट्रक्चर (टेरेफॉर्म)

8.1.1 टेरेफॉर्म संरचना

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

8.1.2 टेरेफॉर्म पाइपलाइन (क्लाउड बिल्ड)

# cloudbuild.yaml
steps:
  # टेरेफॉर्म इनिट
  - name: 'hashicorp/terraform:1.6.0'
    entrypoint: 'sh'
    args:
      - '-c'
      - |
        cd terraform/environments/${_ENVIRONMENT}
        terraform init -backend-config="bucket=${_TF_STATE_BUCKET}"

  # टेरेफॉर्म प्लान
  - name: 'hashicorp/terraform:1.6.0'
    entrypoint: 'sh'
    args:
      - '-c'
      - |
        cd terraform/environments/${_ENVIRONMENT}
        terraform plan -var-file="${_ENVIRONMENT}.tfvars" -out=tfplan

  # टेरेफॉर्म अप्लाई (केवल मुख्य शाखा पर)
  - 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 "गैर-मुख्य शाखा के लिए अप्लाई छोड़ दिया गया"
        fi

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

options:
  logging: CLOUD_LOGGING_ONLY
  machineType: 'E2_HIGHCPU_8'

timeout: 1200s

8.2 कुबेरनेट्स गिटऑप्स (फ्लक्स)

8.2.1 फ्लक्स कॉन्फ़िगरेशन

# 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 सर्वरलेस परिनियोजन (क्लाउड बिल्ड)

8.3.1 फंक्शन परिनियोजन कॉन्फ़िगरेशन

# cloudbuild-functions.yaml
steps:
  # ऑथ फंक्शन परिनियोजन
  - 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}

  # बिलिंग फंक्शन परिनियोजन
  - 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 क्लाउड मॉनिटरिंग कॉन्फ़िगरेशन

9.1.1 जीकेई मॉनिटरिंग

# जीकेई के लिए क्लाउड मॉनिटरिंग
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\""
                  }
                }
              }]
            }
          }
        }
      ]
    }
  })
}

# लॉग-आधारित मेट्रिक्स
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
संसाधन उपयोगसीपीयू, मेमोरी, स्टोरेज< 80%> 90%
त्रुटि दरें4xx, 5xx त्रुटियां< 1%> 5%

9.3 ऑडिट लॉगिंग

# क्लाउड ऑडिट लॉग्स कॉन्फ़िगरेशन
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"
  }
}

# सुरक्षा घटनाओं के लिए लॉग सिंक
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 दिनइंफ्रास्ट्रक्चर योजना, सुरक्षा समीक्षाग्राहक आईटी, सुरक्षा, एनर्जेंट सॉल्यूशंस
इंफ्रास्ट्रक्चर1-2 दिनटेरेफॉर्म परिनियोजन, वीपीसी सेटअपग्राहक देवऑप्स, एनर्जेंट प्लेटफॉर्म
जीकेई क्लस्टर0.5 दिनक्लस्टर प्रावधान, नोड पूल्सग्राहक देवऑप्स, एनर्जेंट प्लेटफॉर्म
एप्लिकेशन0.5 दिनफ्लक्स परिनियोजन, एप्लिकेशन रोलआउटएनर्जेंट प्लेटफॉर्म टीम
इंटीग्रेशन1-2 दिनआईएएम, मॉनिटरिंग, परीक्षणग्राहक आईटी, एनर्जेंट समर्थन
गो-लाइव0.5 दिनप्रोडक्शन कटओवर, सत्यापनसभी हितधारक

10.2 परिनियोजन कमांड्स

10.2.1 इंफ्रास्ट्रक्चर परिनियोजन

# टेरेफॉर्म के साथ इंफ्रास्ट्रक्चर परिनियोजन
cd terraform/environments/production
terraform init -backend-config="bucket=energent-terraform-state"
terraform plan -var-file="production.tfvars"
terraform apply -auto-approve

# जीकेई क्लस्टर सत्यापित करें
gcloud container clusters get-credentials energent-production --region us-central1
kubectl get nodes

10.2.2 एप्लिकेशन परिनियोजन

# फ्लक्स गिटऑप्स इंस्टॉल करें
flux bootstrap github \
  --owner=energent-ai \
  --repository=k8s-manifests \
  --branch=main \
  --path=./clusters/production

# सर्वरलेस घटक परिनियोजित करें
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 क्लस्टर स्थितिदैनिक30 दिन< 4 घंटे< 24 घंटे
एप्लिकेशन डेटारीयल-टाइम90 दिन< 1 घंटा< 15 मिनट
कॉन्फ़िगरेशनपरिवर्तन पर1 वर्ष< 30 मिनट0
ऑडिट लॉग्सरीयल-टाइम7 वर्ष< 24 घंटे0

11.1.2 आपदा पुनर्प्राप्ति प्रक्रियाएँ

# Velero का उपयोग करके GKE क्लस्टर बैकअप
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 ऑटो-स्केलिंग कॉन्फ़िगरेशन

# क्षैतिज पॉड ऑटोस्केलर
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 क्लस्टर अपडेट
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 24/7 समर्थन कवरेज

एंटरप्राइज़ समर्थन:

आपातकालीन वृद्धि:

12.3 सेवा स्तर समझौते

सेवाSLAदंड
प्लेटफ़ॉर्म उपलब्धता99.9% अपटाइम10% मासिक क्रेडिट प्रति 0.1% कमी
प्रतिक्रिया समय (P95)< 2 सेकंड5% मासिक क्रेडिट यदि > 5 सेकंड
समर्थन प्रतिक्रियाऊपर दिए गए स्तर के अनुसारअगले स्तर तक वृद्धि
डेटा पुनर्प्राप्तिRTO < 4 घंटे25% मासिक क्रेडिट यदि अधिक हो

परिशिष्ट

परिशिष्ट A: GCP सेवा लागत

सेवाअनुमानित मासिक लागतस्केलिंग फैक्टर
GKE क्लस्टर$75प्रति क्लस्टर निश्चित
Compute Engine (3x n2-standard-4)$850प्रति नोड रैखिक
स्थायी डिस्क (300GB)$60प्रति GB रैखिक
क्लाउड स्टोरेज (1TB)$20प्रति GB रैखिक
Firestore$120उपयोग आधारित
क्लाउड फ़ंक्शन्स$35अनुरोध आधारित
कुल आधार लागत~$1,160/माह100 किरायेदारों के लिए

परिशिष्ट B: सुरक्षा अनुपालन चेकलिस्ट

  • निजी सबनेट के साथ VPC तैनात
  • न्यूनतम विशेषाधिकार पहुँच के साथ फ़ायरवॉल नियम
  • सभी स्थिर डेटा के लिए Cloud KMS एन्क्रिप्शन
  • सभी ट्रांज़िट डेटा के लिए TLS 1.3
  • न्यूनतम अनुमतियों के साथ IAM
  • क्लाउड ऑडिट लॉग्स सक्षम
  • सुरक्षा कमांड सेंटर सक्षम
  • संगठन नीति बाधाएँ सक्षम
  • सभी क्रेडेंशियल्स के लिए सीक्रेट मैनेजर
  • नियमित सुरक्षा स्कैन और आकलन

परिशिष्ट C: समस्या निवारण गाइड

सामान्य समस्याएँ:

  1. GKE नोड्स क्लस्टर में शामिल नहीं हो रहे हैं

    • सेवा खाता अनुमतियों की पुष्टि करें
    • सबनेट रूटिंग और Cloud NAT की जाँच करें
  2. एप्लिकेशन पॉड्स क्रैशलूपिंग

    • संसाधन सीमाएँ और अनुरोधों की जाँच करें
    • स्थायी वॉल्यूम क्लेम्स की पुष्टि करें
  3. नेटवर्क कनेक्टिविटी समस्याएँ

    • VPC कनेक्टर कॉन्फ़िगरेशन की पुष्टि करें
    • फ़ायरवॉल नियमों की जाँच करें

  • दस्तावेज़ वर्गीकरण: सार्वजनिक
  • संस्करण: 3.0
  • अंतिम अद्यतन: 2025-05-28
  • अगली समीक्षा: 2025-08-28
  • संपर्क: support@energent.ai

आइए बात करें!

कार्यालय:

अबू धाबी कार्यालय:

अल खातेम टॉवर, अल मरिया द्वीप, अबू धाबी

सिलिकॉन वैली कार्यालय:

3101 पार्क ब्लाव्ड। पालो ऑल्टो, सीए