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
- Mimari Genel Bakış
- GCP Altyapı Gereksinimleri
- GKE Küme Özellikleri
- Veri Katmanı Mimarisi
- Sunucusuz Bileşenler
- Güvenlik & Uyumluluk
- Ağ Mimarisi
- CI/CD Hattı
- İzleme & Görünürlük
- Dağıtım Süreci
- Operasyonlar & Bakım
- 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
| Model | Açıklama | Kullanım Durumu | SLA |
|---|
| Çok Kiracılı GKE | Ad alanı izolasyonu ile paylaşımlı küme | Standart kurumsal dağıtım | 99.9% |
| Özel GKE | Tek kiracılı küme | Yüksek güvenlik, düzenleyici uyumluluk | 99.95% |
| Hibrit Dağıtım | GKE + müşteri yerinde entegrasyon | Eski sistem entegrasyonu | 99.9% |
2. GCP Altyapı Gereksinimleri
2.1 Minimum Altyapı Özellikleri
| Bileşen | Özellik | Amaç |
|---|
| 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 RAM | Kaynak tahsisi |
| Kalıcı Diskler | 100 GB SSD, şifrelenmiş | Pod kalıcı depolama |
| Filestore | Temel, şifrelenmiş | Paylaşımlı dosya sistemi |
| Cloud Storage | Standart, sürümleme etkin | Nesne depolama |
| Firestore | Yerel mod, durağan şifreleme | Meta veriler ve yapılandırma |
2.2 GCP Hizmet Bağımlılıkları
| Hizmet | Amaç | Yapılandırma |
|---|
| Google GKE | Kubernetes orkestrasyonu | Özel küme, günlük kaydı etkin |
| Compute Engine | Dinamik düğüm ölçekleme | Otomatik ölçekleme, öncelikli örnekler |
| Cloud Load Balancing | Trafik dağıtımı | SSL sonlandırma, Cloud Armor |
| Cloud Functions | Sunucusuz işlevler | Çalışma zamanı: Python 3.11, VPC bağlayıcı |
| API Gateway | API yönetimi | Hız sınırlama, kimlik doğrulama |
| Cloud Monitoring | İzleme ve günlük kaydı | GKE izleme, özel metrikler |
| Secret Manager | Gizli bilgiler yönetimi | Otomatik döndürme, şifreleme |
| Cloud KMS | Anahtar yönetimi | Müş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ı Seviyesi | CPU Limiti | Bellek Limiti | Depolama | Eşzamanlı İş Akışları |
|---|
| Temel | 1 vCPU | 2 GB | 10 GB | 1 |
| Standart | 2 vCPU | 4 GB | 25 GB | 2 |
| Premium | 4 vCPU | 8 GB | 50 GB | 4 |
| Kurumsal | 8 vCPU | 16 GB | 100 GB | 8 |
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ön | Protokol | Port Aralığı | Kaynak/Hedef | Amaç |
|---|
| Gelen | HTTPS | 443 | 0.0.0.0/0 | API erişimi |
| Gelen | TCP | 1024-65535 | 10.0.0.0/8 | Dahili trafik |
| Giden | HTTPS | 443 | 0.0.0.0/0 | Harici API çağrıları |
| Giden | TCP | 53 | 0.0.0.0/0 | DNS çözümleme |
6.2 Şifreleme Standartları
| Veri Durumu | Şifreleme Yöntemi | Anahtar Yönetimi | Uyumluluk |
|---|
| Durumda | AES-256-GCM | Otomatik döngü ile Cloud KMS | SOC 2, FIPS 140-2 Seviye 3 |
| Aktarımda | TLS 1.3 | Google yönetimli sertifikalar | SOC 2, PCI DSS |
| Bellekte | Uygulama düzeyinde | Donanım Güvenlik Modülü | SOC 2 |
| Yedekleme | AES-256 | Bölge çapraz Cloud KMS | SOC 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ı
| Hizmet | Tür | Amaç |
|---|
| Cloud Storage | Özel uç nokta | Nesne depolama erişimi |
| Firestore | Özel uç nokta | Metadata erişimi |
| GKE | Özel küme | Küme API erişimi |
| Container Registry | Özel uç nokta | Container kaydı |
| Cloud Monitoring | Özel uç nokta | İzleme ve günlükleme |
| Secret Manager | Özel uç nokta | Sı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 Kategorisi | Metrikler | Hedef | Uyarı Eşiği |
|---|
| Erişilebilirlik | Çalışma Süresi, Sağlık Kontrolleri | %99.9 | <%99.5 |
| Performans | Yanı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şama | Süre | Aktiviteler | Paydaşlar |
|---|
| Ön Dağıtım | 2-3 gün | Altyapı planlama, güvenlik incelemesi | Müşteri BT, Güvenlik, Energent Çözümleri |
| Altyapı | 1-2 gün | Terraform dağıtımı, VPC kurulumu | Müşteri DevOps, Energent Platformu |
| GKE Kümesi | 0.5 gün | Küme sağlama, düğüm havuzları | Müşteri DevOps, Energent Platformu |
| Uygulama | 0.5 gün | Flux dağıtımı, uygulama yayılımı | Energent Platform Ekibi |
| Entegrasyon | 1-2 gün | IAM, izleme, test | Müşteri BT, Energent Destek |
| Canlıya Geçiş | 0.5 gün | Üretim geçişi, doğrulama | Tü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şen | Sıklık | Saklama Süresi | RTO | RPO |
|---|
| GKE Küme Durumu | Günlük | 30 gün | < 4 saat | < 24 saat |
| Uygulama Verileri | Gerçek zamanlı | 90 gün | < 1 saat | < 15 dakika |
| Yapılandırma | Değişiklikte | 1 yıl | < 30 dakika | 0 |
| Denetim Günlükleri | Gerçek zamanlı | 7 yıl | < 24 saat | 0 |
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
| Seviye | Yanıt Süresi | Kanallar | Kapsam |
|---|
| L1 - Temel | < 4 saat | E-posta, Portal | Genel sorular, dokümantasyon |
| L2 - Standart | < 2 saat | Telefon, E-posta, Meet | Teknik sorunlar, entegrasyon desteği |
| L3 - Premium | < 1 saat | Telefon, Meet, Video | Karmaşık teknik sorunlar, mimari |
| L4 - Kritik | < 30 dakika | Telefon, 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ı
| Hizmet | SLA | Ceza |
|---|
| 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öre | Bir sonraki seviyeye yükseltme |
| Veri Kurtarma | RTO < 4 saat | Aşıldığında %25 aylık kredi |
Ekler
Ek A: GCP Hizmet Maliyetleri
| Hizmet | Tahmini Aylık Maliyet | Ölçeklendirme Faktörü |
|---|
| GKE Küme | $75 | Küme başına sabit |
| Compute Engine (3x n2-standard-4) | $850 | Düğüm başına doğrusal |
| Kalıcı Diskler (300GB) | $60 | GB başına doğrusal |
| Cloud Storage (1TB) | $20 | GB başına doğrusal |
| Firestore | $120 | Kullanıma bağlı |
| Cloud Functions | $35 | İstek başına bağlı |
| Toplam Temel Maliyet | ~$1,160/ay | 100 kiracı için |
Ek B: Güvenlik Uyumluluk Kontrol Listesi
Ek C: Sorun Giderme Kılavuzu
Yaygın Sorunlar:
-
GKE Düğümleri Küme Katılmıyor
- Hizmet hesabı izinlerini doğrulayın
- Alt ağ yönlendirmesini ve Cloud NAT'ı kontrol edin
-
Uygulama Podları CrashLooping
- Kaynak sınırlarını ve istekleri kontrol edin
- Kalıcı hacim taleplerini doğrulayın
-
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