Průvodce nasazením Enterprise GCP - Energent.ai

Energent.ai poskytuje virtuální desktopové agenty poháněné AI, kteří automatizují složité pracovní postupy mezi více aplikacemi pro podnikové uživatele. Tento průvodce poskytuje komplexní specifikace nasazení na Google Cloud Platform pomocí moderní cloud-native architektury s GKE, designem pro více nájemců a bezpečnostními kontrolami na úrovni enterprise.

  • Klasifikace dokumentu: Veřejné
  • Verze: 3.0
  • Poslední aktualizace: 2025-05-28
  • Architektura: GCP GKE + Serverless Hybrid
  • Soulad: SOC 2, osvědčené postupy zabezpečení Google Cloud

Obsah

  1. Přehled architektury
  2. Požadavky na infrastrukturu GCP
  3. Specifikace clusteru GKE
  4. Architektura datové vrstvy
  5. Serverless komponenty
  6. Zabezpečení & Soulad
  7. Síťová architektura
  8. CI/CD pipeline
  9. Monitoring & Observabilita
  10. Proces nasazení
  11. Provoz & Údržba
  12. Podpora & Eskalace

1. Přehled architektury

1.1 Cloud-native architektura pro více nájemců

Energent.ai je nasazen na Google Cloud Platform pomocí moderní, škálovatelné architektury, která kombinuje orchestraci Kubernetes se serverless komponenty pro optimální výkon a nákladovou efektivitu.

┌──────────────────────────────────────────────────────────────────┐
│                        PROSTŘEDÍ GCP CLOUD                       │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐   │
│  │   CLUSTER GKE   │  │   SERVERLESS    │  │   DATOVÁ VRSTVA │   │
│  │                 │  │                 │  │                 │   │
│  │ • Více nájemců  │  │ • Funkce Auth   │  │ • Firestore      │   │
│  │ • n2-standard-4 │  │ • Funkce Bill   │  │ • Cloud Storage  │   │
│  │ • Auto-scaling  │  │ • API Gateway   │  │ • Filestore      │   │
│  │ • Flux GitOps   │  │ • Pub/Sub       │  │ • Secret Mgr     │   │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘   │
│           │                     │                    │           │
│           └─────────────────────┼────────────────────┘           │
│                                 │                                │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                    HRANICE ZABEZPEČENÍ VPC                  │ │
│  │  • Privátní subnety • Cloud NAT    • Pravidla firewallu     │ │
│  │  • Tunely IAP      • Koncové body VPC • Load Balancer       │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

1.2 Modely nasazení

ModelPopisPoužitíSLA
Multi-Tenant GKESdílený cluster s izolací namespaceStandardní podnikové nasazení99.9%
Dedicated GKECluster pro jednoho nájemceVysoká bezpečnost, regulační soulad99.95%
Hybrid DeploymentGKE + integrace zákaznického on-premIntegrace legacy systémů99.9%

2. Požadavky na infrastrukturu GCP

2.1 Minimální specifikace infrastruktury

KomponentaSpecifikaceÚčel
Verze clusteru GKE1.30+Orchestrace Kubernetes
Typ instance Node Pooln2-standard-4 (4 vCPU, 16 GB RAM)Pracovní zátěže optimalizované pro výpočet
Minimální konfigurace nodu1 vCPU, 2 GB RAM na nájemcePřidělení zdrojů
Persistentní disky100 GB SSD, šifrovanéPersistentní úložiště podů
FilestoreZákladní, šifrovanéSdílený souborový systém
Cloud StorageStandardní, povolené verzováníObjektové úložiště
FirestoreNativní režim, šifrování v kliduMetadata a konfigurace

2.2 Závislosti na službách GCP

SlužbaÚčelKonfigurace
Google GKEOrchestrace KubernetesPrivátní cluster, povolené logování
Compute EngineDynamické škálování nodůAuto-scaling, preemptible instance
Cloud Load BalancingDistribuce provozuSSL terminace, Cloud Armor
Cloud FunctionsServerless funkceRuntime: Python 3.11, VPC konektor
API GatewaySpráva APIOmezení rychlosti, autentizace
Cloud MonitoringMonitoring a logováníMonitoring GKE, vlastní metriky
Secret ManagerSpráva tajemstvíAutomatická rotace, šifrování
Cloud KMSSpráva klíčůKlíče spravované zákazníkem, automatická rotace

3. Specifikace clusteru GKE

3.1 Konfigurace clusteru

# Konfigurace Terraform pro cluster GKE
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 Konfigurace Node Pool

# Primární Node Pool
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 Přidělení zdrojů pro více nájemců

Úroveň nájemceLimit CPULimit pamětiÚložištěSoučasné pracovní postupy
Basic1 vCPU2 GB10 GB1
Standard2 vCPU4 GB25 GB2
Premium4 vCPU8 GB50 GB4
Enterprise8 vCPU16 GB100 GB8

4. Architektura datové vrstvy

4.1 Architektura úložiště

4.1.1 Konfigurace Cloud Storage


# Úložiště Cloud Storage pro objektové úložiště
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 dní
  }

  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 Konfigurace Firestore

# Databáze Firestore pro metadata a konfiguraci
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"
}

# Bezpečnostní pravidla Firestore
resource "google_firestore_database" "security_rules" {
  depends_on = [google_firestore_database.energent_metadata]

  # Obsah bezpečnostních pravidel by byl definován zde
  # Implementace izolace nájemníků a kontrol přístupu
}

4.1.3 Sdílené úložiště Filestore

# Filestore pro sdílený souborový systém
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. Bezserverové komponenty

5.1 Funkce Cloud Functions

5.1.1 Služba autentizace

# Cloud Function pro autentizaci
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 Služba fakturace

# Cloud Function pro fakturaci
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 Konfigurace API Gateway

# API Gateway pro bezserverové funkce
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. Bezpečnost a shoda

6.1 Síťová bezpečnost

6.1.1 Konfigurace VPC

# Síť VPC a pravidla firewallu
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 Pravidla firewallu

SměrProtokolRozsah portůZdroj/DestinaceÚčel
PříchozíHTTPS4430.0.0.0/0Přístup k API
PříchozíTCP1024-6553510.0.0.0/8Interní provoz
OdchozíHTTPS4430.0.0.0/0Externí API volání
OdchozíTCP530.0.0.0/0DNS rozlišení

6.2 Standardy šifrování

Stav datMetoda šifrováníSpráva klíčůShoda
V kliduAES-256-GCMCloud KMS s automatickou rotacíSOC 2, FIPS 140-2 Level 3
V přenosuTLS 1.3Certifikáty spravované GoogleSOC 2, PCI DSS
V pamětiNa úrovni aplikaceModul hardwarové bezpečnostiSOC 2
ZálohaAES-256Cloud KMS mezi regionySOC 2, GDPR

6.3 IAM a servisní účty

6.3.1 Servisní účty GKE

# Servisní účet 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}"
}

# Vazba identity pracovního zatížení
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. Síťová architektura

7.1 Návrh VPC

┌─────────────────────────────────────────────────────────────────┐
│                         VPC (10.0.0.0/16)                       │
│                                                                 │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │  Veřejná podsíť │    │  Veřejná podsíť │    │ Veřejná pod │  │
│  │   (10.0.1.0/24) │    │   (10.0.2.0/24) │    │(10.0.3.0/24)│  │
│  │                 │    │                 │    │             │  │
│  │   Cloud NAT     │    │   Cloud NAT     │    │ Cloud NAT   │  │
│  │   Load Balancer │    │   Load Balancer │    │Load Balancer│  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Soukromá podsíť │    │ Soukromá podsíť │    │Soukromá pod │  │
│  │  (10.1.0.0/16)  │    │  (10.1.0.0/16)  │    │(10.1.0.0/16)│  │
│  │                 │    │                 │    │             │  │
│  │  GKE uzly       │    │  GKE uzly       │    │ GKE uzly    │  │
│  │  Funkce VPC     │    │  Funkce VPC     │    │ Funkce      │  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Podsíť služeb   │    │ Podsíť služeb   │    │Podsíť služ  │  │
│  │  (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 Soukromá připojení služeb

SlužbaTypÚčel
Cloud StorageSoukromý endpointPřístup k objektovému úložišti
FirestoreSoukromý endpointPřístup k metadatům
GKESoukromý clusterPřístup k API clusteru
Container RegistrySoukromý endpointRegistr kontejnerů
Cloud MonitoringSoukromý endpointMonitorování a logování
Secret ManagerSoukromý endpointPřístup k tajemstvím

8. CI/CD Pipeline

8.1 Infrastruktura jako kód (Terraform)

8.1.1 Struktura Terraformu

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

8.1.2 Pipeline Terraformu (Cloud Build)

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

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

  # Aplikace Terraformu (pouze na hlavní větvi)
  - 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 "Přeskakuji aplikaci pro ne-hlavní větev"
        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 Konfigurace Fluxu

# 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 Nasazení bez serveru (Cloud Build)

8.3.1 Konfigurace nasazení funkcí

# cloudbuild-functions.yaml
steps:
  # Nasazení autentizační funkce
  - 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}

  # Nasazení fakturační funkce
  - 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. Monitorování a pozorovatelnost

9.1 Konfigurace Cloud Monitoringu

9.1.1 Monitorování GKE

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

# Metriky založené na logech
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 Metriky aplikací

Kategorie metrikMetrikyCílPrahová hodnota pro alert
DostupnostUptime, Kontroly zdraví99.9%< 99.5%
VýkonČas odezvy, Prostupnost< 2s, > 1000 RPS> 5s, < 500 RPS
Využití zdrojůCPU, Paměť, Úložiště< 80%> 90%
Chybovost4xx, 5xx chyby< 1%> 5%

9.3 Auditní logování

# Konfigurace auditních logů Cloud
resource "google_project_iam_audit_config" "project_audit" {
  project = var.project_id
  service = "allServices"

  audit_log_config {
    log_type = "ADMIN_READ"
  }

  audit_log_config {
    log_type = "DATA_READ"
  }

  audit_log_config {
    log_type = "DATA_WRITE"
  }
}

# Log Sink pro bezpečnostní události
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. Proces nasazení

10.1 Časová osa nasazení

FázeTrváníAktivityZainteresované strany
Před nasazením2-3 dnyPlánování infrastruktury, bezpečnostní revizeIT zákazníka, Bezpečnost, Energent Solutions
Infrastruktura1-2 dnyNasazení Terraformu, nastavení VPCDevOps zákazníka, Energent Platform
GKE Cluster0.5 dneZajištění clusteru, uzlyDevOps zákazníka, Energent Platform
Aplikace0.5 dneNasazení Fluxu, nasazení aplikaceTým Energent Platform
Integrace1-2 dnyIAM, monitorování, testováníIT zákazníka, Podpora Energent
Go-Live0.5 dnePřepnutí do produkce, validaceVšichni zainteresovaní

10.2 Příkazy pro nasazení

10.2.1 Nasazení infrastruktury

# Nasazení infrastruktury pomocí Terraformu
cd terraform/environments/production
terraform init -backend-config="bucket=energent-terraform-state"
terraform plan -var-file="production.tfvars"
terraform apply -auto-approve

# Ověření GKE clusteru
gcloud container clusters get-credentials energent-production --region us-central1
kubectl get nodes

10.2.2 Nasazení aplikace

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

# Nasazení bezserverových komponent
gcloud builds submit --config cloudbuild-functions.yaml \
  --substitutions _ENVIRONMENT=production,_REGION=us-central1

# Ověření nasazení
kubectl get pods -n energent-ai
kubectl get ingress -n energent-ai

10.3 Validace nasazení

# Kontrolní body zdraví
curl -k https://api.energent.example.com/health
curl -k https://api.energent.example.com/metrics

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

11. Provoz a údržba

11.1 Zálohování a obnova po havárii

11.1.1 Strategie zálohování

KomponentaFrekvenceRetenceRTORPO
Stav clusteru GKEDenně30 dní< 4 hodiny< 24 hodin
Data aplikaceV reálném čase90 dní< 1 hodina< 15 minut
KonfiguracePři změně1 rok< 30 minut0
Auditní logyV reálném čase7 let< 24 hodin0

11.1.2 Postupy obnovy po havárii

# Zálohování clusteru GKE pomocí Velero
velero backup create energent-cluster-backup \
  --include-namespaces energent-ai \
  --storage-location gcp

# Obnova Firestore k určitému bodu v čase
gcloud firestore databases restore \
  --source-database=energent-metadata-production \
  --destination-database=energent-metadata-restored \
  --backup-time=2025-05-28T10:00:00Z

11.2 Škálování a výkon

11.2.1 Konfigurace automatického škálování

# Horizontální automatický škálovač podů
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 Aktualizace a údržba

11.3.1 Postupné aktualizace

# Aktualizace clusteru GKE
gcloud container clusters upgrade energent-production \
  --master \
  --cluster-version 1.30 \
  --region us-central1

# Postupná aktualizace aplikace pomocí Flux
git commit -am "Update energent-platform to v2.1.0"
git push origin main
# Flux automaticky detekuje a aplikuje změny

12. Podpora a eskalace

12.1 Úrovně podpory

ÚroveňDoba odezvyKanályRozsah
L1 - Základní< 4 hodinyE-mail, PortálObecné dotazy, dokumentace
L2 - Standardní< 2 hodinyTelefon, E-mail, MeetTechnické problémy, podpora integrace
L3 - Prémiová< 1 hodinaTelefon, Meet, VideoSložité technické problémy, architektura
L4 - Kritická< 30 minutTelefon, SMS, EskalaceVýpadky produkce, bezpečnostní incidenty

12.2 Nepřetržitá podpora 24/7

Podpora pro podniky:

Nouzová eskalace:

12.3 Smlouvy o úrovni služeb

SlužbaSLASankce
Dostupnost platformy99.9% uptime10% měsíční kredit za každých 0.1% nedosažení
Doba odezvy (P95)< 2 sekundy5% měsíční kredit, pokud > 5 sekund
Odezva podporyPodle úrovně výšeEskalace na další úroveň
Obnova datRTO < 4 hodiny25% měsíční kredit, pokud překročeno

Přílohy

Příloha A: Náklady na služby GCP

SlužbaOdhadované měsíční nákladyFaktor škálování
Cluster GKE$75Fixní na cluster
Compute Engine (3x n2-standard-4)$850Lineární na uzel
Persistentní disky (300GB)$60Lineární na GB
Cloud Storage (1TB)$20Lineární na GB
Firestore$120Závislé na využití
Cloud Functions$35Závislé na požadavcích
Celkové základní náklady~$1,160/měsícPro 100 nájemců

Příloha B: Kontrolní seznam bezpečnostní shody

  • VPC s nasazenými privátními podsítěmi
  • Pravidla firewallu s přístupem s nejmenšími oprávněními
  • Šifrování Cloud KMS pro všechna data v klidu
  • TLS 1.3 pro všechna data v přenosu
  • IAM s minimálními oprávněními
  • Povolené Cloud Audit Logs
  • Povolené Security Command Center
  • Povolené omezení organizační politiky
  • Secret Manager pro všechny přihlašovací údaje
  • Pravidelné bezpečnostní skeny a hodnocení

Příloha C: Průvodce řešením problémů

Běžné problémy:

  1. Uzly GKE se nepřipojují ke clusteru

    • Ověřte oprávnění účtu služby
    • Zkontrolujte směrování podsítě a Cloud NAT
  2. Aplikační pody se restartují

    • Zkontrolujte limity a požadavky na zdroje
    • Ověřte požadavky na trvalé objemy
  3. Problémy s konektivitou sítě

    • Ověřte konfiguraci VPC konektoru
    • Zkontrolujte pravidla firewallu

  • Klasifikace dokumentu: Veřejný
  • Verze: 3.0
  • Poslední aktualizace: 2025-05-28
  • Další revize: 2025-08-28
  • Kontakt: support@energent.ai