A platform engineering team is establishing an automated deployment pipeline for an enterprise application running on Google Kubernetes Engine (GKE). The application communicates with a relational database, and all cloud infrastructure is managed using Terraform within a CI/CD pipeline. Which TWO deployment and operational practices should the team implement to ensure release reliability and prevent application outages during rollouts?
- Apply backward-compatible database schema changes using an expand-contract pattern before routing traffic to new application revisions.Cevap
- Store Terraform state in a centralized Cloud Storage bucket configured with object versioning and state locking.Cevap
- CStore Terraform state files on the local filesystem of the CI/CD runner to reduce latency during pipeline execution.
- DGrant the primitive Owner role to the CI/CD service account to eliminate permission errors across target environments.
- EConfigure backend load balancer health checks to execute complex database query operations on every probe.
Cevap
The team should apply backward-compatible database schema changes using an expand-contract pattern before routing traffic to new application revisions, and store Terraform state in a centralized Cloud Storage bucket configured with object versioning and state locking.
Ensuring database schema changes are backward-compatible (using an expand-contract pattern) guarantees that active application versions continue functioning during progressive deployments without causing data errors. Concurrently, utilizing Cloud Storage with state locking and versioning for Terraform state maintains IaC state integrity and prevents race conditions across automated build runners.
Adım Adım Çözüm
Anahtar Kavram
Release Management and Infrastructure State Integrity
Tahmini Süre:2m 0s