📝 Blok C Sınavı — Tekrarlanabilirlik#
"C → D geçiş sinyali: sistemini sıfırdan, elle hiçbir şeye dokunmadan yeniden kurabiliyor musun?"
Kapı: Blok C sonu (C4'ten sonra, D1'den önce) · Ön koşul: C0–C4 kabul kriterleri geçilmiş
ℹ️ Tüm
bash labs/...komutlarını22-Learning-Path/kökünden çalıştır.
Blok C'nin tek iddiası şudur: aynı girdiyle aynı sistemi ikinci kez kurabilmek. Bu sınav onu ölçer. Her soru bir modülün kabul kriterine izlenebilir.
🏁 Sınav ≠ capstone. Bu sınav bilgi/beceri kapısıdır. Bloğun büyük teslim projesi
Capstone 1'dir — orada A6 uygulamasını uçtan uca tekrarlanabilir hâle getirirsin. Sınavı geç, sonra capstone'a otur.
1️⃣ Kavram soruları (yazılı)#
| # | Soru | İzlenebilirlik (modül → kabul kriteri) |
|---|---|---|
| 1 | Bir işi niçin Bash yerine Python'da (ya da tersi) yazarsın? Bir karar kuralı ver. | C0 → "niçin Python/Bash" kriteri |
| 2 | except: pass ile hata yutmak niçin tehlikeli? Bir arıza senaryosu ver. | C0 → except: pass kriteri |
| 3 | Bir Docker katmanı niçin cache'lenir / niçin geçersizleşir? COPY sırası niçin önemli? | C1 → katman cache kriteri |
| 4 | :latest etiketi niçin yasak? Yerine ne kullanılır (SHA/semver) ve niçin? | C2 → sürümlü etiket kriteri |
| 5 | "Pipeline yeşil" tam olarak neyi kanıtlar, neyi kanıtlamaz? | C2 → "yeşil neyi doğruladı" kriteri |
| 6 | Terraform state nedir? Niçin paylaşılan + kilitlenen bir yerde durmalı? | C3 → state kriteri |
| 7 | Hangi bulut servisleri free tier, hangileri saat/GB başına ücretli? İki örnek ver. | C4 → free tier kriteri |
Geçme: 7 sorunun en az 6'sı doğru + gerekçeli. 4. soru (:latest yasağı) zorunlu doğru — mutable tag supply-chain riskidir ve D4'ün önkoşuludur.
2️⃣ Uygulamalı görev — "sıfırdan, elle dokunmadan"#
Görev A — İki kırık lab (çekirdek):
-
K02 — container hatası:bash labs/broken/K02-container-hatasi/verify.shçözümden sonra sıfır hatayla geçiyor -
K03 — terraform state:bash labs/broken/K03-terraform-state/verify.shçözümden sonra sıfır hatayla geçiyor - Her ikisi için kök sebep + teşhis akışını yazdın (K03 = bayat state kilidi →
force-unlock)
Görev B — Tekrarlanabilirlik kanıtı: C3/L11 (LocalStack) kurulumunu kullan.
-
terraform applyile ortam sıfırdan kuruluyor →terraform destroy→ tekrarapplyaynı sonucu üretiyor - Bir commit → CI → registry akışı yeşil (
L10); image sürümlü etiketle yayımlanıyor (:latestyok)
Görev C — Bütçe alarmı gerçekten çalışıyor: C4/L12.
- Bütçe/faturalama alarmı kurulu, bir bildirim kanalına bağlı ve tetiklenerek test edildi
- Küçük bir kaynak açıldı ve
destroyile kapatıldı — açık kaynak kalmadığı doğrulandı
🚫 Bu sınavı kendine karşı kaybetme#
| Anti-pattern | Niye kötü | Doğru |
|---|---|---|
:latest ile "çalışıyor işte" | Hangi sürümün çalıştığı belirsiz; rollback imkânsız | SHA/semver ile pin'le |
apply sonrası elle bir ayar düzeltmek | Artık "sıfırdan tekrarlanabilir" değil | Düzeltmeyi kod'a al, tekrar apply |
destroy etmeden bırakmak | C4'ün tam uyardığı maliyet tuzağı | Her lab sonunda destroy + doğrula |
| Bütçe alarmını kurup test etmemek | Test edilmemiş alarm, alarm değildir | Eşiği düşürüp tetikle, bildirimi gör |
except: pass ile betiği "sustur"mak | Arıza sessizce yutulur | Hatayı yakala, logla, sıfır-dışı çıkış ver |
✅ Geçtin mi?#
- Kavram: 7/7'nin en az 6'sı + 4. soru zorunlu doğru
- Uygulama: K02 + K03 yeşil;
apply→destroy→applyidempotent; CI yeşil & sürümlü image - Bütçe: alarm tetiklenerek test edildi;
destroysonrası açık kaynak yok
Geçemediysen: container'da C1, CI'da C2, state'te C3, bütçede C4'e dön.
⏭️ Sırada#
Geçtiysen önce Capstone 1, sonra D1 — K8s Temel.
"Tekrarlanabilirlik bir özellik değil, bir kanıttır. K8s'e (Blok D) bir soyutlama daha eklemeden önce, elindeki sistemi iki kez aynı şekilde kurabildiğini kanıtla."