Kurumsal GCP Dağıtım Kılavuzu - Energent.ai

Energent.ai, kurumsal kullanıcılar için karmaşık çok uygulamalı iş akışlarını otomatikleştiren yapay zeka destekli sanal masaüstü ajanları sunar. Bu kılavuz, GKE, çok kiracılı tasarım ve kurumsal düzeyde güvenlik kontrolleri ile modern bulut tabanlı mimari kullanılarak kapsamlı Google Cloud Platform dağıtım spesifikasyonlarını sağlar.

  • Belge Sınıflandırması: Genel
  • Sürüm: 3.0
  • Son Güncelleme: 2025-05-28
  • Mimari: GCP GKE + Sunucusuz Hibrit
  • Uyumluluk: SOC 2, Google Cloud Güvenlik En İyi Uygulamaları

İçindekiler

  1. Mimari Genel Bakış
  2. GCP Altyapı Gereksinimleri
  3. GKE Küme Özellikleri
  4. Veri Katmanı Mimarisi
  5. Sunucusuz Bileşenler
  6. Güvenlik & Uyumluluk
  7. Ağ Mimarisi
  8. CI/CD Hattı
  9. İzleme & Görünürlük
  10. Dağıtım Süreci
  11. Operasyonlar & Bakım
  12. Destek & Yükseltme

1. Mimari Genel Bakış

1.1 Bulut Tabanlı Çok Kiracılı Mimari

Energent.ai, Kubernetes orkestrasyonunu sunucusuz bileşenlerle birleştiren modern, ölçeklenebilir bir mimari kullanarak Google Cloud Platform üzerinde dağıtım yapar ve performans ile maliyet verimliliği sağlar.

┌──────────────────────────────────────────────────────────────────┐
│                        GCP BULUT ORTAMI                         │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐   │
│  │   GKE KÜMESİ    │  │   SUNUCUSUZ     │  │   VERİ KATMANI   │   │
│  │                 │  │                 │  │                 │   │
│  │ • Çok kiracılı  │  │ • İşlevler Kimlik│  │ • Firestore     │   │
│  │ • n2-standard-4 │  │ • İşlevler Fatura│  │ • Cloud Storage │   │
│  │ • Otomatik ölçek│  │ • API Geçidi    │  │ • Filestore     │   │
│  │ • Flux GitOps   │  │ • Pub/Sub       │  │ • Gizli Bilgi Yön│   │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘   │
│           │                     │                    │           │
│           └─────────────────────┼────────────────────┘           │
│                                 │                                │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                    VPC GÜVENLİK SINIRI                     │ │
│  │  • Özel Alt Ağlar • Cloud NAT    • Güvenlik Duvarı Kuralları│ │
│  │  • IAP Tünelleri  • VPC Uç Noktaları • Yük Dengeleyici      │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

1.2 Dağıtım Modelleri

ModelAçıklamaKullanım DurumuSLA
Çok Kiracılı GKEAd alanı izolasyonu ile paylaşımlı kümeStandart kurumsal dağıtım99.9%
Özel GKETek kiracılı kümeYüksek güvenlik, düzenleyici uyumluluk99.95%
Hibrit DağıtımGKE + müşteri yerinde entegrasyonEski sistem entegrasyonu99.9%

2. GCP Altyapı Gereksinimleri

2.1 Minimum Altyapı Özellikleri

BileşenÖzellikAmaç
GKE Küme Sürümü1.30+Kubernetes orkestrasyonu
Düğüm Havuzu Örnek Türün2-standard-4 (4 vCPU, 16 GB RAM)Hesaplama optimizasyonlu iş yükleri
Minimum Düğüm YapılandırmasıKiracı başına 1 vCPU, 2 GB RAMKaynak tahsisi
Kalıcı Diskler100 GB SSD, şifrelenmişPod kalıcı depolama
FilestoreTemel, şifrelenmişPaylaşımlı dosya sistemi
Cloud StorageStandart, sürümleme etkinNesne depolama
FirestoreYerel mod, durağan şifrelemeMeta veriler ve yapılandırma

2.2 GCP Hizmet Bağımlılıkları

HizmetAmaçYapılandırma
Google GKEKubernetes orkestrasyonuÖzel küme, günlük kaydı etkin
Compute EngineDinamik düğüm ölçeklemeOtomatik ölçekleme, öncelikli örnekler
Cloud Load BalancingTrafik dağıtımıSSL sonlandırma, Cloud Armor
Cloud FunctionsSunucusuz işlevlerÇalışma zamanı: Python 3.11, VPC bağlayıcı
API GatewayAPI yönetimiHız sınırlama, kimlik doğrulama
Cloud Monitoringİzleme ve günlük kaydıGKE izleme, özel metrikler
Secret ManagerGizli bilgiler yönetimiOtomatik döndürme, şifreleme
Cloud KMSAnahtar yönetimiMüşteri yönetimli anahtarlar, otomatik döndürme

3. GKE Küme Özellikleri

3.1 Küme Yapılandırması

# GKE Küme Terraform Yapılandırması
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 Düğüm Havuzu Yapılandırması

# Birincil Düğüm Havuzu
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 Çok Kiracılı Kaynak Tahsisi

Kiracı SeviyesiCPU LimitiBellek LimitiDepolamaEşzamanlı İş Akışları
Temel1 vCPU2 GB10 GB1
Standart2 vCPU4 GB25 GB2
Premium4 vCPU8 GB50 GB4
Kurumsal8 vCPU16 GB100 GB8

4. Veri Katmanı Mimarisi

4.1 Depolama Mimarisi

4.1.1 Cloud Storage Yapılandırması


# Bulut Depolama Kovası için Nesne Depolama
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 gün
  }

  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 Yapılandırması

# Meta Veriler ve Yapılandırma için Firestore Veritabanı
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 Güvenlik Kuralları
resource "google_firestore_database" "security_rules" {
  depends_on = [google_firestore_database.energent_metadata]

  # Güvenlik kuralları içeriği burada tanımlanacaktır
  # Kiracı izolasyonu ve erişim kontrolleri uygulanıyor
}

4.1.3 Filestore Paylaşımlı Depolama

# Paylaşımlı Dosya Sistemi için 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. Sunucusuz Bileşenler

5.1 Bulut Fonksiyonları

5.1.1 Kimlik Doğrulama Hizmeti

# Kimlik Doğrulama için Bulut Fonksiyonu
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 Faturalandırma Hizmeti

# Faturalandırma için Bulut Fonksiyonu
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 Geçidi Yapılandırması

# Sunucusuz Fonksiyonlar için API Geçidi
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. Güvenlik ve Uyumluluk

6.1 Ağ Güvenliği

6.1.1 VPC Yapılandırması

# VPC Ağı ve Güvenlik Duvarı Kuralları
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 Güvenlik Duvarı Kuralları

YönProtokolPort AralığıKaynak/HedefAmaç
GelenHTTPS4430.0.0.0/0API erişimi
GelenTCP1024-6553510.0.0.0/8Dahili trafik
GidenHTTPS4430.0.0.0/0Harici API çağrıları
GidenTCP530.0.0.0/0DNS çözümleme

6.2 Şifreleme Standartları

Veri DurumuŞifreleme YöntemiAnahtar YönetimiUyumluluk
DurumdaAES-256-GCMOtomatik döngü ile Cloud KMSSOC 2, FIPS 140-2 Seviye 3
AktarımdaTLS 1.3Google yönetimli sertifikalarSOC 2, PCI DSS
BellekteUygulama düzeyindeDonanım Güvenlik ModülüSOC 2
YedeklemeAES-256Bölge çapraz Cloud KMSSOC 2, GDPR

6.3 IAM ve Hizmet Hesapları

6.3.1 GKE Hizmet Hesapları

# GKE Hizmet Hesabı
resource "google_service_account" "gke_service_account" {
  account_id   = "energent-gke-${var.environment}"
  display_name = "Energent GKE Hizmet Hesabı"
  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}"
}

# İş Yükü Kimliği bağlama
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. Ağ Mimarisi

7.1 VPC Tasarımı

┌─────────────────────────────────────────────────────────────────┐
│                         VPC (10.0.0.0/16)                       │
│                                                                 │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │  Genel Alt Ağ   │    │  Genel Alt Ağ   │    │ Genel Alt Ağ│  │
│  │   (10.0.1.0/24) │    │   (10.0.2.0/24) │    │(10.0.3.0/24)│  │
│  │                 │    │                 │    │             │  │
│  │   Cloud NAT     │    │   Cloud NAT     │    │ Cloud NAT   │  │
│  │   Yük Dengeleyici│   │   Yük Dengeleyici│   │Yük Dengeleyici│ │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Özel Alt Ağ     │    │ Özel Alt Ağ     │    │Özel Alt Ağ  │  │
│  │  (10.1.0.0/16)  │    │  (10.1.0.0/16)  │    │(10.1.0.0/16)│  │
│  │                 │    │                 │    │             │  │
│  │  GKE Düğümleri  │    │  GKE Düğümleri  │    │ GKE Düğümleri│  │
│  │  Fonksiyonlar VPC│   │  Fonksiyonlar VPC│   │ Fonksiyonlar │  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Hizmetler Alt Ağ│    │ Hizmetler Alt Ağ│    │Hizmetler Alt│  │
│  │  (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 Özel Hizmet Bağlantıları

HizmetTürAmaç
Cloud StorageÖzel uç noktaNesne depolama erişimi
FirestoreÖzel uç noktaMetadata erişimi
GKEÖzel kümeKüme API erişimi
Container RegistryÖzel uç noktaContainer kaydı
Cloud MonitoringÖzel uç noktaİzleme ve günlükleme
Secret ManagerÖzel uç noktaSırlar erişimi

8. CI/CD Boru Hattı

8.1 Kod Olarak Altyapı (Terraform)

8.1.1 Terraform Yapısı

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

8.1.2 Terraform Boru Hattı (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 (sadece ana dalda)
  - 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 "Ana dal dışındaki dallar için uygulama atlanıyor"
        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 Yapılandırması

# 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 Sunucusuz Dağıtım (Cloud Build)

8.3.1 Fonksiyon Dağıtım Yapılandırması

# cloudbuild-functions.yaml
steps:
  # Kimlik Doğrulama Fonksiyonunu Dağıt
  - 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}

  # Faturalandırma Fonksiyonunu Dağıt
  - 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. İzleme ve Gözlemlenebilirlik

9.1 Cloud Monitoring Yapılandırması

9.1.1 GKE İzleme

# GKE için Cloud Monitoring
resource "google_monitoring_dashboard" "gke_dashboard" {
  dashboard_json = jsonencode({
    displayName = "Energent GKE Dashboard"
    mosaicLayout = {
      tiles = [
        {
          width = 6
          height = 4
          widget = {
            title = "GKE Küme CPU Kullanımı"
            xyChart = {
              dataSets = [{
                timeSeriesQuery = {
                  timeSeriesFilter = {
                    filter = "resource.type=\"k8s_cluster\" AND metric.type=\"kubernetes.io/container/cpu/core_usage_time\""
                  }
                }
              }]
            }
          }
        }
      ]
    }
  })
}

# Günlük Tabanlı Metrikler
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 Hata Oranı"
  }
}

9.2 Uygulama Metrikleri

Metrik KategorisiMetriklerHedefUyarı Eşiği
ErişilebilirlikÇalışma Süresi, Sağlık Kontrolleri%99.9<%99.5
PerformansYanıt Süresi, İşlem Hızı<2s, >1000 RPS>5s, <500 RPS
Kaynak KullanımıCPU, Bellek, Depolama<%80>%90
Hata Oranları4xx, 5xx hataları<%1>%5

9.3 Denetim Günlükleme

# Cloud Audit Logs Yapılandırması
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"
  }
}

# Güvenlik Olayları için Günlük Çıkışı
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. Dağıtım Süreci

10.1 Dağıtım Zaman Çizelgesi

AşamaSüreAktivitelerPaydaşlar
Ön Dağıtım2-3 günAltyapı planlama, güvenlik incelemesiMüşteri BT, Güvenlik, Energent Çözümleri
Altyapı1-2 günTerraform dağıtımı, VPC kurulumuMüşteri DevOps, Energent Platformu
GKE Kümesi0.5 günKüme sağlama, düğüm havuzlarıMüşteri DevOps, Energent Platformu
Uygulama0.5 günFlux dağıtımı, uygulama yayılımıEnergent Platform Ekibi
Entegrasyon1-2 günIAM, izleme, testMüşteri BT, Energent Destek
Canlıya Geçiş0.5 günÜretim geçişi, doğrulamaTüm paydaşlar

10.2 Dağıtım Komutları

10.2.1 Altyapı Dağıtımı

# Terraform ile Altyapı Dağıtımı
cd terraform/environments/production
terraform init -backend-config="bucket=energent-terraform-state"
terraform plan -var-file="production.tfvars"
terraform apply -auto-approve

# GKE kümesini doğrula
gcloud container clusters get-credentials energent-production --region us-central1
kubectl get nodes

10.2.2 Uygulama Dağıtımı

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

# Sunucusuz bileşenleri dağıt
gcloud builds submit --config cloudbuild-functions.yaml \
  --substitutions _ENVIRONMENT=production,_REGION=us-central1

Dağıtımı doğrula

kubectl get pods -n energent-ai kubectl get ingress -n energent-ai


### 10.3 Dağıtım Doğrulama

```bash
# Sağlık kontrol uç noktaları
curl -k https://api.energent.example.com/health
curl -k https://api.energent.example.com/metrics

# Kubernetes doğrulama
kubectl top nodes
kubectl get hpa -n energent-ai
kubectl logs -n energent-ai -l app=energent-platform

11. Operasyonlar ve Bakım

11.1 Yedekleme ve Felaket Kurtarma

11.1.1 Yedekleme Stratejisi

BileşenSıklıkSaklama SüresiRTORPO
GKE Küme DurumuGünlük30 gün< 4 saat< 24 saat
Uygulama VerileriGerçek zamanlı90 gün< 1 saat< 15 dakika
YapılandırmaDeğişiklikte1 yıl< 30 dakika0
Denetim GünlükleriGerçek zamanlı7 yıl< 24 saat0

11.1.2 Felaket Kurtarma Prosedürleri

# Velero kullanarak GKE küme yedekleme
velero backup create energent-cluster-backup \
  --include-namespaces energent-ai \
  --storage-location gcp

# Firestore anlık kurtarma
gcloud firestore databases restore \
  --source-database=energent-metadata-production \
  --destination-database=energent-metadata-restored \
  --backup-time=2025-05-28T10:00:00Z

11.2 Ölçeklendirme ve Performans

11.2.1 Otomatik Ölçeklendirme Yapılandırması

# Yatay Pod Otomatik Ölçekleyici
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 Güncelleme ve Bakım

11.3.1 Aşamalı Güncellemeler

# GKE küme güncellemesi
gcloud container clusters upgrade energent-production \
  --master \
  --cluster-version 1.30 \
  --region us-central1

# Flux ile uygulama aşamalı güncellemesi
git commit -am "Update energent-platform to v2.1.0"
git push origin main
# Flux otomatik olarak değişiklikleri algılar ve uygular

12. Destek ve Yükseltme

12.1 Destek Seviyeleri

SeviyeYanıt SüresiKanallarKapsam
L1 - Temel< 4 saatE-posta, PortalGenel sorular, dokümantasyon
L2 - Standart< 2 saatTelefon, E-posta, MeetTeknik sorunlar, entegrasyon desteği
L3 - Premium< 1 saatTelefon, Meet, VideoKarmaşık teknik sorunlar, mimari
L4 - Kritik< 30 dakikaTelefon, SMS, YükseltmeÜretim kesintileri, güvenlik olayları

12.2 24/7 Destek Kapsamı

Kurumsal Destek:

Acil Durum Yükseltmesi:

12.3 Hizmet Seviyesi Anlaşmaları

HizmetSLACeza
Platform Erişilebilirliği%99.9 çalışma süresi%0.1 eksiklik başına %10 aylık kredi
Yanıt Süresi (P95)< 2 saniye%5 aylık kredi eğer > 5 saniye ise
Destek YanıtıYukarıdaki seviyeye göreBir sonraki seviyeye yükseltme
Veri KurtarmaRTO < 4 saatAşıldığında %25 aylık kredi

Ekler

Ek A: GCP Hizmet Maliyetleri

HizmetTahmini Aylık MaliyetÖlçeklendirme Faktörü
GKE Küme$75Küme başına sabit
Compute Engine (3x n2-standard-4)$850Düğüm başına doğrusal
Kalıcı Diskler (300GB)$60GB başına doğrusal
Cloud Storage (1TB)$20GB başına doğrusal
Firestore$120Kullanıma bağlı
Cloud Functions$35İstek başına bağlı
Toplam Temel Maliyet~$1,160/ay100 kiracı için

Ek B: Güvenlik Uyumluluk Kontrol Listesi

  • Özel alt ağlarla VPC dağıtıldı
  • En az ayrıcalıklı erişimle güvenlik duvarı kuralları
  • Tüm bekleyen veriler için Cloud KMS şifreleme
  • Tüm taşınan veriler için TLS 1.3
  • Minimum izinlerle IAM
  • Cloud Audit Logs etkinleştirildi
  • Security Command Center etkinleştirildi
  • Organizasyon Politikası kısıtlamaları etkinleştirildi
  • Tüm kimlik bilgileri için Secret Manager
  • Düzenli güvenlik taramaları ve değerlendirmeler

Ek C: Sorun Giderme Kılavuzu

Yaygın Sorunlar:

  1. GKE Düğümleri Küme Katılmıyor

    • Hizmet hesabı izinlerini doğrulayın
    • Alt ağ yönlendirmesini ve Cloud NAT'ı kontrol edin
  2. Uygulama Podları CrashLooping

    • Kaynak sınırlarını ve istekleri kontrol edin
    • Kalıcı hacim taleplerini doğrulayın
  3. Ağ Bağlantısı Sorunları

    • VPC konektör yapılandırmasını doğrulayın
    • Güvenlik duvarı kurallarını kontrol edin

  • Belge Sınıflandırması: Genel
  • Versiyon: 3.0
  • Son Güncelleme: 2025-05-28
  • Sonraki İnceleme: 2025-08-28
  • İletişim: support@energent.ai