Tüm yazılar
DEVOPSAğustos 2026·15 dk okuma

Agentic DevOps Nedir?

Statik betiğin yerine karar veren ajanlar konduğunda yazılım teslim hattı nasıl değişir — ve neden her otonomi bir kapı ister.

KaynakAgentic DevOps Nedir?Emre Ozan Memiş · 14 Ağustos 2026 · LinkedIn
Şekil 1 — Betik hattı ve ajan hattıcanlı

Klasik DevOps

Olay
push / PR
Betik
if / then sabit
Yeşil veya kırmızı
karar yok

Agentic DevOps

Hedef
issue / alarm
Ajan
planla · araç kullan
Kapı
insan onayı
Ajan hedefi okur, araç seçer, sonuca bakıp planı değiştirir. Hattın iskeleti aynı kalır.

Klasik hat betik koşturur. Agentic hat karar ister.

Agentic DevOps, yazılım geliştirme yaşam döngüsünün (SDLC) her aşamasına — plandan koda, testten dağıtıma, işletmeden izlemeye — hedef verilen, bağlam okuyan, araç kullanan yapay zekâ ajanlarını ekip arkadaşı olarak yerleştiren bir teslim yaklaşımıdır. DevOps’un “tekrarlanabilir, sürekli, her zaman açık hat” ilkesi durur. Değişen şey, hattın içine yalnızca statik otomasyon değil, sınırlı otonomi konmasıdır.

Somut hali tanıdıktır: hata çıktısını okuyup düzeltme öneren, issue’dan çekme isteği açan, bağımlılık açığını görüp yama dalı hazırlayan ajanlar. Bunlar sihir değildir. Hepsi aynı sözleşmeye bağlıdır: ajan önerir ve uygular; geri alınamayan yazma bir kapıdan geçer.

Bu ayrımı evrak hattı yazımızda süreç tarafında gördük. Orkestratör bir büyük dil modeli (LLM) değildi; graf ve durumdu. Agentic DevOps’ta da orkestratör GitHub Actions, dal koruması ve ortam onayıdır. Copilot coding agent, ajan kipindeki düzenleyici, CodeQL Autofix — bunlar düğümdür. Düğüm, kapının yerini tutmaz.

Betik koşulu bilir, bağlamı bilmez

Klasik hat, ‘test kırmızıysa dur’ der. Neden kırmızı olduğunu, hangi dosyanın sorumlu olduğunu, yamanın güvenli olup olmadığını çıkarmaz.

Ajan hedefi okur, sonra araç seçer

Issue’daki kabul kriteri, alarm özeti veya kırık test çıktısı bir görev tanımına dönüşür. Ajan planlar, repo’ya bakar, komut çalıştırır, sonucu geri okur.

Hız, birleştirme yetkisi değildir

Ajan dal açabilir, çekme isteği (pull request) üretebilir, inceleme yorumu bırakabilir. main’e yazma hâlâ kapıdır. Önceki yazımızdaki uygulayıcı ile aynı kural.

İskelet değişmez, içindeki karar değişir

Tekrarlanabilir, sürekli, her zaman açık bir hat durur. İçine yalnızca statik otomasyon değil; bütçeli, izlenen, onaylı ajan oturur.

Hattın faydası da aynı yerde durur: daha hızlı teslim, daha tutarlı test, daha az tekrarlayan el işi. Agentic katman bunu “daha çok commit” diye satmaz. Satılan şey, insanın zamanını mimariye ve kabul kriterine bırakmasıdır. Betik hâlâ derler, test eder, paketler. Ajan, betiğin cevaplayamadığı “şimdi ne yapmalıyız?” sorusunu sınırlı bir bütçeyle dener.

Üretici model yazar. Ajan tur atar.

Üretici yapay zekâ (generative AI) örüntüden içerik üretir: bir komut istemine (prompt) cevap verir, durur. Agentic sistem aynı modeli bir döngünün içine alır. Hedef alır, işi adımlara böler, araç çağırır, çıktıyı gözlemler, planı günceller. Kod ya derlenir ya derlenmez; bu, halüsinasyona karşı en ucuz doğrulamadır — yeter ki ajan testi silme yetkisine sahip olmasın.

Şekil 2 — Ajan döngüsücanlı
Hedef al
doğal dil
Planla
adımlara böl
Araç kullan
repo, kabuk, API
Gözlemle
çıktı / hata
Uyum sağla
planı güncelle
Bütçe
adım 1 / 5 · azami tur sabit
Üretici yapay zekâ bir çıktı verip durur. Ajan, hedef doğrulanana kadar plan–eylem–gözlem turunu sürdürür.

Döngünün kendisi ürün adı değildir. Python’da on satırlık bir araç şeması da aynı desendir, Copilot coding agent da. Fark, production’a yaklaştıkça eklenen katmanlardır: izin listesi, adım tavanı, denetim izi (audit trail), insan onayı. “Ajan çalıştı” bir log satırı değil; hangi aracın, hangi argümanla, hangi kapıdan geçtiğinin kaydıdır.

ajan/dongu.ts — plan, eylem, gözlem
kod
async function hedefeYuru(hedef: string, azamiTur = 8) {
  const bellek: Adim[] = []

  for (let tur = 0; tur < azamiTur; tur++) {
    const karar = await planla(hedef, bellek)
    if (karar.bitti) return karar.ozet

    if (!izinli(karar.arac)) throw new PolitikaReddi(karar.arac)

    const gozlem = await araciCalistir(karar.arac)
    bellek.push({ tur, arac: karar.arac, gozlem })
  }

  throw new ButceAsimi(hedef)
}

Sekiz aşama durur. Her kutuya bir rol düşer.

Teslim hattı montaj bandı gibi anlatılır; pratikte döngüdür. Özellik lineer ilerlese bile sistem, yayınlandıktan sonra da izleme ile plana geri döner. Agentic DevOps bu sekiz kutuyu silmez. Her kutuya “burada ajan ne yapar, burada insan ne tutar” diye bir cümle ekler.

Şekil 3 — Teslim hattının sekiz aşaması
1. Plan
Issue ajan görevi olur
2. Kod
Ajan kipinde düzenleme
3. Derle
CI her PR’da
4. Test
Kırılınca triyaj
5. Yayın
Onay kapısı
6. Dağıt
Kademeli ortam
7. İşlet
Alarm → issue
8. İzle
Geri besleme
yazma ve birleştirme kapısız ilerlemez
Hattın kendisi değişmez. Değişen şey, her kutuya karar verebilen bir ajanın oturması ve kırmızı kutunun (yazma / birleştirme) kapısız kalmamasıdır.

Plan

İyi yazılmış bir issue, ajan için görev sözleşmesidir. Kabul kriteri yoksa ajan da tahmin eder.

Kod

Ajan kipinde (agent mode) hedef verilir; dosyayı insan seçmez, ajan bulur. CLI aynı döngüyü terminalde koşturur.

Derle ve test

CI kırılınca ajan triyaj üretebilir. Testi ‘geçir’ demek yetmez; kırmızıyı yeşile boyamak yasaktır.

Yayın ve dağıt

Dağıtım betiği ajanın elinde olmamalı. Ortam (environment) onayı ve secret, ajan oturumunun dışında kalır.

İşlet ve izle

Alarm issue açar, issue ajan görevi olur, düzeltme PR’ı döner. Döngü kapanır; kapı kapanmaz.

Sürekli entegrasyon (CI) hâlâ sık birleştirmeyi ucuz kılar. Sürekli teslimat veya dağıtım (CD) hâlâ yeşil hattı ortama taşır. Sürekli test hâlâ kırmızıyı durdurur. Ajan bunları ikame etmez; kırmızı çıktıyı okuyan, issue’yu dala çeviren, incelemenin ilk turunu yapan katmandır. İnsan, ikinci turda mimariyi ve riski görür — noktalı virgülü değil.

Yığın örnek olsun diye GitHub. Kural yığından bağımsız.

Aşağıdaki isimler bir pazar listesi değil, bir hattın üzerine oturan somut düğümlerdir: Copilot coding agent issue’yu PR’a çevirir; ajan kipi ve Copilot CLI aynı döngüyü editörde ve terminalde koşturur; model bağlam protokolü (MCP) ajanı issue takip, veritabanı veya gözlemlenebilirlik aracına standart bağlar; Actions derler ve test eder; Copilot code review ilk bakışı yapar; Dependabot ve CodeQL güvenliği sola kaydırır. Araç değişir. Sözleşme değişmez: ajan yazabilir, birleştiremez.

.github/copilot-instructions.md
kod
# Ajan her görevde bunu okur

- Yeni davranış için birim testi yaz.
- main dalına doğrudan push yok; her zaman PR.
- Secret’ı dosyaya, yoruma, komut istemine yazma.
- Testi silerek veya atlayarak yeşil alma.
- Public API değişirse changelog güncelle.

Issue tarafında da aynı netlik gerekir. “Bir retry ekle” ajanı serbest bırakır. Bağlam, dosya yolu, 4xx/5xx ayrımı ve test beklentisi bir görev sözleşmesidir. Ajanın kalitesi çoğu zaman modelden değil, issue’nun kabul kriterinden gelir.

politika/birlestirme.ts
kod
const ajanYetkisi = {
  dalAc: true,
  prAc: true,
  incelemeYorumu: true,
  secretOku: false,
  mainBirlestir: false,
} as const

function birlestirilebilirMi(pr: CekmeIstegi) {
  return
    pr.ciYesil &&
    pr.otomatikIncelemeBitti &&
    pr.insanOnayi >= 1 &&
    !pr.ajanKendiniOnayladi
}

CI kırıldığında ajanın yapabileceği en ucuz iş, logu insana çevirmektir — kök neden taslağı, PR yorumu. Yapmaması gereken iş, kırmızıyı sessizce yeşile boyamaktır. Dağıtım tarafında da aynı çizgi: production environment’ı ajanın permissions bloğuna yazılmaz; onay kapısı Actions’ta kalır. Alarm geldiğinde issue açılır, issue ajan görevi olur, düzeltici PR döner. İzleme, hattın başına plan olarak geri akar.

Ajan cluster’a değil, Git’e yazar.

Dağıtım aşamasında ajanın eline kubectl apply vermek, evrak hattındaki tek döngüyle aynı kırılmadır: okuma, karar ve geri alınamayan yazma aynı elde toplanır. Push tabanlı CD’de ajan (veya bir iş akışı) cluster’a doğrudan yazar. İz Git’te değil, o anki komutta kalır. Geri alma, bir revizyon değil bir umuttur.

GitOps bu yazmayı ters çevirir. Desired state (istenilen durum) Git’te durur. Argo CD cluster’ı o duruma yakınsar (reconcile). Ajanın işi image etiketini, replica sayısını veya bir ConfigMap anahtarını bir çekme isteğinde değiştirmektir. Birleştirme kapısı açılmadan Argo hiçbir şey görmez. Kapı açılınca Argo farkı görür; Kubernetes Deployment, servise ait tüm pod’ları RollingUpdate ile kademeli yeniler.

CI hâlâ doğrular. GitOps, CD’dir: Git kaynak-gerçektir (source of truth), cluster onun yansımasıdır. Ajan Git’e yazar. Uygulayıcı Argo CD’dir. Kapı, main merge ve Argo syncPolicy’dir.

Şekil 6 — Ajan Git’e yazar, Argo yakınsarcanlı
Hedef
issue / sürüm
Ajan
image etiketi
Manifest PR
Git’e yaz
Merge kapısı
CI + insan
Git
desired state
Argo CD
yakınsar
Pod’lar
rolling update
Ajan kubectl uygulamaz. Desired state Git’te durur; Argo CD farkı görür ve servise ait pod’ları kademeli yeniler.

Rolling update ve geri alma

Servisi güncellemek tek pod’u silmek değildir. Deployment, yeni ReplicaSet’i ayağa kaldırır;maxUnavailable ve maxSurge eski pod’ların ne kadarının duracağını, yenilerin ne kadarının önden geleceğini sınırlar. Readiness probe yeşil olmadan trafik kaymaz. Yeni pod Ready olmazsa rollout durur; ArgoselfHeal ve otomatik geri alma, önceki Git revizyonuna döner. Ajan bu noktada cluster’a “düzelt” demez — Git’teki son sağlıklı durum zaten düzeltmedir.

Şekil 7 — Rolling update ve geri almacanlı
pod-1
v1
pod-2
v1
pod-3
v1
Yakınsa
Argo CD
Üç pod aynı revizyonda. Git henüz yeni etiketi taşımıyor.
deploy/uygulama.yaml
kod
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bildirim-api
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    spec:
      containers:
        - name: api
          image: ghcr.io/kozmoz/bildirim-api:v1.4.2  # ajan yalnızca bu etiketi değiştirir
          readinessProbe:
            httpGet: { path: /healthz, port: 8080 }
argocd/uygulama.yaml
kod
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: bildirim-api
  namespace: argocd
spec:
  source:
    repoURL: https://github.com/Kozmoz-Inovasyon/agentic-gitops-argocd
    path: deploy
    targetRevision: main
  destination:
    server: https://kubernetes.default.svc
    namespace: bildirim
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

Production’da automated sync bile kör değildir. Staging otomatik yakınsar; production Application’da manuel sync veya bir onay penceresi durabilir. Ajan yine Git’e yazar. Prod’a yazan el, Argo’dur — ve o el Git’ten başka bir şey okumaz.

Açık kaynak örnekKozmoz-Inovasyon/agentic-gitops-argocdAjan image etiketini Git’e yazar; yerel yakınlaştırıcı (reconciler) pod’ları kademeli günceller. Küme gerekmez. Sağlıksız sürümde otomatik geri almayı yerelde koşturabilirsiniz.

Daha fazla otonomi, daha dar yetki ister.

Ajanlı hat, klasik otomasyonun risklerini silmez; yenilerini ekler. Komut enjeksiyonu, hassas veri sızıntısı, tedarik zinciri yüzeyi, önyargı ve hedef sapması. Bunların hiçbiri “modele güvenme” nutkuyla kapanmaz. Kapanan yer, yetki matrisidir.

Şekil 4 — Birleştirme kapısıcanlı
Ajan PR’ı
dal + fark
Otomatik inceleme
stil / açık
CI
derle + test
İnsan onayı
bekliyor
Ajan dal açıp PR üretebilir. Kapı kapalıyken birleştirme yok — hız, denetimin yerine geçmez.

Komut enjeksiyonu (prompt injection)

Issue, log veya dış doküman içindeki gizli talimat, ajanın sistem kuralını ezer. Dış metin veri olarak işaretlenir; talimat olarak yorumlanmaz.

Secret sızıntısı

Ajan bağlama aç olduğunda token’ı loga, yoruma veya model çağrısına yazar. Secret prompt’a girmez; Actions secret’ında kalır.

Tedarik zinciri

Bağımlılık PR’ı da bir ajan çıktısıdır. Otomatik birleştirme, Dependabot’u otonom savunma olmaktan çıkarıp otonom saldırı yüzeyine çevirir.

Uyumsuzluk (misalignment)

Hedef ‘testleri geçir’ ise ajan testi siler. Hedef ‘davranışı koru ve kanıtla’ olmalıdır. Ölçü, yeşil tik değil kabul kriteridir.

Şekil 5 — İnsan gözetiminde otonomi
İnsan yönetişimi
hedef · yetki · onay · iz
Ajanlı işlem
planla, araç kullan, uyarlan
Tekrarlanabilir hat
CI/CD, test, secret, dal koruması
Betik otomasyonu kaybolmaz. Üstüne ajan katmanı gelir. En üstte hedef, yetki ve denetim insanda kalır.

İnsan gözetiminde otonomi

Alt katman betik hattıdır: CI, secret, dal koruması, en az yetki. Orta katman ajandır: planlar, araç kullanır, uyarlanır. Üst katman insandır: hedefi yazar, yetkiyi keser, birleştirmeyi imzalar, izi okur. Bu yığın, “otomatik her şeyi yapsın” ile “hiç ajan olmasın” arasında durur. Evrak hattındaki kapı ile aynı cümledir: otonom yol mutlu patikadır; geri alınamayan yazma eşik altında insan döngüde (HITL) kalır. GitOps’ta aynı matris sürer: ajan Git’e yazar,main merge kapısı ve Argo syncPolicy cluster’a yazmayı sınırlar. Ajan prod’a yazmaz.

En az yetki

Workflow yalnızca gereken izni alır. Ajan firewall / allowlist dışarı çağırmaz.

Zorunlu inceleme

Ajanın PR’ı da bir insan onayı ister. Kendi kendini onaylamak yok.

Bütçe ve iz

Tur tavanı, token tavanı, oturum günlüğü. Sonsuz döngü bir özellik değildir.

Anahtarı çevirmek değil, bir depoda kanıtlamak.

Agentic DevOps bir platform alımı değildir. Önce hattın kendisi durur: her commit’te test, main’e doğrudan push yok, secret dosyada yok. Ajan, bu zemine oturur. Zemin yoksa ajan, kırık bir süreci daha hızlı kırar.

  1. 01

    Pilot repo

    Riski düşük, testi olan bir depo. İlk gün production faturası kesen hat değil.

  2. 02

    Katkı kuralı

    Ajan her turda okusun diye kökte kısa bir talimat dosyası. Stil, test, commit kuralı.

  3. 03

    Küçük issue

    Tek dosya + birim test. ‘Tüm teknik borcu kapat’ bir hedef değil, bir dilek.

  4. 04

    Zorunlu CI ve dal koruması

    Ajanın PR’ı da insani PR ile aynı kapıdan geçer.

  5. 05

    Ölç

    PR döngü süresi, yeniden açılan hata, olay çözüm süresi. His değil sayı.

Öğrendiğimiz cümle evrak hattıyla aynıdır. Modeli zeki tut, yetkiyi dar tut, süreci görünür tut. Agentic DevOps, bu üçünün yazılım teslim hattında durduğu yerin adıdır. Ajan sayısı hedef değildir. Hedef, hangi adımın otonom, hangisinin kapılı olduğunu dürüstçe çizebilmektir.

Açık kaynak örnekKozmoz-Inovasyon/agentic-gitops-argocdAjan image etiketini Git’e yazar; yerel yakınlaştırıcı (reconciler) pod’ları kademeli günceller. Küme gerekmez. Sağlıksız sürümde otomatik geri almayı yerelde koşturabilirsiniz.

Süreç konuşması

Kendi hattınızda otonomi ile kapı karışıyor mu?

Demo ile canlı süreç arasındaki fark genelde modelde değil, hangi adımın ajan, hangisinin insan onayı olduğunda çıkar. O sınırı birlikte çizebiliriz.