Enterprise GCP -käyttöönotto-opas - Energent.ai

2025-05-28

Energent.ai tarjoaa tekoälyllä toimivia virtuaalisia työpöytäagentteja, jotka automatisoivat monimutkaisia monisovellusprosessityönkulkuja yrityskäyttäjille. Tämä opas tarjoaa kattavat Google Cloud Platform -käyttöönoton määritykset käyttäen modernia pilvinatiivia arkkitehtuuria GKE:n, monivuokraajasuunnittelun ja yritystason turvatoimien avulla.

  • Asiakirjan luokitus: Julkinen
  • Versio: 3.0
  • Viimeksi päivitetty: 2025-05-28
  • Arkkitehtuuri: GCP GKE + palveluton hybridi
  • Vaatimustenmukaisuus: SOC 2, Google Cloud Security -parhaat käytännöt

Sisällysluettelo

  1. Arkkitehtuurin yleiskatsaus
  2. GCP-infrastruktuurivaatimukset
  3. GKE-klusterin määritykset
  4. Datalayer-arkkitehtuuri
  5. Palveluttomat komponentit
  6. Turvallisuus ja vaatimustenmukaisuus
  7. Verkkoarkkitehtuuri
  8. CI/CD-putki
  9. Seuranta ja havainnointi
  10. Käyttöönotto
  11. Toiminnot ja ylläpito
  12. Tuki ja eskalointi

1. Arkkitehtuurin yleiskatsaus

1.1 Pilvinatiivi monivuokraaja-arkkitehtuuri

Energent.ai otetaan käyttöön Google Cloud Platformilla käyttäen modernia, skaalautuvaa arkkitehtuuria, joka yhdistää Kubernetesin orkestroinnin ja palveluttomat komponentit optimaalisen suorituskyvyn ja kustannustehokkuuden saavuttamiseksi.

┌──────────────────────────────────────────────────────────────────┐
│                        GCP-PILVIYMPÄRISTÖ                        │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐   │
│  │   GKE-KLUSTERI  │  │   PALVELUTTOMAT │  │   DATAKERROS    │   │
│  │                 │  │                 │  │                 │   │
│  │ • Monivuokraaja │  │ • Funktiot Auth │  │ • Firestore     │   │
│  │ • n2-standard-4 │  │ • Funktiot Bill │  │ • Cloud Storage │   │
│  │ • Automaattinen │  │ • API Gateway   │  │ • Filestore     │   │
│  │   skaalaus      │  │ • Pub/Sub       │  │ • Secret Mgr    │   │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘   │
│           │                     │                    │           │
│           └─────────────────────┼────────────────────┘           │
│                                 │                                │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                    VPC-TURVALLISUUSRAJA                     │ │
│  │  • Yksityiset aliverkot • Cloud NAT    • Palomuurisäännöt   │ │
│  │  • IAP Tunnelit         • VPC-päätepisteet • Kuormantasain  │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

1.2 Käyttöönottomallit

MalliKuvausKäyttötapausSLA
Monivuokraaja GKEJaettu klusteri nimialue-eristykselläYrityksen vakioasennus99.9%
Omistettu GKEYhden vuokraajan klusteriKorkea turvallisuus, sääntelyvaatimukset99.95%
Hybridi-asennusGKE + asiakkaan paikallinen integraatioLegacy-järjestelmäintegraatio99.9%

2. GCP-infrastruktuurivaatimukset

2.1 Vähimmäisinfrastruktuurin määritykset

KomponenttiMääritysTarkoitus
GKE-klusteriversio1.30+Kubernetes-orkestrointi
Solmupoolin instanssityyppin2-standard-4 (4 vCPU, 16 GB RAM)Laskentaoptimoidut työkuormat
Vähimmäissolmukonfiguraatio1 vCPU, 2 GB RAM per vuokraajaResurssien allokointi
Pysyvät levyt100 GB SSD, salattuPodien pysyvä tallennus
FilestorePerus, salattuJaettu tiedostojärjestelmä
Cloud StorageVakio, versiointi käytössäObjektien tallennus
FirestoreNatiivimoodi, levossa oleva salausMetatiedot ja konfiguraatio

2.2 GCP-palveluriippuvuudet

PalveluTarkoitusKonfiguraatio
Google GKEKubernetes-orkestrointiYksityinen klusteri, lokitus käytössä
Compute EngineDynaaminen solmujen skaalausAutomaattinen skaalaus, preemptiiviset instanssit
Cloud Load BalancingLiikenteen jakeluSSL-terminointi, Cloud Armor
Cloud FunctionsPalveluttomat funktiotAjoaika: Python 3.11, VPC-liitin
API GatewayAPI-hallintaNopeusrajoitus, todennus
Cloud MonitoringSeuranta ja lokitusGKE-seuranta, mukautetut mittarit
Secret ManagerSalaisuuksien hallintaAutomaattinen rotaatio, salaus
Cloud KMSAvainten hallintaAsiakkaan hallinnoimat avaimet, automaattinen rotaatio

3. GKE-klusterin määritykset

3.1 Klusterin konfiguraatio

# GKE-klusterin Terraform-konfiguraatio
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 Solmupoolin konfiguraatio

# Ensisijainen solmupooli
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 Monivuokraajaresurssien allokointi

VuokraajatasoCPU-rajaMuistirajaTallennusSamanaikaiset työnkulut
Perus1 vCPU2 GB10 GB1
Vakio2 vCPU4 GB25 GB2
Premium4 vCPU8 GB50 GB4
Enterprise8 vCPU16 GB100 GB8

4. Datalayer-arkkitehtuuri

4.1 Tallennusarkkitehtuuri

4.1.1 Cloud Storage -konfiguraatio


# Pilvitallennusämpäri objektien tallennusta varten
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 päivää
  }

  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-konfiguraatio

# Firestore-tietokanta metatiedoille ja konfiguraatiolle
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-tietoturvasäännöt
resource "google_firestore_database" "security_rules" {
  depends_on = [google_firestore_database.energent_metadata]

  # Tietoturvasääntöjen sisältö määritellään täällä
  # Vuokralaisen eristämisen ja käyttöoikeuksien hallinnan toteutus
}

4.1.3 Filestore-jaettu tallennus

# Filestore jaetulle tiedostojärjestelmälle
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. Palveluttomat komponentit

5.1 Cloud Functions

5.1.1 Autentikointipalvelu

# Cloud Function autentikointia varten
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 Laskutuspalvelu

# Cloud Function laskutusta varten
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 Gateway -konfiguraatio

# API Gateway palveluttomille funktioille
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. Tietoturva ja vaatimustenmukaisuus

6.1 Verkkoturvallisuus

6.1.1 VPC-konfiguraatio

# VPC-verkko ja palomuurisäännöt
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 Palomuurisäännöt

SuuntaProtokollaPorttialueLähde/KohdeTarkoitus
TuloliikenneHTTPS4430.0.0.0/0API-yhteys
TuloliikenneTCP1024-6553510.0.0.0/8Sisäinen liikenne
LähtöliikenneHTTPS4430.0.0.0/0Ulkoiset API-kutsut
LähtöliikenneTCP530.0.0.0/0DNS-resoluutio

6.2 Salausstandardit

DatatilaSalausmenetelmäAvainhallintaVaatimustenmukaisuus
LepotilassaAES-256-GCMCloud KMS automaattisella rotaatiollaSOC 2, FIPS 140-2 Taso 3
SiirrossaTLS 1.3Googlen hallinnoimat sertifikaatitSOC 2, PCI DSS
MuistissaSovellustasonLaitteistoturvamoduuliSOC 2
VarmuuskopioAES-256Alueiden välinen Cloud KMSSOC 2, GDPR

6.3 IAM ja palvelutilit

6.3.1 GKE-palvelutilit

# GKE-palvelutili
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}"
}

# Työkuormien identiteettisidonta
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. Verkkorakenne

7.1 VPC-suunnittelu

┌─────────────────────────────────────────────────────────────────┐
│                         VPC (10.0.0.0/16)                       │
│                                                                 │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │  Julkinen aliverkko │    │  Julkinen aliverkko │    │ Julkinen ali │  │
│  │   (10.0.1.0/24) │    │   (10.0.2.0/24) │    │(10.0.3.0/24)│  │
│  │                 │    │                 │    │             │  │
│  │   Cloud NAT     │    │   Cloud NAT     │    │ Cloud NAT   │  │
│  │   Kuormantasaaja │    │   Kuormantasaaja │    │Kuormantasaaja│  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Yksityinen aliverkko │    │ Yksityinen aliverkko │    │Yksityinen ali │  │
│  │  (10.1.0.0/16)  │    │  (10.1.0.0/16)  │    │(10.1.0.0/16)│  │
│  │                 │    │                 │    │             │  │
│  │  GKE-solmut     │    │  GKE-solmut     │    │ GKE-solmut   │  │
│  │  Toiminnot VPC  │    │  Toiminnot VPC  │    │ Toiminnot   │  │
│  └─────────────────┘    └─────────────────┘    └─────────────┘  │
│           │                       │                     │       │
│  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────┐  │
│  │ Palvelut aliverkko │    │ Palvelut aliverkko │    │Palvelut ali │  │
│  │  (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 Yksityiset palveluyhteydet

PalveluTyyppiTarkoitus
Cloud StorageYksityinen päätepisteObjektivaraston käyttö
FirestoreYksityinen päätepisteMetadata käyttö
GKEYksityinen klusteriKlusterin API-käyttö
Container RegistryYksityinen päätepisteKonttirekisteri
Cloud MonitoringYksityinen päätepisteSeuranta ja lokitus
Secret ManagerYksityinen päätepisteSalaisuuksien käyttö

8. CI/CD-putki

8.1 Infrastruktuuri koodina (Terraform)

8.1.1 Terraform-rakenne

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

8.1.2 Terraform-putki (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 (vain päähaarassa)
  - 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 "Ohitetaan soveltaminen ei-päähaarassa"
        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-konfiguraatio

# 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 Palvelimettomat käyttöönotot (Cloud Build)

8.3.1 Funktion käyttöönoton konfiguraatio

# cloudbuild-functions.yaml
steps:
  # Auth-funktion käyttöönotto
  - 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}

  # Billing-funktion käyttöönotto
  - 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. Seuranta ja havainnointi

9.1 Cloud Monitoring -konfiguraatio

9.1.1 GKE-seuranta

# Cloud Monitoring for GKE
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\""
                  }
                }
              }]
            }
          }
        }
      ]
    }
  })
}

# Lokipohjaiset mittarit
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 Sovellusmittarit

MittariluokkaMittaritTavoiteHälytyskynnys
SaatavuusKäyttöaika, terveystarkistukset99.9%< 99.5%
SuorituskykyVastausaika, läpimeno< 2s, > 1000 RPS> 5s, < 500 RPS
Resurssien käyttöCPU, muisti, tallennus< 80%> 90%
Virheprosentit4xx, 5xx virheet< 1%> 5%

9.3 Audit-lokitus

# Cloud Audit Logs Configuration
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"
  }
}

# Lokisäiliö turvallisuustapahtumille
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. Käyttöönottoprosessi

10.1 Käyttöönottoaikataulu

VaiheKestoToiminnotSidosryhmät
Ennen käyttöönottoa2-3 päivääInfrastruktuurin suunnittelu, turvallisuuskatsausAsiakkaan IT, turvallisuus, Energent Solutions
Infrastruktuuri1-2 päivääTerraform-käyttöönotto, VPC-asennusAsiakkaan DevOps, Energent Platform
GKE-klusteri0.5 päivääKlusterin provisiointi, solmupoolitAsiakkaan DevOps, Energent Platform
Sovellus0.5 päivääFlux-käyttöönotto, sovelluksen käyttöönottoEnergent Platform Team
Integraatio1-2 päivääIAM, seuranta, testausAsiakkaan IT, Energent-tuki
Go-Live0.5 päivääTuotannon siirtymä, validointiKaikki sidosryhmät

10.2 Käyttöönoton komennot

10.2.1 Infrastruktuurin käyttöönotto

# Infrastruktuurin käyttöönotto Terraformilla
cd terraform/environments/production
terraform init -backend-config="bucket=energent-terraform-state"
terraform plan -var-file="production.tfvars"
terraform apply -auto-approve

# Vahvista GKE-klusteri
gcloud container clusters get-credentials energent-production --region us-central1
kubectl get nodes

10.2.2 Sovelluksen käyttöönotto

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

# Käytä palvelimettomia komponentteja
gcloud builds submit --config cloudbuild-functions.yaml \
  --substitutions _ENVIRONMENT=production,_REGION=us-central1

# Vahvista käyttöönotto
kubectl get pods -n energent-ai
kubectl get ingress -n energent-ai

10.3 Käyttöönoton validointi

# Terveystarkistuspisteet
curl -k https://api.energent.example.com/health
curl -k https://api.energent.example.com/metrics

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

11. Käyttö ja ylläpito

11.1 Varmuuskopiointi ja katastrofien palautus

11.1.1 Varmuuskopiointistrategia

KomponenttiTiheysSäilytysRTORPO
GKE-klusterin tilaPäivittäin30 päivää< 4 tuntia< 24 tuntia
SovellustiedotReaaliaikainen90 päivää< 1 tunti< 15 minuuttia
KonfiguraatioMuutoksen yhteydessä1 vuosi< 30 minuuttia0
Audit-lokitReaaliaikainen7 vuotta< 24 tuntia0

11.1.2 Katastrofien palautusmenettelyt

# GKE-klusterin varmuuskopiointi Veleroa käyttäen
velero backup create energent-cluster-backup \
  --include-namespaces energent-ai \
  --storage-location gcp

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

11.2 Skaalaus ja suorituskyky

11.2.1 Automaattisen skaalaamisen konfiguraatio

# Horizontal Pod Autoscaler
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 Päivitys ja ylläpito

11.3.1 Rolling-päivitykset

# GKE-klusterin päivitys
gcloud container clusters upgrade energent-production \
  --master \
  --cluster-version 1.30 \
  --region us-central1

# Sovelluksen rolling-päivitys Fluxin avulla
git commit -am "Update energent-platform to v2.1.0"
git push origin main
# Flux havaitsee ja soveltaa muutokset automaattisesti

12. Tuki ja eskalointi

12.1 Tukitasot

TasoVasteaikaKanavatLaajuus
L1 - Perus< 4 tuntiaSähköposti, PortaaliYleiset kysymykset, dokumentaatio
L2 - Standardi< 2 tuntiaPuhelin, Sähköposti, MeetTekniset ongelmat, integraatiotuki
L3 - Premium< 1 tuntiPuhelin, Meet, VideoMonimutkaiset tekniset ongelmat, arkkitehtuuri
L4 - Kriittinen< 30 minuuttiaPuhelin, SMS, EskalointiTuotantokatkokset, tietoturvaongelmat

12.2 24/7 Tuen kattavuus

Yritystuki:

Hätäescalointi:

12.3 Palvelutasosopimukset

PalveluSLASanktio
Alustan saatavuus99.9% käyttöaika10% kuukausiluotto per 0.1% puute
Vasteaika (P95)< 2 sekuntia5% kuukausiluotto, jos > 5 sekuntia
TukivasteYllä olevan mukaanEskalointi seuraavalle tasolle
Tietojen palautusRTO < 4 tuntia25% kuukausiluotto, jos ylitetty

Liitteet

Liite A: GCP-palveluiden kustannukset

PalveluArvioitu kuukausikustannusSkaalaustekijä
GKE-klusteri$75Kiinteä per klusteri
Compute Engine (3x n2-standard-4)$850Lineaarinen per solmu
Persistent Disks (300GB)$60Lineaarinen per GB
Cloud Storage (1TB)$20Lineaarinen per GB
Firestore$120Käyttöperusteinen
Cloud Functions$35Pyyntöperusteinen
Yhteensä peruskustannus~$1,160/kuukausi100 vuokraajalle

Liite B: Tietoturvan vaatimustenmukaisuuden tarkistuslista

  • VPC yksityisillä aliverkoilla otettu käyttöön
  • Palomuurisäännöt vähimmäisoikeuksilla
  • Cloud KMS -salaus kaikille levossa oleville tiedoille
  • TLS 1.3 kaikille siirrettäville tiedoille
  • IAM vähimmäisoikeuksilla
  • Cloud Audit Logs käytössä
  • Security Command Center käytössä
  • Organisaatiopolitiikan rajoitukset käytössä
  • Secret Manager kaikille tunnuksille
  • Säännölliset tietoturvatarkistukset ja arvioinnit

Liite C: Vianetsintäopas

Yleiset ongelmat:

  1. GKE-solmut eivät liity klusteriin

    • Tarkista palvelutilin käyttöoikeudet
    • Tarkista aliverkon reititys ja Cloud NAT
  2. Sovelluspodit CrashLooping-tilassa

    • Tarkista resurssirajat ja -pyynnöt
    • Varmista pysyvien volyymivaatimusten täyttyminen
  3. Verkkoyhteysongelmat

    • Tarkista VPC-liittimen konfiguraatio
    • Tarkista palomuurisäännöt

  • Asiakirjan luokitus: Julkinen
  • Versio: 3.0
  • Viimeksi päivitetty: 2025-05-28
  • Seuraava tarkistus: 2025-08-28
  • Yhteystiedot: support@energent.ai

Puhutaan!

Toimisto:

Abu Dhabin toimisto:

Al Khatem Tower, Al Maryah Island, Abu Dhabi

Piilaakson toimisto:

3101 Park Blvd. Palo Alto, CA