Energent.ai एआई-संचालित वर्चुअल डेस्कटॉप एजेंट्स प्रदान करता है जो एंटरप्राइज उपयोगकर्ताओं के लिए जटिल मल्टी-एप्लिकेशन वर्कफ़्लोज़ को स्वचालित करते हैं। यह गाइड GKE, मल्टी-टेनेंट डिज़ाइन और एंटरप्राइज-ग्रेड सुरक्षा नियंत्रणों के साथ आधुनिक क्लाउड-नेटिव आर्किटेक्चर का उपयोग करके Google क्लाउड प्लेटफ़ॉर्म डिप्लॉयमेंट विनिर्देश प्रदान करता है।
- दस्तावेज़ वर्गीकरण: सार्वजनिक
- संस्करण: 3.0
- अंतिम अपडेट: 2025-05-28
- आर्किटेक्चर: GCP GKE + सर्वरलेस हाइब्रिड
- अनुपालन: SOC 2, Google Cloud सुरक्षा सर्वोत्तम प्रथाएँ
सामग्री तालिका
- आर्किटेक्चर अवलोकन
- GCP इंफ्रास्ट्रक्चर आवश्यकताएँ
- GKE क्लस्टर विनिर्देश
- डेटा लेयर आर्किटेक्चर
- सर्वरलेस घटक
- सुरक्षा और अनुपालन
- नेटवर्क आर्किटेक्चर
- CI/CD पाइपलाइन
- मॉनिटरिंग और ऑब्ज़र्वेबिलिटी
- डिप्लॉयमेंट प्रक्रिया
- संचालन और रखरखाव
- समर्थन और वृद्धि
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 vCPU | 2 GB | 10 GB | 1 |
| स्टैंडर्ड | 2 vCPU | 4 GB | 25 GB | 2 |
| प्रीमियम | 4 vCPU | 8 GB | 50 GB | 4 |
| एंटरप्राइज | 8 vCPU | 16 GB | 100 GB | 8 |
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 फ़ायरवॉल नियम
| दिशा | प्रोटोकॉल | पोर्ट रेंज | स्रोत/गंतव्य | उद्देश्य |
|---|
| इनबाउंड | HTTPS | 443 | 0.0.0.0/0 | एपीआई एक्सेस |
| इनबाउंड | TCP | 1024-65535 | 10.0.0.0/8 | आंतरिक ट्रैफ़िक |
| आउटबाउंड | HTTPS | 443 | 0.0.0.0/0 | बाहरी एपीआई कॉल |
| आउटबाउंड | TCP | 53 | 0.0.0.0/0 | DNS समाधान |
6.2 एन्क्रिप्शन मानक
| डेटा स्थिति | एन्क्रिप्शन विधि | कुंजी प्रबंधन | अनुपालन |
|---|
| स्थिर | AES-256-GCM | क्लाउड KMS ऑटो-रोटेशन के साथ | SOC 2, FIPS 140-2 स्तर 3 |
| स्थानांतरण में | TLS 1.3 | गूगल-प्रबंधित प्रमाणपत्र | SOC 2, PCI DSS |
| मेमोरी में | एप्लिकेशन-स्तरीय | हार्डवेयर सुरक्षा मॉड्यूल | SOC 2 |
| बैकअप | AES-256 | क्रॉस-क्षेत्र क्लाउड 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 वीपीसी डिज़ाइन
┌─────────────────────────────────────────────────────────────────┐
│ वीपीसी (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 बैकअप रणनीति
| घटक | आवृत्ति | प्रतिधारण | RTO | RPO |
|---|
| 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: सुरक्षा अनुपालन चेकलिस्ट
परिशिष्ट C: समस्या निवारण गाइड
सामान्य समस्याएँ:
-
GKE नोड्स क्लस्टर में शामिल नहीं हो रहे हैं
- सेवा खाता अनुमतियों की पुष्टि करें
- सबनेट रूटिंग और Cloud NAT की जाँच करें
-
एप्लिकेशन पॉड्स क्रैशलूपिंग
- संसाधन सीमाएँ और अनुरोधों की जाँच करें
- स्थायी वॉल्यूम क्लेम्स की पुष्टि करें
-
नेटवर्क कनेक्टिविटी समस्याएँ
- VPC कनेक्टर कॉन्फ़िगरेशन की पुष्टि करें
- फ़ायरवॉल नियमों की जाँच करें
- दस्तावेज़ वर्गीकरण: सार्वजनिक
- संस्करण: 3.0
- अंतिम अद्यतन: 2025-05-28
- अगली समीक्षा: 2025-08-28
- संपर्क: support@energent.ai