[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:devops-cloud\u002Fterraform-state-backend-locking":4,"config":256},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":151,"samples":171},"devops-cloud","DevOps \u002F Cloud","","terraform-state-backend-locking","Terraform State Backend Locking","tr",75,3375,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147,148],{"key":19,"name":20,"count":11},"aws-compute-ec2-lambda","Aws Compute Ec2 Lambda",{"key":22,"name":23,"count":11},"aws-databases-rds-dynamodb","Aws Databases Rds Dynamodb",{"key":25,"name":26,"count":11},"aws-iam-security","Aws Iam Security",{"key":28,"name":29,"count":11},"aws-messaging-eventing","Aws Messaging Eventing",{"key":31,"name":32,"count":11},"aws-networking-vpc","Aws Networking Vpc",{"key":34,"name":35,"count":11},"aws-storage-s3-ebs","Aws Storage S3 Ebs",{"key":37,"name":38,"count":11},"azure-compute-vm-appservice","Azure Compute Vm Appservice",{"key":40,"name":41,"count":11},"azure-databases-sql-cosmosdb","Azure Databases Sql Cosmosdb",{"key":43,"name":44,"count":11},"azure-iam-security","Azure Iam Security",{"key":46,"name":47,"count":11},"azure-messaging-eventing","Azure Messaging Eventing",{"key":49,"name":50,"count":11},"azure-networking-vnet","Azure Networking Vnet",{"key":52,"name":53,"count":11},"azure-storage-blob-managed-disk","Azure Storage Blob Managed Disk",{"key":55,"name":56,"count":11},"ci-cd-pipelines","Ci Cd Pipelines",{"key":58,"name":59,"count":11},"cloud-architecture-scaling","Cloud Architecture Scaling",{"key":61,"name":62,"count":11},"containers-orchestration","Containers Orchestration",{"key":64,"name":65,"count":11},"deployment-release-strategies","Deployment Release Strategies",{"key":67,"name":68,"count":11},"gcp-compute-gce-cloudrun","Gcp Compute Gce Cloudrun",{"key":70,"name":71,"count":11},"gcp-databases-cloudsql-spanner-firestore","Gcp Databases Cloudsql Spanner Firestore",{"key":73,"name":74,"count":11},"gcp-iam-security","Gcp Iam Security",{"key":76,"name":77,"count":11},"gcp-messaging-eventing","Gcp Messaging Eventing",{"key":79,"name":80,"count":11},"gcp-networking-vpc","Gcp Networking Vpc",{"key":82,"name":83,"count":11},"gcp-storage-gcs-persistent-disk","Gcp Storage Gcs Persistent Disk",{"key":85,"name":86,"count":11},"infrastructure-as-code","Infrastructure As Code",{"key":88,"name":89,"count":11},"k8s-config-secrets","K8s Config Secrets",{"key":91,"name":92,"count":11},"k8s-observability-troubleshooting","K8s Observability Troubleshooting",{"key":94,"name":95,"count":11},"k8s-scheduling-resources","K8s Scheduling Resources",{"key":97,"name":98,"count":11},"k8s-services-networking","K8s Services Networking",{"key":100,"name":101,"count":11},"k8s-storage","K8s Storage",{"key":103,"name":104,"count":11},"k8s-workloads","K8s Workloads",{"key":106,"name":107,"count":11},"linux-filesystem-permissions-links","Linux Filesystem Permissions Links",{"key":109,"name":110,"count":11},"linux-networking-tools-troubleshooting","Linux Networking Tools Troubleshooting",{"key":112,"name":113,"count":11},"linux-performance-monitoring-resource-limits","Linux Performance Monitoring Resource Limits",{"key":115,"name":116,"count":11},"linux-process-management-signals","Linux Process Management Signals",{"key":118,"name":119,"count":11},"linux-shell-scripting-ops-automation","Linux Shell Scripting Ops Automation",{"key":121,"name":122,"count":11},"linux-systemd-service-management","Linux Systemd Service Management",{"key":124,"name":125,"count":11},"networking-dns-loadbalancing","Networking Dns Loadbalancing",{"key":127,"name":128,"count":11},"observability-monitoring","Observability Monitoring",{"key":130,"name":131,"count":11},"reliability-incident-sre","Reliability Incident Sre",{"key":133,"name":134,"count":11},"security-iam-secrets","Security Iam Secrets",{"key":136,"name":137,"count":11},"terraform-hcl-language-expressions","Terraform Hcl Language Expressions",{"key":139,"name":140,"count":11},"terraform-modules-workspaces","Terraform Modules Workspaces",{"key":142,"name":143,"count":11},"terraform-plan-apply-drift-import","Terraform Plan Apply Drift Import",{"key":145,"name":146,"count":11},"terraform-providers-lifecycle-provisioners","Terraform Providers Lifecycle Provisioners",{"key":8,"name":9,"count":11},{"key":149,"name":150,"count":11},"terraform-testing-policy-cicd","Terraform Testing Policy Cicd",[152,156,159,162,165,168],{"key":153,"name":154,"count":155},"aws","AWS",450,{"key":157,"name":158,"count":155},"azure","Azure",{"key":160,"name":161,"count":155},"gcp","GCP",{"key":163,"name":164,"count":155},"kubernetes","Kubernetes",{"key":166,"name":167,"count":155},"linux","Linux",{"key":169,"name":170,"count":155},"terraform","Terraform",[172,190,203,216,229,243],{"id":173,"topic":9,"difficulty":174,"body":175,"options":176,"correct_key":184,"explanation":189},"019f8ebc-de99-7514-b805-d2f3e8517b04",1,"Terraform state dosyasının birincil amacı nedir?",[177,180,183,186],{"key":178,"text":179},"a","Cloud kaynakları üzerinde yapılan her manuel değişikliği açıklayan, insan tarafından yazılan bir changelog saklar",{"key":181,"text":182},"b","Provider plugin binary'lerinin tekrar indirilmemesi için önbelleğe alınmış bir kopyasını saklar",{"key":184,"text":185},"c","Konfigürasyonda tanımlanan kaynakları, Terraform'un oluşturduğu gerçek dünya nesneleriyle ve bunların attribute'larıyla eşler",{"key":187,"text":188},"d","Terraform CLI'ın kendi sürüm geçmişini ve güncelleme bildirimlerini saklar","State dosyası, Terraform'un hangi gerçek altyapı nesnelerinin konfigürasyondaki hangi resource bloklarına karşılık geldiğine ve izlenen attribute'larına dair kaydıdır. Terraform, plan\u002Fapply sırasında diff'i bu eşleme üzerinden hesaplar. (a) yanlış çünkü state dosyası makine tarafından üretilen bir JSON kaydıdır, elle tutulan bir changelog değildir.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":181,"explanation":202},"019f8ebc-de9c-768d-8f8b-8d46645fe45f","terraform.tfstate JSON dosyasını doğrudan elle düzenlemek neden genel olarak güvensiz kabul edilir?",[194,196,198,200],{"key":178,"text":195},"Terraform CLI dosyayı fiziksel olarak salt-okunur izinlerle kilitler, bu yüzden elle düzenleme teknik olarak imkânsızdır",{"key":181,"text":197},"Elle yapılan bir düzenleme, gerçek altyapıyla artık eşleşmeyen içsel olarak tutarsız bir state üretebilir ve beklenmedik plan'lara yol açar",{"key":184,"text":199},".tfstate dosya formatı derlenmiş binary'dir, JSON değildir, bu yüzden bir metin editörü onu hiç açamaz",{"key":187,"text":201},"Dosyayı elle düzenlemek, içinde listelenen her kaynağın otomatik olarak destroy edilmesini tetikler","State dosyasının, Terraform'un tutarlı olmasına güvendiği içsel bir yapısı vardır (resource adresleri, bağımlılık metadata'sı, attribute değerleri); elle yapılan bir düzenleme bu tutarlılığı sessizce bozabilir ve teşhis edilmesi zor yanlış plan'lara veya drift'e yol açabilir. Terraform bunun yerine güvenli değişiklikler için özel komutlar sunar (state mv\u002Frm\u002Fimport). (a) yanlış — dosyayı bir metin editöründe açmayı engelleyen hiçbir şey yoktur; risk mantıksaldır, teknik bir kilit değildir.",{"id":204,"topic":9,"difficulty":174,"body":205,"options":206,"correct_key":178,"explanation":215},"019f8ebc-dea0-7410-a597-06df82989c4a","Remote backend kullanmak (ör. S3, azurerm, GCS), Terraform'un varsayılan local state'ine kıyasla hangi temel sorunu çözer?",[207,209,211,213],{"key":178,"text":208},"Bir ekibin, her mühendisin senkron dışı kalabilen kendi yerel kopyası yerine tek, merkezi olarak saklanan bir state dosyasını paylaşmasını sağlar",{"key":181,"text":210},"Terraform'un herhangi bir resource attribute'unu izleme ihtiyacını tamamen ortadan kaldırır",{"key":184,"text":212},"Bulutta ne varsa .tf konfigürasyon dosyalarını otomatik olarak buna göre yeniden yazar",{"key":187,"text":214},"Backend değişiklikleri kendi zamanlamasına göre uyguladığı için 'terraform plan'ı gereksiz kılar","Terraform varsayılan olarak state'i yerel bir terraform.tfstate dosyasına yazar. Bir remote backend, aynı state'i merkezi olarak saklar, böylece her ekip üyesi ve CI job'u aynı doğruluk kaynağını okur\u002Fyazar, farklılaşan yerel kopyaları önler. (b) yanlış — backend hâlâ aynı resource-attribute eşlemesini saklar, sadece bu verinin nerede yaşadığını değiştirir.",{"id":217,"topic":9,"difficulty":174,"body":218,"options":219,"correct_key":187,"explanation":228},"019f8ebc-dea1-72d3-8589-330b7df49937","S3 backend'li bir Terraform kurulumunda, S3 bucket'ının yanındaki bir DynamoDB tablosunun tarihsel rolü nedir?",[220,222,224,226],{"key":178,"text":221},"State dosyasının tam bir yedek kopyasını saklar, herhangi bir locking mekanizmasıyla ilgisi yoktur",{"key":181,"text":223},"'terraform init' tekrar indirmesin diye provider plugin binary'lerini saklar",{"key":184,"text":225},"Terraform CLI'ın AWS provider için kimlik doğrulama bilgilerini saklar",{"key":187,"text":227},"Bir işlem çalışırken bir lock kaydı tutarak state locking sağlar, eşzamanlı apply'ları önler","S3'ün kendisi, eşzamanlı yazıcıları koordine eden yerleşik bir mekanizması olmayan bir object store'dur, bu yüzden geleneksel olarak plan\u002Fapply sırasında bir lock item tutması için bir DynamoDB tablosu eşlenmiştir, aynı anda yalnızca bir işlemin state'i değiştirmesini sağlar. (a) yanlış — tablo state dosyasının tamamının bir kopyasını değil, küçük bir lock kaydını tutar.",{"id":230,"topic":9,"difficulty":231,"body":232,"options":233,"correct_key":181,"explanation":242},"019f8ebc-dea3-7963-ba72-3b7538cb1d21",2,"State locking hangi sorunu önler?",[234,236,238,240],{"key":178,"text":235},"Konfigürasyon değişikliklerinden bağımsız olarak bir kaynağın asla destroy edilmesini önler",{"key":181,"text":237},"İki eşzamanlı Terraform işleminin aynı state dosyasını aynı anda okuyup yazmasını önler",{"key":184,"text":239},"Provider'ın bulut platformuna herhangi bir API çağrısı yapmasını önler",{"key":187,"text":241},"Mühendislerin state dosyasının içeriğini görüntülemesini tamamen önler","State locking erişimi sıralar: bir işlem (plan\u002Fapply) lock'u tutarken, aynı state'i hedefleyen başka bir eşzamanlı işlem başlamaktan engellenir, bu da iki sürecin aynı state dosyasına çakışan güncellemeler yazmasını önler. (a) yanlış — locking, state dosyasına erişimi koordine etmekle ilgilidir, kaynaklardaki destroy işlemlerini engellemekle değil.",{"id":244,"topic":9,"difficulty":231,"body":245,"options":246,"correct_key":184,"explanation":255},"019f8ebc-dea4-7452-bfa6-40c2e8f159c1","Bir mühendis, bir meslektaşının aynı remote state'e karşı apply'ı zaten devam ederken ve lock'u tutuyorken 'terraform apply' çalıştırıyor. Beklenen varsayılan davranış nedir?",[247,249,251,253],{"key":178,"text":248},"İki apply aynı anda devam eder ve Terraform ortaya çıkan iki state'i otomatik olarak birleştirir",{"key":181,"text":250},"İkinci apply, hiçbir uyarı vermeden birinci mühendisin devam eden değişikliklerinin üzerine sessizce yazar",{"key":184,"text":252},"İkinci apply başarısız olur veya bekler, state'in başka bir işlem tarafından kilitlendiğini bildirir",{"key":187,"text":254},"Terraform mevcut lock'u otomatik olarak siler, böylece her zaman en son komut kazanır","Terraform'un aktif bir lock'la karşılaştığında varsayılan davranışı, lock'u (kimin tuttuğunu, ne zaman oluşturulduğunu) bildirmek ve devam etmek yerine ya beklemek ya da hata vermektir — bu tam olarak locking'in sağlaması gereken koordinasyondur. (a) yanlış — Terraform'un eşzamanlı çalıştırmalar için bir state birleştirme yeteneği yoktur; bu tam olarak locking'in önlediği bozulma senaryosudur.",{"fields":257,"seniorities":429,"interview_shapes":430,"locales":435,"oauth":437,"question_count":440,"coach_enabled":441,"jd_match_enabled":441},[258,283,303,320,330,343,362,381,403,410,416,423],{"key":259,"name_tr":260,"name_en":260,"sort":174,"specializations":261},"backend","Backend",[262,265,268,271,274,277,280],{"key":263,"name":264,"field":259},"general","Genel",{"key":266,"name":267,"field":259},"go","Go",{"key":269,"name":270,"field":259},"python","Python",{"key":272,"name":273,"field":259},"java","Java",{"key":275,"name":276,"field":259},"csharp","C#\u002F.NET",{"key":278,"name":279,"field":259},"nodejs","Node.js",{"key":281,"name":282,"field":259},"php","PHP",{"key":284,"name_tr":285,"name_en":285,"sort":231,"specializations":286},"frontend","Frontend",[287,288,291,294,297,300],{"key":263,"name":264,"field":284},{"key":289,"name":290,"field":284},"javascript","JavaScript",{"key":292,"name":293,"field":284},"typescript","TypeScript",{"key":295,"name":296,"field":284},"react","React",{"key":298,"name":299,"field":284},"vue","Vue",{"key":301,"name":302,"field":284},"angular","Angular",{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"fullstack","Fullstack",3,[308,309,310,311,312,313,314,315,316,317,318,319],{"key":263,"name":264,"field":304},{"key":266,"name":267,"field":259},{"key":269,"name":270,"field":259},{"key":272,"name":273,"field":259},{"key":275,"name":276,"field":259},{"key":278,"name":279,"field":259},{"key":281,"name":282,"field":259},{"key":289,"name":290,"field":284},{"key":292,"name":293,"field":284},{"key":295,"name":296,"field":284},{"key":298,"name":299,"field":284},{"key":301,"name":302,"field":284},{"key":5,"name_tr":6,"name_en":6,"sort":321,"specializations":322},4,[323,324,325,326,327,328,329],{"key":263,"name":264,"field":5},{"key":153,"name":154,"field":5},{"key":160,"name":161,"field":5},{"key":157,"name":158,"field":5},{"key":163,"name":164,"field":5},{"key":169,"name":170,"field":5},{"key":166,"name":167,"field":5},{"key":331,"name_tr":332,"name_en":332,"sort":333,"specializations":334},"ai-engineer","AI Engineer",5,[335,336,337,340],{"key":263,"name":264,"field":331},{"key":269,"name":270,"field":331},{"key":338,"name":339,"field":331},"llm-rag","LLM\u002FRAG",{"key":341,"name":342,"field":331},"mlops","MLOps",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"database","Veritabanı","Database",6,[349,350,353,356,359],{"key":263,"name":264,"field":344},{"key":351,"name":352,"field":344},"postgresql","PostgreSQL",{"key":354,"name":355,"field":344},"mysql","MySQL",{"key":357,"name":358,"field":344},"mongodb","MongoDB",{"key":360,"name":361,"field":344},"redis","Redis",{"key":363,"name_tr":364,"name_en":365,"sort":366,"specializations":367},"mobile","Mobil","Mobile",7,[368,369,372,375,378],{"key":263,"name":264,"field":363},{"key":370,"name":371,"field":363},"ios-swift","iOS (Swift)",{"key":373,"name":374,"field":363},"android-kotlin","Android (Kotlin)",{"key":376,"name":377,"field":363},"flutter","Flutter",{"key":379,"name":380,"field":363},"react-native","React Native",{"key":382,"name_tr":383,"name_en":384,"sort":385,"specializations":386},"security","Güvenlik","Security",8,[387,388,391,394,397,400],{"key":263,"name":264,"field":382},{"key":389,"name":390,"field":382},"appsec","AppSec",{"key":392,"name":393,"field":382},"offensive-pentest","Offensive \u002F Pentest",{"key":395,"name":396,"field":382},"cloud-security","Cloud Security",{"key":398,"name":399,"field":382},"devsecops","DevSecOps",{"key":401,"name":402,"field":382},"blue-team-incident","Blue Team \u002F Incident",{"key":404,"name_tr":405,"name_en":406,"sort":407,"specializations":408},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[409],{"key":263,"name":264,"field":404},{"key":411,"name_tr":412,"name_en":412,"sort":413,"specializations":414},"data-engineer","Data Engineer",10,[415],{"key":263,"name":264,"field":411},{"key":417,"name_tr":418,"name_en":419,"sort":420,"specializations":421},"game-dev","Oyun Geliştirme","Game Development",11,[422],{"key":263,"name":264,"field":417},{"key":424,"name_tr":425,"name_en":425,"sort":426,"specializations":427},"ml-engineer","ML Engineer",12,[428],{"key":263,"name":264,"field":424},[14,15,16],{"junior":431,"mid":433,"senior":434},{"questions":432,"median_sec":3},20,{"questions":432,"median_sec":3},{"questions":432,"median_sec":3},[10,436],"en",[438,439],"google","github",21750,true]