Google ACE: Dağıtım, Yapılandırma ve Otomasyon — Çalışma kılavuzu
Şunun bir parçası: Google Associate Cloud Engineer — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Google sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.
Genel Bakış
Google Cloud’de dağıtım, yapılandırma ve otomasyon; tekrarlanabilir, denetlenebilir ve güvenli değişiklik teslimatını merkeze alır. Sağlam uygulamalar; kod olarak altyapı (IaC), bildirimsel şablonlar, değiştirilemez yapıtlar (artifact) ve standartlaştırılmış işlem hatlarına (pipeline) dayanır. Operasyonel mükemmellik; idempotans için tasarım yapmaktan, değişiklikleri önizlemekten, politikaları zorunlu kılmaktan ve net geri alma (rollback) yolları ile kontrollü dağıtımlar (rollout) planlamaktan gelir. Aşağıdaki bölümler, yaygın tuzaklar ve ödünleşimler de dahil olmak üzere pratik desenler, komut örnekleri ve tasarım tercihlerinin arkasındaki mantığı sunmaktadır.
Kod Olarak Altyapı ve Yapılandırma Temelleri
İlkeler:
- Bildirimsel şablonlar istenen son durumu tanımlar; araçlar mevcut durumu eşleştirmek için uzlaştırır. Bu, idempotansı, tekrarlanabilirliği ve denetlenebilirliği artırır.
- Değiştirilemez altyapı, yerinde değişiklik yapmak yerine yeni örnekler (instance) veya revizyonlar dağıtır, bu da geri almayı basitleştirir ve sapmayı (drift) azaltır.
- Sorumlulukların ayrılması: paylaşılan modülleri veya şablonları yeniden kullanırken ortama özgü değerleri parametreleştirin.
Google Cloud üzerinde Terraform:
- Yapılandırma: HCL dosyaları kaynakları, değişkenleri ve çıktıları tanımlar. VPC’leri, hizmet hesaplarını veya GKE kümelerini kapsüllemek için modüller kullanın; desenleri standartlaştırmak için paylaşılan modülleri dahili olarak yayınlayın.
- State: State’i uzakta ve sürüm kontrollü tutun. Nesne sürümleme (object versioning) ve uygun şekilde bucket saklama (bucket retention) ile bir Cloud Storage arka ucu (backend) kullanın.
- Örnek backend bloğu:
undefined
- Hata modları: yerel state veya sürüm kontrolü olmayan bucket’lar veri kaybı ve eş zamanlı yazma riski taşır. State bucket’ına en az ayrıcalıklı erişimi zorunlu kılın; anahtarlar yerine kısa ömürlü kimlik bilgilerini ve hizmet hesabı kimliğine bürünmeyi (service account impersonation) tercih edin.
- Planlar ve apply’lar:
terraform planbir önizleme sağlar; CI/CD’de production içinapplyişlemlerini insan onayıyla denetleyin.-target‘ı idareli kullanın; sık hedefleme sapma riskini artırır. - Modüller: modülleri anlamsal olarak sürümleyin; planlanmamış değişikliklerden kaçınmak için sürümleri sabitleyin.
apply‘dan önceterraform validateve politika kontrolleri ile doğrulayın. - Import ve sapma:
terraform importmevcut kaynakları yönetim altına alır; ardından dikkatli bir state incelemesi yapın. Düzenli olarakterraform plançalıştırarak sapmayı tespit edin. - Uzaktan yürütme: Hizmet hesabı anahtarlarından kaçınmak için Terraform’u Workload Identity Federation ile Cloud Build veya Cloud Run işlerinde çalıştırın. Build süresini azaltmak için provider’ları önbelleğe alın.
Deployment Manager:
- Birçok ekip Terraform’u standart olarak kullansa da Deployment Manager ile karşılaşabilirsiniz. Yapılandırmayı güncelleyerek bir dağıtımı kesintisiz olarak güncelleyin:
undefined
Yapılandırma standartları:
- Adlandırma:
env,region,purposevesequenceiçeren tutarlı, ayrıştırılabilir adlar uygulayın, örn.vpc-prod-usw1-core. - Etiketler: tüm kaynaklara
env,cost_center,ownerveappgibi etiketler ekleyin; politika veya doğrulama yoluyla zorunlu kılın. - Tag’ler: güvenlik duvarı kurallarının kapsamını belirlemek için ağ etiketlerini (network tags) kullanın; kimlik veya sahiplik için tag’leri aşırı yüklemekten kaçının (etiketler daha iyidir).
- Meta veriler: başlangıç betikleri ve yapılandırma için örnek meta verilerinden (instance metadata) yararlanın; yeniden çalıştırmaları kontrol etmek için sağlama toplamı (checksum) veya sürüm bayrakları içeren meta verileri tercih edin. Meta verilere gizli bilgileri (secret) yerleştirmekten kaçının; Secret Manager kullanın.
API’ler, hizmet etkinleştirme, kotalar ve hizmet hesapları:
- Gerekli hizmetleri otomasyonun erken aşamalarında etkinleştirin:
undefined
- Planlama sırasında kota payını (quota headroom) doğrulayın; ölçek testleri, kısıtlamayı (throttling) önlemek için kota kontrollerini içermelidir.
- Her iş yükü ve ortam için özel hizmet hesapları kullanın; en dar kapsamda en az ayrıcalıklı IAM rollerini verin. İnsan erişimi için grup üyeliğini ve otomasyon için hizmet hesabı kimliğine bürünmeyi (service account impersonation) tercih edin.
Teslimat İşlem Hatları ve Yapıt Yükseltme
Cloud Build:
- Yapıtları (artifact) derlemek, test etmek ve paketlemek için Cloud Build adımlarını tanımlayın. Dinamik değerler için ikameleri (substitution) ve kimlik bilgileri için Secret Manager’ı kullanın.
- Build’leri kaynak değişikliklerinden tetikleyin; build hizmet hesaplarını depoya (repository) veya ortama göre izole edin ve yalnızca gerekli izinleri verin.
- Build sürelerini azaltmak için Docker katmanlarını ve dil bağımlılıklarını önbelleğe alın. Eş zamanlı build limitlerini ve geçici (ephemeral) çalışan kotalarını takip edin.
Yapıt yükseltme (promotion):
- Konteyner imajlarını veya dil paketlerini Artifact Registry’de saklayın. Yükseltme yöntemleri:
- Ortam için değiştirilemez digest’leri yeniden etiketleme (örn.
:qa,:prod) veya - Yapıtları ortama özgü bir depoya kopyalama.
- Ortam için değiştirilemez digest’leri yeniden etiketleme (örn.
- Ödünleşimler: etiketli tek bir depo keşfi basitleştirir ancak sıkı yönetişim gerektirir; ortama özel depolar izolasyonu ve politika uygulamasını güçlendirir.
Cloud Deploy:
- Sıralı hedeflere (örn. dev → qa → prod) sahip bir teslimat işlem hattı (delivery pipeline) modelleyin. Sürümler (release), belirli bir yapıt digest’ine ve dağıtım manifestosuna referans verir.
- GKE ve Cloud Run için Cloud Deploy, manifestoları oluşturmak (render) ve uygulamak için Skaffold yapılandırmalarını kullanır. Onayları, doğrulamaları ve geçitleri (gate) yapılandırın.
- Dağıtım (rollout) ve geri alma (rollback):
- Kademeli trafik kaydırmalı Canary dağıtımı, etki alanını (blast radius) azaltır.
- Mavi/yeşil (Blue/green), ekstra kapasite maliyetiyle hızlı geçiş (cutover) ve geri alma (rollback) sağlar.
- Son iyi sürüme sabitleyerek geri alın; sapma yaratan yerinde düzeltmelerden kaçının.
- Hata modları: eşleşmeyen küme izinleri, eksik API’ler ve manifesto şema hataları. Build sırasında manifestoları oluşturarak ve küme politikalarına karşı doğrulayarak erken tespit edin.
Güvenli değişiklik planlaması:
- Production için önizleme (
planveyarender), otomatik testler, politika doğrulaması ve insan onayı gerektirin. - Compute Engine yönetilen örnek grupları (managed instance groups) için, uygulama hazır olma durumu yavaş olduğunda aşırı kaynak sağlamayı (overprovisioning) önlemek amacıyla güncelleme politikası
maxSurge/maxUnavailableve sağlık kontrolü (health check) ayarlarını düzenleyin.
Komut Satırı İşlemleri ve Ortam Yönetimi
Cloud Shell ve gcloud yapılandırmaları:
- Cloud Shell, önceden kimliği doğrulanmış gcloud ve kalıcı bir ana dizin içeren yönetilen bir yönetici ortamı sağlar.
- Hesaplar, projeler ve bölgeler arasında hızla geçiş yapmak için adlandırılmış yapılandırmaları kullanın: gcloud config configurations create prod gcloud config set project my-prod gcloud config set compute/region us-central1 gcloud config set compute/zone us-central1-a gcloud config configurations activate prod
gcloud config listile aktif yapılandırmayı inceleyin. GKE için kimlik bilgilerini alın: gcloud container clusters get-credentials my-cluster –region us-central1
Compute komut kalıpları:
- Ayrılmış bir dahili IP ile VM oluşturma: gcloud compute addresses create license-ip –region=us-central1 –subnet=default –addresses=10.0.3.21 gcloud compute instances create license-server –zone=us-central1-a –subnet=default –private-network-ip=10.0.3.21 –tags=license
- Özel bir VPC, alt ağ ve güvenlik duvarı kuralı oluşturma: gcloud compute networks create core –subnet-mode=custom gcloud compute networks subnets create core-us –network=core –range=10.0.0.0/20 –region=us-central1 gcloud compute firewall-rules create allow-https –network=core –allow=tcp:443 –target-tags=web
IAM kalıpları:
- Proje kapsamında bir rol atama: gcloud projects add-iam-policy-binding my-project –member=group:ops@example.com –role=roles/logging.viewer
- Projeler arasında özel rolleri kopyalama: gcloud iam roles copy myCustomRole –source=my-dev –destination=my-prod
Storage kalıpları:
- Bir bucket oluşturma ve nesneleri yükleme: gcloud storage buckets create gs://backups-prod –location=us-central1 –class=coldline –uniform-bucket-level-access gcloud storage cp ./backup.tar.gz gs://backups-prod/
- Yaşam döngüsünü dosya aracılığıyla yapılandırın ve
gcloud storage buckets update --lifecycle-file=policy.jsonile uygulayın
API etkinleştirme ve doğrulama:
- Bir uygulama için Pub/Sub’ı etkinleştirme: gcloud services enable pubsub.googleapis.com
- Etkinleştirilmiş hizmetleri listeleme: gcloud services list –enabled
Yönetişim, Sapma ve Otomasyon
Yapılandırma sapması ve ilke yaptırımı:
terraform plankomutunu zamanlanmış olarak çalıştırarak sapmayı tespit edin; beklenmedik değişikliklerde derlemeleri (build) başarısız kılın.- Kuruluş ilke kısıtlamalarını (ör. harici IP’leri kısıtlama) zorunlu kılın ve kaynak yapılandırmalarını uygulamadan (apply) önce kod olarak ilke (policy-as-code) ile doğrulayın.
- Kubernetes için, sürekli olarak eşitleme yapmak ve uyumsuz değişiklikleri engellemek amacıyla Config Sync ve Policy Controller kullanın.
- Denetlenebilirlik: Admin Activity ve Data Access günlüklerine güvenin; analiz için BigQuery’ye yönlendirin. Belirli bir an ve zamanda geriye dönük durum sorguları için Cloud Asset Inventory’yi kullanın.
Kotalar ve sınırlar:
- Bölge ve proje başına kotaları inceleyin; otomatik ölçeklendirme ve yeni sürüm dağıtımları için pay bırakmayı planlayın:
undefined
- Planlanan büyüme veya büyük dağıtımlar öncesinde kota artışı talep edin.
Otomatikleştirilmiş operasyonel görevler:
- Cloud Scheduler, bir cron zamanlamasına göre HTTP uç noktalarını, Pub/Sub konularını veya Workflows’u tetikler. İşleyicilerin (handler) idempotent olduğundan emin olun; yeniden denemeleri ve teslim edilemeyen mesaj konularını (dead-letter topics) yapılandırın.
- Workflows, yeniden denemeler, paralel adımlar ve telafi mantığı ile Google API’leri arasında çok adımlı otomasyonu yönetir.
- Cloud Run jobs, isteğe bağlı olarak veya Scheduler aracılığıyla konteynerize edilmiş toplu (batch) veya idari görevleri yürütür. Tek seferlik veya tekrarlayan iş yükleri için job’ları tercih edin; job’ın hizmet hesabında minimum izinleri kullanın.
Dağıtım güvenliği ve gözlemlenebilirlik:
- Servislere sağlık kontrolleri (health checks) ve hazır olma denetimleri (readiness probes) ekleyin. Yavaş başlayan MIG’ler için, erken ölçeklendirme eylemlerini önlemek amacıyla başlangıç gecikmesini (initial delay) artırın.
- Dağıtım metriklerini ve hata bütçelerini toplayın; SLO’lar kötüleştiğinde dağıtımları duraklatın veya otomatik olarak iptal edin.
Pratik Problem Senaryosu
Altostrat Media, bir GKE tabanlı hizmet için çoklu ortam dağıtımlarını standartlaştırmalı, aynı zamanda yapılandırma sapmasını ortadan kaldırmalı ve hızlı geri almayı (rollback) sağlamalıdır. Ayrıca, uygulamayı yeniden yapılandırmadan eski bir lisans sunucusu için sabit bir dahili IP ayırmaları gerekmektedir.
- Temel Terraform modüllerini ve uzak durumu (remote state) oluşturun
- VPC, alt ağlar, GKE, hizmet hesapları ve güvenlik duvarı kuralları için modüller uygulayın. Durum (state) bucket’ı için sürüm oluşturma ve saklama ilkesi (retention policy) ile bir Cloud Storage arka ucu (backend) yapılandırın.
- Gerekçe: Modülerleştirme, yeniden kullanımı ve tutarlılığı teşvik eder; uzak, sürüm kontrollü durum (state), iş birliğini, kurtarılabilirliği ve kilitlemeyi sağlar.
- Gerekli hizmetleri etkinleştirin ve en az ayrıcalığa sahip otomasyon kimlikleri oluşturun
compute.googleapis.com,container.googleapis.com,clouddeploy.googleapis.com,artifactregistry.googleapis.comhizmetlerini etkinleştirin.- Terraform, Cloud Build ve Cloud Deploy için ortam başına hizmet hesapları oluşturun; minimum rolleri (ör. derleyicilere değil, dağıtımcılara
roles/container.admin) verin. - Gerekçe: Önceden etkinleştirme ve rol kapsamlandırma, dağıtım hatalarını azaltır ve etki alanını (blast radius) sınırlar.
- Ağ kaynaklarını sağlayın ve eski IP’yi rezerve edin
- Terraform ile özel bir VPC, bölgesel alt ağlar ve ağ etiketlerine (network tags) dayalı güvenlik duvarı kuralları oluşturun.
- Dahili IP’yi rezerve edin:
undefined
- Gerekçe: Bildirimsel (declarative) ağ yönetimi, tekrarlanabilirliği sağlar; IP’nin rezerve edilmesi, uygulama varsayımlarını korur.
- Cloud Build ile yapıtları (artifact) oluşturun ve Artifact Registry’de yayınlayın
- Testleri çalıştırmak, konteyneri oluşturmak, taramak ve değişmez bir özeti (immutable digest) Artifact Registry’ye göndermek için
cloudbuild.yamldosyasını tanımlayın. - Gerekçe: Değişmez, taranmış yapıtlar, güvenli yükseltmelerin ve kaynak takibinin (provenance) temelidir.
dev → qa → prodhedefleriyle Cloud Deploy ardışık düzenini (pipeline) yapılandırın
- Bir teslimat ardışık düzeni ve hedefler tanımlayın; manifest’leri oluşturmak için Skaffold yapılandırmasına referans verin. Üretim (prod) için manuel onay gerektirin ve doğrulamaları (verifications) yapılandırın.
- Gerekçe: Yapılandırılmış yükseltme, denetimleri zorunlu kılar; hedef başına ilkeler, yanlışlıkla üretim ortamına dağıtım yapılmasını önler.
- Kanarya stratejisi ve sağlık denetim kapıları (health gates) ile GKE güncellemelerini dağıtın
- SLO ve hata oranı kontrollerine bağlı olarak trafiği %10, ardından %50, sonra %100 kaydırmak için bir kanarya dağıtım (canary rollout) ilkesi kullanın.
- Gerekçe: Aşamalı teslimat, riski azaltır ve doğal geri alma noktaları sağlar.
- Zamanlanmış planlar ve ilke kontrolleri ile sapmayı ortadan kaldırın
- Gece çalışan bir iş (job),
terraform plankomutunu ve bir kod olarak ilke (policy-as-code) doğrulayıcısını çalıştırır; beklenmedik farklar veya ihlaller durumunda uyarı verir. - Gerekçe: Erken tespit, sapmanın birikmesini ve gelecekteki uygulamaları (apply) bozulmasını önler.
- Lisans sunucusu VM’ini rezerve edilmiş IP ile operasyonel hale getirin
- VM’i rezerve edilmiş adrese ve uygun etiketlere bağlı olarak oluşturun:
undefined
- Gerekçe: Uygulamayı değiştirmeden erişilebilirliği sağlar; etiketler, güvenlik duvarı kurallarının kapsamını dar tutar.
- Tekrarlayan görevleri Scheduler, Workflows ve job’lar ile otomatikleştirin
- Cloud Scheduler, kaçınılmaz olduğu durumlarda hizmet hesabı anahtarlarını döndürmek için bir Workflow’u ve haftalık veritabanı vakumlama görevleri için bir Cloud Run job’ı başlatmak üzere tetikler.
- Gerekçe: Merkezi zamanlama ve orkestrasyon, yeniden denemeler ve telafi mekanizmaları ile güvenilirlik ve gözlemlenebilirlik sağlar.
- Geri almaları planlayın ve hazır olma eşiklerini doğrulayın
- Son kararlı sürümü yeniden yükseltmek için geri alma (rollback) planları tanımlayın. Hazır olma denetimlerini (readiness probes) ayarlayın ve MIG tabanlı iş yükleri için, uygulamanın ısınma süresine uyması amacıyla başlangıç sağlık kontrolü gecikmelerini artırın.
- Gerekçe: Önceden planlanmış geri alma ve ayarlanmış sağlık kontrolleri, olaylar sırasında zincirleme arızaları ve aşırı kaynak sağlamayı önler.
Bu yaklaşım, Google Cloud üzerinde güvenli, denetlenebilir ve tekrarlanabilir operasyonlar sunmak için değişmez yapıtları, bildirimsel altyapıyı, denetimli yükseltmeleri ve en az ayrıcalıklı otomasyonu bir araya getirir.
← Depolama · Tüm alanlar · İzleme →
Bu soruları çözün → · ExamRoll.io’da süreli pratik →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Sınavınızı geçin →