İç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
  • GitHub Actions’da Özel Runner İmajları: Kontrol Artık Sizde!
Bulut Altyapı DevOps Azure DevOps, build otomasyonu, CI/CD, custom image, DevOps araçları, GitHub Actions, özel runner, pipeline optimizasyonu Aşkın KILIÇ 29/03/2026 0 Yorumlar

GitHub Actions’da Özel Runner İmajları: Kontrol Artık Sizde!

GitHub Actions’da Özel Runner İmajları: Kontrol Artık Sizde!
📑 İçindekiler
  1. İlk Bakışta Özel Runner İmajları: “Nihayet!” Dedirten Yenilik
  2. Custom Image Nedir? Hosting Runner’dan Farkı Ne?
  3. Neden Kendi Imajınızı Kurmalısınız?
  4. Standartlaştırma: Herkes Aynı Zeminde Başlıyor
  5. Hız Kazanmak Mümkün mü?
  6. Maliyetler ve Operasyonel Basitlik
  7. Peki Nasıl Çalışıyor? Adım Adım Kendi Imajınızı Oluşturmak
  8. Başlangıç İçin Bir Temel Şart mı Var?
  9. Kodla Anlatmak Daha Kolay:
  10. İmaj Yükleme ve Kullanma Senaryosu:
  11. Zorluklar & Tuzaklar – Gerçek Hayattan Kısa Notlar
  12. İmaj Yönetimi Sandığınız Kadar Kolay Değil!
  13. Sürüm Takibi – Kaos mu Düzen mi?
  14. Küçük Startup vs Kurumsal Devler – Hangisine Ne Kadar Lazım?
  15. Birkaç Pratik İpucu – Kendi Deneyimlerimden “Acı Reçeteler”  😅
  16. Neleri Beklememek Lazım? Eksikler ve Hayal Kırıklıkları… 🙃
  17. Sıkça Sorulan Sorular
  18. Custom image ile hosted runner arasındaki temel fark ne?
  19. Custom image kullanınca build süreleri gerçekten kısalıyor mu?
  20. Custom image bozulursa ya da güncelleme sonrası sorun çıkarsa ne yapılıyor?
  21. Custom image maliyet ve operasyonel yükü nasıl etkiliyor?

⏱️ 7 dk okuma📅 29 Mart 2026🔄 Güncelleme: 13 Eylül 2026👁️ 67 görüntülenme

İlk Bakışta Özel Runner İmajları: “Nihayet!” Dedirten Yenilik

GitHub Actions tarafında biraz kafa patlatan herkes hosted runner’ların pratikliğini ve bir o kadar da can sıkıcı sınırlamalarını mutlaka fark etmiştir. Her build’da aynı eski setup, sürekli paket çekme, dependency güncelleme… Sanki döngüde dönüp duruyorsun! Arada insanın sabrını baya zorluyor (bizzat test ettim). İşte burada custom image desteği devreye giriyor — lafı dolandırmadan söyleyeyim: Valla bu özellik tam anlamıyla hayat kurtarıyor.

İlgili içerik: GitHub Actions için üç yeni görünürlük ve kontrol özelliği

İlgili içerik: Windows 11 arm64 VS2026 İmajı GitHub Actions’ta GA

İlgili içerik: GitHub Özel Thread Aboneliği Kaldırılıyor

İlgili içerik: Disrupting supply chain attacks on npm and GitHub Actions

Bende ilk defa 2025’in sonbaharında bir finans müşterisiyle Azure DevOps ile GitHub Actions altyapısını karşılaştırırken preview olarak gelen custom image özelliğini test etme şansı doğdu. Açıkçası başlarda kuşkuluydum; ya stabilite sorun çıkarsa diye epey düşündüm. İmaj bozulursa ne olacak? Ama her sürümde biraz daha oturdu ve şimdi genel erişime açıldı. Yanı, abartmıyorum: Gerçek anlamda oyunu değiştiren bir adım öldü.

Custom Image Nedir? Hosting Runner’dan Farkı Ne?

Şöyle söyleyeyim, Klasik GitHub-hosted runner dediğimiz şey size birkaç hazır işletim sistemi (ubuntu-latest, windows-latest vs.) sunuyor. Özelleştirme yapmak isterseniz de pipeline’ın başında upuzun setup script’leriyle cebelleşmek zorunda kalırsınız (ben de ilk duyduğumda şaşırmıştım). Bir de eksik modül draması, dependency nerde kaldı kargaşası…

💡 Bilgi: Custom image ile kendi araçlarını, environment ayarlarını, sertifikalarını daha build başlamadan runner’a gömüyorsun. Böylece her run sıfırdan kurulum derdi yok; “Ay bunu da mı yükleyeceğiz?” stresinden kurtulmak güzel oluyor.
  • Kurumun güvenlik sertifikasını ekle
  • Kendi script toolset’ını ortamda hazır tut
  • Sıkıntılı dependency versiyonlarını pin’le
  • Sık kullanılan CLI araçları önceden yükle

Açıkçası, Küçük bir startup için belki 30 saniye kaybetmek dert değil. Büyük entegrasyonlarda yüzlerce pipeline koşturunca işler çığırından çıkıyor. Geçen yıl Logosoft’taki e-ticaret projemizde klasik runnerlarla job süresi 8-9 dakika iken, custom imajla 3 dakikaya indi! Ekip şaşkınlıktan gözlerini açamadı.

Neden Kendi Imajınızı Kurmalısınız?

Standartlaştırma: Herkes Aynı Zeminde Başlıyor

Hani, “Staging neden prod gibi davranmıyor ya?” sorusu kadar moral bozucu az şey vardır yazılımda… En çok da de de enterprise tarafta branch bazında farklı araç versiyonu kaos çıkarıyor. Custom image ile tüm ekipler aynı tabanda başlıyor; ortalık karışmıyor.

Hız Kazanmak Mümkün mü?

Peki hız artışı var mı? Kesinlikle! En net örneği şöyle anlatayım: Bir data science ekibi Jupyter + Python + spesifik C++ lib’lerine ihtiyaç duyuyordu; setup öyle uzuyordu ki CI/CD’ye burun kıvırmaya başladılar resmen (inanın bana). İşte, custom image ile işleri çözdük; ilk run %70 hızlandı — abarttığımı düşünebilirsin ama bizzat yaşadım!

Maliyetler ve Operasyonel Basitlik

Burası genelde arada kaynıyor ama custom image sayesinde init script masrafından ciddi oranda yırtıyorsunuz — daha az hata demek daha az debug işi yanı saat harcamak azalıyor. Tabiî imaj bakımına gelince iş değişiyor… Oraya da geleceğim.

Her şey güllük gülistanlık değil tabiî; imaj yönetimi ekstra yük getiriyor — eski imajların güncelliğini takip etmeyi unutursan zincirin en zayıf halkası olabilirsin!

Peki Nasıl Çalışıyor? Adım Adım Kendi Imajınızı Oluşturmak

Başlangıç İçin Bir Temel Şart mı Var?

Sürekli şu soru geliyor bana:”Sıfırdan VM mi yaratacağız?” Hayır dostum! GitHub curated base images veriyor sana – mesela Ubuntu’nun stabilize snapshot’ları var ellerinde. Sen bunun üstüne istediğin gibi inşa ediyorsun.

Kodla Anlatmak Daha Kolay:

# Basit bir Dockerfile örneği

FROM ghcr.io/github/runner-base/ubuntu-latest

# Sık kullandığın araçlar gelsin

RUN apt-get update

&& apt-get install - y jq curl git

# Python ve pip modüllerini gömelim

RUN apt-get install - y python3-pip

&& pip install --no-cache-dir numpy pandas scikit-learn

# Sertifika ekleme işi

COPY mycorp-rootCA.crt /usr/local/share/ca-certificates/

RUN update-ca-certificates

İmaj Yükleme ve Kullanma Senaryosu:

  • İmajını build edip registry’e push’luyorsun (GitHub Container Registry veya Azure Container Registry olur).
  • .github/workflows altındaki ilgili job’da runner-image olarak kendi container tag’ını gösteriyorsun.
  • Tetikleyip çalıştırıyorsun; başka işlem yok!

Bazı projelerde docker layer cache kullanımı kritik derecede hız kazandırıyor — özellikle veri bilimi işlerinde çok net gördüm bunu. Daha fazla bilgi için github ile ilgili önceki yazımız bakabilirsiniz.

Zorluklar & Tuzaklar – Gerçek Hayattan Kısa Notlar

İmaj Yönetimi Sandığınız Kadar Kolay Değil!

Açık konuşalım; herkes ilk başta gazla girişiyor ama zamanla eski imajların güncellenmesi unutulabiliyor resmen… Mesela bir müşterimizde (2026’nın hemen başlarında), log4j faciasında haftalarca eski imajlardan sızma olup olmadığını aramak zorunda kaldık! Otomatik security scanning olmadan risk büyük — entegre etmek şart öldü artık.

Sürüm Takibi – Kaos mu Düzen mi?

Sorun Klasik Runner’da Custom Image’da
Araç Versiyonu Sabitleme Zorlayıcı; init script ile uğraşırsın İmajda direkt sabitlendi
Anlık Güncelleme Yayma Tüm workflow’u elle update gerekir İmaj registry’den tek hamlede yayılır
Büyük Güvenlik Açığı Krizi (örn log4j) Tüm akışlarda manuel patch lazım İmaj rebuild+push = otomatik yayılır*
Dökümantasyon Yükü Düşük ama kaotik ortam riski yüksek Daha fazla disiplin ister

*Not: Dağıtımdan önce test pipeline koymazsan yeni imaj bütün işleri mahvedebilir!
Bir defasında canlıya aniden rollout yaptık ve gece boyu debelendik…

Küçük Startup vs Kurumsal Devler – Hangisine Ne Kadar Lazım?

  • Küçük Startup: Kod hızlı değişiyorsa ve sürekli deneme yapılıyorsa klasik runner iş görür aslında… Dependency cehennemine düştüğünde ancak custom image’a geçmek mantıklı oluyor.
  • Büyük Kurum: ISO/SOC uyumu şart işe veya environment drift yüzünden hatalar fırlıyorsa custom image kaçınılmaz hâle geliyor.
    Bak başka yol pek yok.
  • Siber Güvenlik Odaklı Proje: Root CA sertifika eklemek ya da özel network bağlantısı gerekiyorsa zaten alternatifsizsin!
    Ama hybrid çözümü deneyebilirsin:
    Kritik işler custom image üzerinde koşsun,
    gerisi klasik hosted runner’da devam etsin.
    Böylece hem operasyonel maliyet dengelenir hem de risk dağıtılmış olur…
    Deneyen ekiplerden feedback aldığım öldü — gayet işe yaradı diyebilirim.

💡 Bilgi: GitHub Actions’ın yeni güvenlik yol haritasıyla (burada detayı var!) özel imajların zero trust yaklaşımında anahtar rol oynayacağı netleşti.
Yanı gelecekte bu konuya el atmazsak bizden sonra ağlayan çok olacak…

Birkaç Pratik İpucu – Kendi Deneyimlerimden “Acı Reçeteler”  😅

  • İmaj Layer Sayısını Abartmayın – Fazla layer push/pull sürelerini acayip artırabiliyor (Bunu canlı gördüm, kimse inanmadı!)
    Ekim ’25’de prod deploy’da saçımız diken diken olmuştu…
    Kısacası minimalizm iyidir.

  • İmaj Güncellemelerini Otomasyona Bağlayın –
    Dependabot tarzı tool devreye alıp version drift’i engelleyin;
    Aksi durumda her yerde farklı dependency kalabiliyor.

  • Sertifika Zinciri Ekliyorsanız Test Pipeline’da Kontrol Edin —
    Yanlış certificate chain nedeniyle production deploy gece üçte patladı,
    Logosoft SaaS projesinin release’i rezil öldü!

  • Maliyet Hesabını Unutmayın —
    Büyük boyutlu imaj storage maliyetini fırlatabiliyor,
    FinOps tarafında öğrendiklerimin çoğu tam burada işe yaradı.

  • Dökümantasyonu Eksiksiz Tutun —
    Yoksa iki ay sonra “Kim hangi library’i niye ekledi?” sorusunun cevabı ortada bulunamıyor…

  • Caching’i Mantıklı Kullanmak Şart —
    Layer bazlı reusable bloklar oluşturup gereksiz rebuild’den kaçının!
    Her run’da sıfırdan toplama yapmak pilinizi bitirir.

  • Kritik job’larda yeni imaja önce canary deployment şeklinde minik ölçekle test edin;
    Toplu rollout felaket getirebilir…

    Maalesef bunları bizzat yaşayarak öğrenmiş biri olarak söylüyorum!

Neleri Beklememek Lazım? Eksikler ve Hayal Kırıklıkları… 🙃

Aklımdaki en büyük hayal kırıklıkları listesi şöyle…

  • Docker layer cache tüm pipeline çeşitlerinde stabil çalışmıyor;
    Mesela de self-hosted sistemden gelenlerin dikkat etmesi gereken detay bu.

  • İmaj bakımı ekstra operasyonel yük bindiriyor —
    Ekibinizde hiç DevOps tecrübesi olmayan varsa başlangıçta zorlanabilirler,
    bu konuda dürüst olmak gerek!

  • Bazı edge case’lerde kernel/gpu driver ihtiyacı varsa hâlâ klasik self-hosted VM’e geri dönmeniz gerekecek.
    AI projelerinde birkaç kez böyle tuzağa düştük…

    Beklediğim en büyük eksiklik hâlâ GUI destekleyen özel runner’ın olmayışıydı —
    Desktop uygulama testlerinde workaround peşindeyiz hâlâ!
    Ama geliştiriciler çalışmaya devam ediyor gibi görünüyor…
    Belki yakındır?
    Maalesef henüz tatmin edici sonuç alamadık.


    Sıkça Sorulan Sorular

    Custom image ile hosted runner arasındaki temel fark ne?

    Hosted runner, ubuntu-latest ya da windows-latest gibi hazır ortamlar sunuyor; özelleştirme için pipeline başında uzun kurulum script’leri yazman gerekiyor. Custom image ise kendi araçlarını, environment ayarlarını ve sertifikalarını runner’a daha build başlamadan gömüyor. Böylece her job’ta sıfırdan dependency kurma derdi azalıyor.

    Custom image kullanınca build süreleri gerçekten kısalıyor mu?

    Evet, özellikle her job’da tekrar tekrar kurulan bağımlılıklar varsa hız ciddi artıyor. Yazıda geçen örnekte klasik runnerlarla job süresi 8-9 dakikayken custom imajla 3 dakikaya indi. Bir başka senaryoda da ilk run yaklaşık %70 hızlanmış.

    Custom image bozulursa ya da güncelleme sonrası sorun çıkarsa ne yapılıyor?

    Başta en çok kuşku duyulan konu bu; imaj bozulursa job’lar etkilenebilir. Ancak sürümler oturdukça stabilite iyileşiyor ve özellik genel erişime açılıyor. Yine de pratikte imajı versiyonlayıp kontrollü güncellemek, sürpriz arızaları azaltıyor.

    Custom image maliyet ve operasyonel yükü nasıl etkiliyor?

    Custom image sayesinde her job için init script masrafı azalıyor ve daha az hata çıktığı için debug süresi düşüyor. Bu da ekiplerin saat harcamasını azaltıyor. Tabii imaj bakımına geçince iş biraz başka tarafa kayıyor; imajı güncel tutmak ayrı bir sorumluluk oluyor.

🤖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

SAP ve Azure’da Yeni AI Dönemi: Kurumsal Akıl Nereye Gidiyor?
SAP ve Azure’da Yeni AI Dönemi: Kurumsal Akıl Nereye Gidiyor?27 May 2026
Python ile Teams SDK artık GA: Benim Sahada Gördüklerim
Python ile Teams SDK artık GA: Benim Sahada Gördüklerim16 May 2026
Azure Cosmos DB Shell Public Preview: CLI'a AI Geldi
Azure Cosmos DB Shell Public Preview: CLI'a AI Geldi7 May 2026
Disrupting supply chain attacks on npm and GitHub Actions
Disrupting supply chain attacks on npm and GitHub Actions3 Ağu 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 DevOps build otomasyonu CI/CD custom image DevOps araçları GitHub Actions özel runner pipeline optimizasyonu
Önceki yazı

Açık Kaynak Güvenlik Açıkları: 2025’te Neler Değişti, Ne Anlama Geliyor?

Sonraki yazı

GitHub Copilot for Jira: Preview’de Neler Sıkılaştı?

İlginizi Çekebilir

GPT-6 Model Seçimi: Reasoning Effort ve Araç Uyumu
Aşkın KILIÇ 0

GPT-6 Model Seçimi: Reasoning Effort ve Araç Uyumu

05/10/2026
Cosmos DB Mirroring: VNet Gateway ile Kapalı Ağda Kurulum
Aşkın KILIÇ 0

Cosmos DB Mirroring: VNet Gateway ile Kapalı Ağda Kurulum

05/10/2026
Work IQ Developer Tools ile Copilot Plugin Paketleme
Aşkın KILIÇ 0

Work IQ Developer Tools ile Copilot Plugin Paketleme

04/10/2026

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • GPT-6 Model Seçimi: Reasoning Effort ve Araç Uyumu
    05/10/2026 GPT-6 Model Seçimi: Reasoning Effort ve Araç Uyumu
  • Cosmos DB Mirroring: VNet Gateway ile Kapalı Ağda Kurulum
    05/10/2026 Cosmos DB Mirroring: VNet Gateway ile Kapalı Ağda Kurulum
  • Work IQ Developer Tools ile Copilot Plugin Paketleme
    04/10/2026 Work IQ Developer Tools ile Copilot Plugin Paketleme
  • GitHub Copilot: Kaldırılan 4 Model ve Geçiş Alternatifleri
    04/10/2026 GitHub Copilot: Kaldırılan 4 Model ve Geçiş Alternatifleri
  • Azure Cosmos DB Shell Artık Data Explorer İçinde
    04/10/2026 Azure Cosmos DB Shell Artık Data Explorer İçinde
  • 25 Dolar Altında Yapay Zeka Uygulaması mı? İşte Nasıl Yapılır!
    10/03/2026 25 Dolara Yapay Zeka Uygulaması Nasıl Yapılır?
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
    18/03/2026 Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • 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

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 OpenAI azure sdk Azure SQL bulut bilişim CI/CD 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 Entra ID Microsoft Foundry otomasyon performans Pull Request RAG REST API SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka 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ı 469 yazı 🏗️ Bulut Altyapı 378 yazı 🤖 Yapay Zeka 314 yazı 🔧 DevOps 260 yazı ☁️ Microsoft Azure 254 yazı 🔒 Güvenlik & Kimlik 214 yazı 🏢 Kurumsal Teknoloji 96 yazı 📊 Veri & Analitik 66 yazı 🐳 Konteyner & Kubernetes 61 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Açık Kaynak Güvenlik Açıkları:...
    GitHub Copilot for Jira: Previ... →
    📩

    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