Örnek sorular
Infrastructure As CodeZorluk 1
Infrastructure as Code (IaC) temelde nedir?
- aHer sunucu değişikliğini operasyon ekibinin tamamı için ortak bir wiki sayfasında elle belgelemek
- bAltyapıyı version-controlled, makine tarafından okunabilir tanım dosyalarıyla yönetmek ve provision etmek✓
- cKonsoldan tek tek tıklayarak her kaynağı oluşturup her adımın ekran görüntüsünü ayrı ayrı kaydetmek
- dSunucu log çıktısını sistem konfigürasyonunun birincil kaynağı olarak kullanmak
Açıklama:IaC, altyapının (sunucu, ağ, veritabanı vb.) bir aracın okuyup uygulayacağı metin tabanlı dosyalarla tanımlanması demektir; böylece provisioning tekrarlanabilir olur ve versiyon kontrolünde izlenebilir. (a) yanlış çünkü wiki sayfası makine tarafından okunabilir değil ve otomatik uygulanmaz — birinin adımları elle doğru tekrarlamasına bağlıdır.
Infrastructure As CodeZorluk 1
Ekiplerin IaC benimsemesinden elde ettiği temel pratik fayda nedir?
- aFiziksel sunucuların otomatik olarak daha hızlı çalışması
- bAğ gecikmesinin otomatik olarak sıfıra indirilmesi
- cUygulama kodundaki bug'ların otomatik olarak tespit edilip sorumlu mühendise bildirilmesi
- dAynı ortamı tutarlı şekilde yeniden oluşturabilme ve değişiklik geçmişini versiyon kontrolünde izleyebilme✓
Açıklama:IaC'nin temel değeri tekrarlanabilirlik ve izlenebilirliktir: aynı tanımlar tekrar uygulanarak aynı ortam elde edilir ve her değişiklik gözden geçirilebilir, geri alınabilir bir commit'tir. (a) yanlış çünkü IaC altyapının nasıl yönetildiğini değiştirir, donanımın fiziksel veya ağ performansını değil.
Infrastructure As CodeZorluk 1
Declarative bir IaC aracı ile imperative bir script arasındaki temel fark nedir?
- aDeclarative istenen son durumu tanımlar; imperative ise çalıştırılacak komutları sırasıyla belirtir✓
- bDeclarative yalnızca GUI üzerinden, imperative yalnızca CLI üzerinden çalışır
- cDeclarative sadece bulut sağlayıcılarında, imperative yalnızca on-premise ortamlarda çalışır
- dDeclarative kaynakları hiç değiştirmez sadece okur, imperative kaynakları oluşturur
Açıklama:Declarative araçlar (ör. Terraform, CloudFormation) 'ne' istediğinizi tanımlamanızı sağlar ve adımlara aracın kendisi karar verir; imperative script'ler 'nasıl'ı, yani sıralı komutları tanımlar. (b) yanlış — declarative/imperative ayrımı state'in nasıl ifade edildiğiyle ilgilidir, GUI/CLI ile değil.
Infrastructure As CodeZorluk 1
IaC bağlamında 'idempotency' ne anlama gelir?
- aHer çalıştırmada kaynakların sıfırdan yeniden oluşturulması gerektiği anlamına gelir
- bAracın yalnızca bir kez çalıştırılabileceği, ikinci çalıştırmanın her zaman hata vereceği anlamına gelir
- cAynı işlemi tekrar tekrar uygulamak aynı sonucu verir, desired state'e ulaşılınca ek değişiklik olmaz✓
- dAracın yaptığı değişikliklerin uygulandıktan sonra hiçbir ortamda asla geri alınamayacağı anlamına gelir
Açıklama:Idempotency, aynı apply/playbook'un tekrar çalıştırılmasının güvenli olması demektir: araç mevcut durumu kontrol eder ve yalnızca desired state'ten gerçekten farklı olanı değiştirir. (a) yanlış — her çalıştırmada her şeyi sıfırdan yeniden oluşturmak idempotent davranışın tam tersidir, gereksiz ve yıkıcı olurdu.
Infrastructure As CodeZorluk 1
IaC araçlarında 'desired state' ve 'current state' kavramları neyi ifade eder?
- aDesired state geçmişteki bir değişiklik, current state bir sonraki planlanan değişikliktir
- bDesired state kodda tanımlanan hedef; current state ise altyapının o an gerçekte bulunduğu durumdur✓
- cDesired state test ortamı, current state ise production ortamı anlamına gelir
- dDesired state mühendisin tercih ettiği bulut sağlayıcısı, current state ise aktif faturalama planıdır
Açıklama:IaC araçları, kodda tanımlanan desired state ile gerçek altyapının (genellikle bir state dosyası veya canlı API çağrılarıyla izlenen) current state'ini karşılaştırarak neyin değişmesi gerektiğini hesaplar. (a) yanlış çünkü her iki terim de bir konfigürasyon anlık görüntüsünü tanımlar, geçmiş/gelecek zaman çizelgesini değil.
Infrastructure As CodeZorluk 1
Ekibe yeni katılan bir mühendis, diğerleriyle aynı geliştirme ortamına ihtiyaç duyuyor. İki gün boyunca sunucuları elle yapılandırmak yerine ne yapmalı?
- aVar olan bir sunucunun tüm disk image'ını fiziksel olarak veri merkezindeki yepyeni donanıma kopyalamalı
- bProduction ortamına doğrudan erişim alıp değişiklikleri orada test etmeli
- cDiğer mühendislerin ekranlarını izleyip aynı adımları elle tekrarlamalı
- dEkibin sürüm kontrolündeki IaC tanımlarını çalıştırarak aynı ortamı otomatik olarak yeniden kurmalı✓
Açıklama:IaC'nin önemli bir faydası hızlı ve tutarlı onboarding'dir: aynı izlenen tanımların çalıştırılması, elle ve hataya açık tekrar olmadan ortamı yeniden üretir. (a) yanlış — disk image kopyalamak kırılgan, geçici bir çözümdür, tekrarlanabilir ve denetlenebilir bir süreç değildir.