İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • DevOps
  • Azure Pipelines Task Extension’ı esbuild ile Küçültmek
Bulut Altyapı DevOps Azure Pipelines, bundle, DevOps optimizasyonu, esbuild, performans, self-hosted agent, Task Extension Aşkın KILIÇ 12/07/2026 2 Yorumlar

Azure Pipelines Task Extension’ı esbuild ile Küçültmek

Azure Pipelines Task Extension'ı esbuild ile Küçültmek
📑 İçindekiler
  1. Neden Task Boyutu Düşündüğünüzden Daha Önemli?
  2. Peki Rakamlar Ne Diyor?
  3. Bundling: Sadece Tarayıcı İşi Değil
  4. Türkiye'deki Kurumsal Ekipler İçin Not
  5. Çözüm: Tek Dosyada Toplamak
  6. Dikkat Edilmesi Gereken Şeyler
  7. Enterprise vs Küçük Ekip: Kim Nasıl Yaklaşmalı?
  8. Alternatif Yaklaşımlar
  9. İlk adımda neye bakmalı?
  10. Kişisel Görüşüm
  11. Sıkça Sorulan Sorular
  12. esbuild ile bundle edilen task'lar Azure DevOps Marketplace'te sorunsuz çalışır mı?
  13. Bundle sonrası task'ımın boyutunu daha da küçültmek için ne yapabilirim?
  14. Native module bağımlılığım var, bundle nasıl yapayım?
  15. Persistent (kalıcı) self-hosted agent kullanıyorum, yine de bundle etmeli mıyım?
  16. Bundle sonrası hata ayıklamak zorlaşır mı?
  17. Kaynaklar ve İleri Okuma
⏱️ 12 dk okuma📅 12 Temmuz 2026🔄 Güncelleme: 15 Temmuz 2026

Şunu bir düşünün: Her pipeline job’unda, her agent’ta, günde binlerce kez indirilen bir task extension’ınız var. İçinde de on binlerce minicik dosya ve koca bir node_modules klasörü dürüyor. Ne oluyor? Agent, task’ı çalıştırmadan önce saniyeler içinde bile olsa bir “hazırlık” süresi yiyor. Çarpın bunu binle, on binle… Fatura şişiyor.

Microsoft DevOps ekibinden David Paquette geçenlerde güzel bir yazı paylaştı — kendi iç Azure Pipelines task extension’larını esbuild ile bundle edip, task başına yaklaşık ~4.5 saniyeden ~0.25 saniyeye indirmişler. Yanı 17 kat hızlanma. Üstelik bunu 20 satır civarı build tooling ile yapmışlar. İşin garibi şu: Bir yanıyla aşırı basit, öbür yanıyla da insan “bunu neden daha önce kimse kurcalamadı?” diye düşünüyor.

İlgili içerik: Azure Pipelines'a Apple Silicon ve Xcode 27 Geldi

Durun, bir saniye.

Ben de sahada bu tarz görevleri yazan ve dağıtan ekiplerle sık sık çalışıyorum, o yüzden konuya kendi cephemden bakayım istedim. Türkiye’deki kurumsal DevOps ekipleri için de konu baya önemli; özellikle self-hosted agent maliyetlerini kısmak isteyenler varsa, burada gerçekten elle tutulur bir kazanç çıkabiliyor. Evet.

Peki, peki neden?

Çünkü mesele sadece “kodun çalışması” değil. Asıl yük çoğu zaman paketleme tarafında çıkıyor; küçük küçük dosyalar, gereksiz bağımlılıklar, her koşuda yeniden açılan klasörler derken, sistem aslında iş yapmaktan çok hazırlık yapıyor gibi davranıyor. Hani bazen bir şeyin kendisi değil de etrafındaki kalabalık yoruyor ya, tam öyle.

Burada esbuild’in olayı devreye giriyor. Dosyaları tek bir bundle’a topluyorsunuz, dependency ağacını sadeleştiriyorsunuz, sonra agent’ın önüne daha temiz bir çıktı koyuyorsunuz; böylece runtime’da gezilecek yer azalıyor. Startup süresi gözle görülür biçimde düşüyor. Şey yanı, sihir falan değil ama pratikte baya iş görüyor.

Bunu biraz açayım.

Tabiî şunu da söyleyeyim: Her senaryoda aynı sonucu beklemek biraz fazla iyimser olur. Eğer task zaten hafifse veya bağımlılık sayısı azsa, kazanım o kadar dramatik olmayabilir; ama büyük extension’larda fark açık konuşayım can yakıyor. Daha açık söyleyeyim, sız ne dersiniz?

Neyse uzatmayalım.

Araya gireyim: Bu tip iyileştirmelarda en sevdiğim taraf şu: Kod değiştirmeden önce mimariyi biraz toparlayınca ciddi fark çıkabiliyor. Yanı “daha hızlı donanım alalım” demeden önce, dağıttığınız paketin içinde ne taşıdığını bir kontrol etmek lazım. Yukarıda bahsettiğim olay var ya, işte tam orada maliyet sessizce büyüyor.

Neden Task Boyutu Düşündüğünüzden Daha Önemli?

Klasik bir hikâye var burada. Node.js tabanlı bir Azure DevOps task’ı yazıyorsunuz, TypeScript ile başlıyorsunuz, azure-pipelines-task-lib ve birkaç yardımcı npm paketi ekliyorsunuz, sonra transitive dependency’ler bir anda üstünüze yığılıyor… Bir bakmışsınız task klasöründe binlerce dosya var, build alınca da bu klasör olduğu gibi paketleniyor, ardından gidip vsix’in içine giriyor.

Bunu biraz açayım.

Eh, Agent tarafında ne oluyor peki? Job “Initialize” aşamasında şunları yapıyor:

  • Task’ın içerik zıp’ını Azure DevOps’tan indiriyor
  • Bunu diske extract ediyor
  • Node runtime’ı ayağa kaldırıyor
  • Ondan sonra sizin kodunuz çalışmaya başlıyor

İlginç olan şu ki, Ephemeral agent kullanıyorsanız — ki Microsoft-hosted agent’lar ya da her job için sıfırdan başlayan self-hosted konfigürasyonlar tam olarak böyle çalışıyor — cache diye bir şey yok. Her seferinde her şey baştan indiriliyor. Hani “task’ım küçük, bir MB’ı geçmez” diyebilirsiniz. Ama işin aslı boyutta değil, dosya sayısında. Hani ne farkı var diyorsunuz, değil mi? Kulağa ufak geliyor ama pratikte fark ediyor.

Zıp formatının doğası gereği, 10 MB’lık tek bir dosyayı açmak, toplam 10 MB tutan 10.000 küçük dosyayı açmaktan kat kat hızlı. I/O overhead’i, dosya sistemi metadata operasyonları, kısacası her dosya için ayrı bir “muhasebe” işi yapılır. Bundle etmek işte tam da bunu ortadan kaldırıyor.

Peki Rakamlar Ne Diyor?

Yanı, Microsoft ekibinin ölçümleri şöyle çıkmış:

Peki neden?

Metrik Önce Sonra
Task başına download + extract ~4.5 sn ~0.25 sn
10 saniyeden uzun süren indirmeler Yüksek %98 azalma
Task klasöründeki dosya sayısı Binlerce 3 (script.js, task.json, icon.png)
Paket boyutu On MB’lar Tek digit MB

%98. Bu rakam insanı durduruyor biraz. Yanı pratikte “download uzun sürdü” derdi neredeyse tamamen bitmiş gibi görünüyor.

Evet.

Açık konuşayım, burada mesele sadece hız da değil; daha az dosya demek daha az sürpriz demek, daha az sürpriz de pipeline içinde daha sakın sabahlar demek (özellikle onlarca task kullanan ekiplerde). Bir bakıma, sız ne dersiniz?

Bundling: Sadece Tarayıcı İşi Değil

Şöyle söyleyeyim, Bundler ve tree-shaking denince çoğumuzun aklına direkt front-end geliyor, değil mi? Webpack, Vite, esbuild… kafa oraya gidiyor hemen. “Kullanıcıya daha az JS gönderelim, sayfa hızlı açılsın” mantığı var ya, işte o. Server-side ya da CLI tarafında işe genelde “aynı makinede çalışıyor, bundle etmeye ne gerek var” diye geçiliyor.

Yanlış düşünce bu. Bak şimdi, pipeline task’ı aslında dağıtılan bir artifact. Her build agent’ı önü her seferinde baştan indiriyor, hem de defalarca; günde binlerce kez olunca olayın rengi değişiyor (ilk duyduğumda inanamadım). Bu tam da bundling’in çözdüğü problem. Front-end dünyasında bu maliyeti tarayıcı ödüyor, burada işe build agent ödüyor. Maliyet aynı, sadece cebi değişiyor.

Aynı mantık npm-published CLI’lar, serverless function paketleri, hatta container image layer’ları için de geçerli. Eğer artifact’ınız koca bir — en azından ben öyle düşünüyorum — node_modules ağacını sırtında taşıyorsa — hiç çağırmadığınız kodu tree-shaking ile ayıklamak, kalan parçayı da tek dosyada toparlamak — nereye deploy ederseniz edin fark yaratıyor. Küçük gibi dürüyor ama değil.

Türkiye’deki Kurumsal Ekipler İçin Not

Şimdi işin Türkiye tarafına gelelim. Birçok kurumsal müşteride self-hosted agent kullanılıyor; sebep de malum: güvenlik, network izolasyonu, on-prem kaynaklara erişim. Bu agent’lar çoğu zaman Azure VM’lerinde dönüyor ya da direkt on-prem ortamda koşturuluyor. Kulağa sıradan geliyor ama pratikte hikâye biraz daha sert.

Şimdi gelelim işin can alıcı noktasına.

İşin garibi, Self-hosted agent’ta üç senaryo var:

  1. Persistent agent: Aynı VM sürekli ayakta kalıyor, task’lar cache’lenebiliyor. Bundling’in etkisi ilk çalıştırmada net hissediliyor, sonra açıkçası çok dramatik olmuyor.
  2. Ephemeral agent (Scale Set Agents): Her job için yeni VM ayağa kalkıyor. Task her seferinde yeniden indiriliyor. İşte bundling burada baya işe yarıyor.
  3. Container-based agent: Her job fresh container içinde çalışıyor. Yine her seferinde download var, sürpriz yok.

Şöyle ki, Kurumsal ekiplerde son yıllarda genel yön Scale Set Agents veya container tabanlı ephemeral kurulumlara kaydı diyebilirim. Sebep basit: güvenlik. Bir job’un bir sonrakini kirletmesi istenmiyor, haklı olarak da istenmiyor. Az önce bunu doğru tercih diye söyledim ama küçük bir bedeli var: cold start maliyeti. Task’larınızı bundle edince o bedelin bir kısmını sessizce siliyorsunuz.

💡 FinOps Notu: Microsoft-hosted agent’ta dakika başına ücret ödüyorsunuz. Job başına ortalama 5-6 task varsa, her birinden 4 saniye kazanmak demek job başına ~25 saniye demek. Günde 500 pipeline çalıştıran bir kurumsal ekipte bu, ayda ~60 saat parallel job tasarrufuna denk. TL bazında ciddi para.

Çözüm: Tek Dosyada Toplamak

İşin güzel tarafı şu: çözüm aslında göz korkutmuyor. esbuild’e, “bak şu entry point’ten başla, bağımlılıkları tek tek izle, sonra hepsini bir dosyada topla” demeniz yetiyor (ki bu çoğu kişinin gözünden kaçıyor) — valla güzel iş çıkarmışlar —. Sonunda task klasörü üç parçaya düşüyor, biraz da şaşırtıcı şekilde sadeleşiyor:

Evet, doğru duydunuz.

  • script.js — bundle edilmiş, büyük çoğunluk bağımlılıklarıyla birlikte tek dosya
  • task.json — Azure DevOps’un task’ı tanıyabilmesi için manifest
  • icon.png — UI’daki ikon

Kendi deneyimimden konuşuyorum, Bak şimdi, örnek bir build script’i şöyle olabilir:

// build-task.js
const esbuild = require('esbuild');
const fs = require('fs');
const path = require('path');
const taskDir = 'tasks/myTask';
const outDir = 'dist/tasks/myTask';
// 1) Bundle et
esbuild.buildSync({
entryPoints: [path.join(taskDir, 'index.ts')],
bundle: true,
platform: 'node',
target: 'node20',
outfile: path.join(outDir, 'script.js'),
minify: true,
external: [], // Node built-in'ler zaten hariç
format: 'cjs',
});
// 2) task.json ve icon.png'yi kopyala
fs.copyFileSync(
path.join(taskDir, 'task.json'),
path.join(outDir, 'task.json')
);
fs.copyFileSync(
path.join(taskDir, 'icon.png'),
path.join(outDir, 'icon.png')
);
// 3) task.json'daki execution.Node20.target'ı script.js'e çevir
const manifest = JSON.parse(
fs.readFileSync(path.join(outDir, 'task.json'), 'utf8')
);
manifest.execution.Node20.target = 'script.js';
fs.writeFileSync(
path.join(outDir, 'task.json'),
JSON.stringify(manifest, null, 2)
);
console.log('Task bundled:', outDir);

Gördüğünüz gibi işin özü bu kadar. Yirmi beş satır falan ediyor; küçük görünüyor ama etkisi baya hissediliyor. Bir anda dağılan yapı toparlanıyor, deploy tarafı da daha az naz yapıyor.

Dikkat Edilmesi Gereken Şeyler

Her şey güllük gülistanlık değil tabi (en azından benim deneyimim böyle). Hani bazen “tamamdır” diyorsunuz ama sonra köşeden bir paket çıkıp sizi hafifçe dürtüyor. Şu noktalara dikkat etmek lazım:

  • Native module’ler: node-gyp ile derlenen paketleriniz varsa (mesela bcrypt, sharp) bundle işi biraz dallanıp budaklanır. Bu paketleri external olarak işaretleyip ayrıca kopyalamak gerekebilir. — ciddi fark yaratıyor
  • Dinamik require: Bazı paketler runtime’da string bazlı require yapar. Bundler bunları genelde yakalayamaz. Böyle bir durum varsa ilgili paketi manuel olarak external‘a ekleyin; yoksa sonradan uğraştırır. (bu kritik)
  • Lisans yükümlülükleri: Bundle sonrası tek dosyanın içinde epey OSS kod birikir. Lisans (MIT, Apache vb.) yükümlülüklerini bir NOTICE dosyasında toplamak iyi fikir olur. Bu taraf teknikten çok hukuk işi.
  • Source map: Debug için source map üretin ama vsix’in içine koymayın. Ayrı bir artifact olarak sembol sunucusuna yüklemek daha temiz durur.

Sahada gördüğüm en yaygın hata: Ekipler bundling’e geçiyor ama task.json‘daki execution.target alanını güncellemeyi unutuyor. Task hâlâ eski entry point’i (mesela index.js) arıyor, bulamıyor ve pipeline patlıyor. Build script’inizde bu alanı otomatik güncelleyin; unutma riskini iyice azaltmış olursunuz.

Evet.

Neyse uzatmayalım; burada kritik nokta şu: tek dosyaya toplama işi sadece temizlik sağlamıyor, aynı zamanda bakım yükünü de azaltıyor. Sız ne dersiniz?

Enterprise vs Küçük Ekip: Kim Nasıl Yaklaşmalı?

Bu iş, herkes için aynı kapıya çıkmıyor. Açık konuşayım, biraz duruma bağlı:

Küçük ekipseniz (birkaç task, düşük hacim): Bir günlük uğraşla bunu halledip geçersiniz, sonra sistem kendi kendine akıyor gibi olur. Görünür kazanç da şu oluyor: task marketplace’e yüklerken vsix küçülüyor, indirme biraz hızlanıyor. Devrim değil, ama hijyen tarafında baya iş görüyor.

Bi saniye — Enterprise seviyede (10+ task, günde binlerce çalıştırma): İşte burada tablo değişiyor. Bundle etmek, CI bir düşüneyim… altyapı maliyetini aşağı çekiyor; üstelik task güncellemeleri agent’lara daha hızlı ulaşıyor, deployment sırasında yaşanan o ufak sürtüşmeler de azalıyor. FinOps tarafında ölçülebilir bir karşılık veriyor, yanı laf olsun diye yapılmış bir iyileştirme değil.

Ha bu arada, bu tarz CI/CD iyileştirmelarını biraz daha geniş açıdan okumak isterseniz, Azure IaaS Maliyet Optimizasyonu: Sahadan FinOps Notları yazımda benzer sistematik yaklaşımları anlatmıştım. Küçük dokunuşlar var ya, bazen toplamda beklenmedik kadar fark yaratıyor.

Evet.

Alternatif Yaklaşımlar

esbuild tek yol değil tabiî. Hatta bazen ilk bakışta en parlak seçenek gibi dürüyor ama dur bir saniye — senaryoya göre başka araçlar da gayet iş çıkarabiliyor:

  • webpack: Daha eski sayılır, evet biraz ağır kalabiliyor; ama ekosistemi oturmuş durumda. Zaten webpack config’ınız hazırsa sırf alışkanlığı bozmak için yeni maceraya gerek yok.
  • rollup: Library bundling tarafında iyi gidiyor ama task paketleme için bazen fazla süslü kalıyor. Yanı olur mu? Olur. Ama her zaman en mantıklısı mı? Emin değilim.
  • ncc (@vercel/ncc): GitHub Actions dünyasında sık görüyorsunuz. Node.js CLI işleri için özellikle pratik tasarlanmış; Azure DevOps task’larında da rahatça kullanılıyor ve çoğu zaman “kurduk çalıştı” hissi veriyor.
  • tsup: TypeScript odaklı geliyor ve esbuild üstüne kurulu bir wrapper gibi davranıyor. Config tarafı sadeleşiyor; fazla ayar kurcalamak istemeyenler için fena değil.

Bence ilk bakılacak yer esbuild. Hızlı ilerliyor, config’i sade tutuyor ve TypeScript’i doğrudan yutuyor diyebilirim (ciddiyim). Ama ncc da boş değil; hatta bazı durumlarda size daha az karar verme yükü bırakıyor (bu da küçümsenecek şey değil). Denemekte fayda var.

Peki neden?

İlk adımda neye bakmalı?

Denemek istiyorsanız, bence bir hafta sonu ayırın ve şunları yapın:

  1. En büyük ve en sık çalışan task’ınızı seçin. Etkiyi orada daha net görürsünüz, boşuna küçük işlerle oyalanmayın.
  2. Mevcut task klasörünün boyutunu ve dosya sayısını ölçün. Baseline bu, yanı elinizdeki gerçek başlangıç noktası. — ciddi fark yaratıyor
  3. Bir dev/staging pipeline’da task’ın “Initialize job” süresini 10 çalıştırma boyunca ölçün. Ortalama alın, tek koşuya güvenmeyin; bazen sistem kafa karıştırıyor.
  4. esbuild ile bundle edin, yukarıdaki script’i temel alın. Hani şu hızlı paketleme işi var ya, burada baya iş görüyor. (bu kritik)
  5. Aynı pipeline’ı tekrar 10 kez çalıştırın. Sonra iki tarafı yan yana koyun, fark gerçekten var mı bakın.
  6. Sonuç iyiyse diğer task’lara da rollout planı yapın. Ama hemen her yere atlamayın; önce küçük bir grupta doğrulayın. (bence en önemlisi)

Bu arada, uçtan uca DevOps otomasyonu ve pipeline optimize etmeu tarafında agent-tabanlı yaklaşımlar da iyice konuşuluyor. Evet, biraz kalabalık — en azından ben öyle düşünüyorum — bir alan öldü ama işin aslı ilginç; konu sizi çekiyorsa Agent Harness: Kıskacı Büyütmek. Yetenekleri Kuşanmak yazısına da göz atabilirsiniz — farklı bir açıdan bakıyor, fena değil.

Kişisel Görüşüm

Açık konuşayım, bu tip “az bilinen ama ciddi fark yaratan” optimizasyonları ben de baya severim. Çünkü ekiplerin çoğu DevOps tarafında yeni araçların peşine düşüyor, yeni platform bakıyor, yeni pipeline kuruyor; ama eldeki setup’ı biraz kurcalayıp iyileştirmeyi unutuyor. Halbuki bazen mevcut sistemi %20 hızlandırmak, bambaşka bir yere taşınmaktan hem daha ucuz oluyor hem de daha az risk çıkarıyor.

Bir de şu var. 20 satırlık bir değişiklikle %98 iyileşme görünce insan önce seviniyor, sonra da “tamam da burası. Ne haldeymiş?” diye düşünüyor. Yanı birçok ekip task’larını gözden geçirmeden shipliyor ve bedelini her build’de, her deploy’da, hatta bazen gece yarısı telefon çaldığında ödüyor. Bu yazıyı okuduysanız, artık bunu bilmeden yapma şansınız pek kalmadı. Fark ettiyseniz, üstüne gitmek lazım.

Tabi esbuild tarafı da masal değil, önü da söyleyeyim. Bazı edge case’lerde saç baş yolduran şeyler çıkarabiliyor; özellikle dynamic import ve worker thread tarafında, hani “bu niye şimdi böyle davrandı?” dedirten anlar oluyor (bu konuda ikircikliyim). O yüzden production’a çıkmadan önce test coverage’ınızı ciddiye alın. Bundling sonrası mutlaka smoke test yapın.

Sıkça Sorulan Sorular

esbuild ile bundle edilen task’lar Azure DevOps Marketplace’te sorunsuz çalışır mı?

Evet, çalışıyor. Azure DevOps agent’ı aslında task’ın nasıl paketlendiğine hiç bakmıyor — sadece task.json‘daki execution.target‘ın gösterdiği JS dosyasını Node ile çalıştırıyor. Yanı tek dosya da olsa, node_modules ağacı da olsa, hiçbir fark etmiyor.

Bundle sonrası task’ımın boyutunu daha da küçültmek için ne yapabilirim?

Neyse, i̇lginç olan şu ki, esbuild’de minify: true flag’ını kullanın. Bir de drop: ['console', 'debugger'] ile production’da gereksiz kodları temizleyin — bence bu ikisi zaten olmazsa olmaz (bizzat test ettim). Mesela aws-sdk gibi büyük paketleri daha modüler alternatiflerle (v3 SDK gibi) değiştirmek de epey yardımcı oluyor. Ayrıca tree-shaking’i

Native module bağımlılığım var, bundle nasıl yapayım?

Native binary içeren paketleri esbuild’de external array’ine eklemeniz gerekiyor. Bunları bundle etmeye çalışmak yerine, task klasörüne ayrıca kopyalayın — böylece runtime’da require ile rahatlıkla bulabiliyor. Tecrübeme göre bir de şunu yapın: native bağımlılığı olmayan pure JS alternatifleri araştırın, çoğu zaman aslında bir alternatifi vardır.

Persistent (kalıcı) self-hosted agent kullanıyorum, yine de bundle etmeli mıyım?

İlk çalıştırmada büyük fark görüyorsunuz, sonrakilerde task cache’lendiği için etki biraz azalıyor. Ama her task güncellemesinde yeniden indiriliyor. Açıkçası, yine de yapın — hem cache invalidation senaryolarında hem de agent’ı yeniden kurduğunuzda kazançlı çıkıyorsunuz. Hani bir kerelik bir iş, neden yapmayasınız ki?

Bundle sonrası hata ayıklamak zorlaşır mı?

Biraz zorlaşıyor, evet — çünkü tüm kod tek dosyada birleşiyor. Bu yüzden esbuild’e sourcemap: true verip source map’i ayrı bir dosya olarak saklayın — itiraf edeyim, beklentimin üstündeydi —. Production hata log’larındaki satır numaralarını source map ile mapliyebiliyorsunuz. Bence en pratik çözüm bu. VS Code debugger’ı da source map ile lokal debug yapmanıza izin veriyor zaten.

Kaynaklar ve İleri Okuma

Shrinking Azure Pipeline task extensions using esbuild — Microsoft DevOps Blog

esbuild Resmî API Dokümantasyonu

Azure DevOps: Add a Custom Pipeline Task Extension

Bak şimdi, azure-pipelines-task-lib GitHub Repo

🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

T-SQL Regex Artık Büyük Veride de Rahat: CU5 Detayı
T-SQL Regex Artık Büyük Veride de Rahat: CU5 Detayı23 May 2026
GitHub Copilot app now available in the usage metrics API
GitHub Copilot app now available in the usage metrics API18 Tem 2026
ABD Devletine Açılan Sır Kapısı: Azure Top Secret Bulutta Yapay Zekâ ve Verinin Yeni Çağı
ABD Devletine Açılan Sır Kapısı: Azure Top Secret Bulutta Yapay Zekâ ve Verinin Yeni Çağı24 Mar 2026
Data API Builder 2.0: REST Yolunu İş Yapına Göre Kurmak
Data API Builder 2.0: REST Yolunu İş Yapına Göre Kurmak1 Tem 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Azure Pipelines bundle DevOps optimizasyonu esbuild performans self-hosted agent Task Extension
Önceki yazı

etcd v3.7.0 Çıktı: RangeStream Devri ve v2store’a Elveda

Sonraki yazı

Pure Virtual C++ 2026: Hızlı Build, Hızlı Çalışan Kod Zamanı

İlginizi Çekebilir

Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
Aşkın KILIÇ 0

Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü

03/09/2026
GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
Aşkın KILIÇ 0

GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor

03/09/2026
SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar
Aşkın KILIÇ 2

SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar

02/09/2026

2 comments

comments user
İrem B. 12/07/2026 13:46

Bunu hiç düşünmemiştim açıkçası, node_modules’ün agent tarafında bu kadar yük yarattığının farkında değildim. 4.5 saniyeden sıfıra inmek tek task için bile etkileyici, pipeline’da onlarca task varsa toplam fark ciddi oluyor. Bu arada agent’ın nasıl çalıştığını merak edenler için şu yazı da işe yarar: https://www.askinkilic.com.tr/agent-harness-kiskaci-buyutmek-ve-yetenekleri-kusanmak/

Yanıtla
comments user
Mehmet K. 12/07/2026 22:59

4.5 saniyeden sıfıra yakın bir şeye düşürmek gerçekten etkileyici, özellikle pipeline’ların sık çalıştığı ortamlarda bu fark birikince çok anlamlı oluyor. Biz de benzer bir şişkinlik sorunuyla boğuşuyorduk ama esbuild’i hiç düşünmemiştik, deneyeceğiz kesinlikle. Bu arada şu yazınız da güzeldi: etcd v3.7.0 Çıktı: RangeStream Devri ve v2store’a Elveda — https://www.askinkilic.com.tr/etcd-v370-cikti-rangestream-devri-ve-v2storea

Yanıtla

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Gemini 3.8 Flash GitHub Copilot'ta Kullanıma Sunuldu
    03/09/2026 Gemini 3.8 Flash GitHub Copilot’ta Kullanıma Sunuldu
  • Kubernetes v1.37 HPA ile İş Yüklerini Sıfıra İndiriyor
    03/09/2026 Kubernetes v1.37 HPA ile İş Yüklerini Sıfıra İndiriyor
  • Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
    03/09/2026 Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
  • GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
    03/09/2026 GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
  • Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad
    03/09/2026 Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
    07/04/2026 GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
  • GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
    03/04/2026 GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

Gemini 3.8 Flash GitHub Copilot'ta Kullanıma Sunuldu
Microsoft Azure Yapay Zeka

Gemini 3.8 Flash GitHub Copilot’ta Kullanıma Sunuldu

03/09/2026 Aşkın KILIÇ
Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
Bulut Altyapı Geliştirici Araçları Veri & Analitik

Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü

03/09/2026 Aşkın KILIÇ
GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor

03/09/2026 Aşkın KILIÇ
Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad
Kurumsal Teknoloji Yapay Zeka

Ajanik Yapay Zekâ Terimleri: Loop, Harness ve Squad

03/09/2026 Aşkın KILIÇ
Visual Studio'da Çözüm Bazlı Renk Teması Nasıl Ayarlanır
Geliştirici Araçları Microsoft Azure

Visual Studio’da Çözüm Bazlı Renk Teması Nasıl Ayarlanır

02/09/2026 Aşkın KILIÇ
SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar
DevOps Geliştirici Araçları Yapay Zeka

SPFx Dev Skills: Ajanların Bildiği ve Kaçırdığı Detaylar

02/09/2026 Aşkın KILIÇ
Microsoft Entra ID için Bicep Şablonları Genel Kullanıma
DevOps Güvenlik & Kimlik Microsoft Azure

Microsoft Entra ID için Bicep Şablonları Genel Kullanıma

02/09/2026 Aşkın KILIÇ
Kubernetes v1.37: etcd RangeStream ile Bellek Dostu Liste
Bulut Altyapı Konteyner & Kubernetes

Kubernetes v1.37: etcd RangeStream ile Bellek Dostu Liste

02/09/2026 Aşkın KILIÇ
Visual Studio'da GitHub Pull Request İnceleme Rehberi
DevOps Geliştirici Araçları Yapay Zeka

Visual Studio’da GitHub Pull Request İnceleme Rehberi

01/09/2026 Aşkın KILIÇ
Python in Visual Studio Code – November 2025 Release
Bulut Altyapı Geliştirici Araçları

Python in Visual Studio Code – November 2025 Release

01/09/2026 Aşkın KILIÇ
Azure SRE Agent'ı Connector Namespace ile Güçlendirmek
Bulut Altyapı Microsoft Azure Yapay Zeka

Azure SRE Agent’ı Connector Namespace ile Güçlendirmek

01/09/2026 Aşkın KILIÇ
Enterprise Live Migrations is now in public preview
Bulut Altyapı DevOps

Enterprise Live Migrations is now in public preview

01/09/2026 Aşkın KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps azure sdk Azure SQL bulut bilişim C++ CI/CD CodeQL code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Foundry otomasyon performans Pull Request RAG SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 432 yazı 🏗️ Bulut Altyapı 345 yazı 🤖 Yapay Zeka 289 yazı 🔧 DevOps 242 yazı ☁️ Microsoft Azure 231 yazı 🔒 Güvenlik & Kimlik 199 yazı 🏢 Kurumsal Teknoloji 83 yazı 📊 Veri & Analitik 62 yazı 🐳 Konteyner & Kubernetes 53 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← etcd v3.7.0 Çıktı: RangeStream...
    Pure Virtual C++ 2026: Hızlı B... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS