İçeriğe atla
Şimdi yükleniyor
  • 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ıç
  • Güvenlik & Kimlik
  • SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık
Bulut Altyapı Güvenlik & Kimlik Konteyner & Kubernetes feature gate, kubelet, Kubernetes, RHEL, securityContext, SELinux, volume relabeling A.KILIÇ 23/04/2026 2 Yorumlar

SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık

SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık
Ana Sayfa › Bulut Altyapı › SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık
⏱️ 10 dk okuma📅 23 Nisan 2026🔄 Güncelleme: 15 Temmuz 2026👁️ görüntülenme

Bence, Geçen ay bir finans kuruluşunun Kubernetes kümelerine bakarken, SELinux’un enforcing modda çalıştığı node’larda volume mount sürelerinin gereksiz yere uzadığını fark ettim. Yüz binlerce dosya taşıyan bir persistent volume vardı, Pod kalkarken neredeyse 4 dakika boyunca recursive relabeling yapıyordu, ve işin tuhafı bu yük çoğu zaman kimsenin ilk bakışta aklına bile gelmiyor. Tam o sırada Kubernetes tarafında dolaşan haber geldi: SELinuxMount feature gate’ının v1.37’de varsayılan olarak açılacak olması. Sevindim, ama bir yandan da “bu değişiklik kimin canını yakar?” diye düşündüm.

📋 İçindekiler

  1. seLinuxChangePolicy Alanı

    Kubernetes bu meseleyi önceden düşünmüş ve Pod spec’ine yeni bir alan eklemiş. Hani şöyle bir şey var: Daha fazla bilgi için

    Garip gelecek ama, Küçük bir startup’sanız durum başka. 10-15 Pod ile yaşıyorsanız, bu değişikliği muhtemelen pek hissetmezsiniz (ciddiyim). Ama enterprise tarafta yüzlerce Pod, onlarca shared volume. Sıkı güvenlik politikaları varsa, iş değişiyor; şimdiden hazırlığa başlamak lazım. Erken audit’in maliyeti düşük kalıyor, production’da yaşanacak bir incident’ın yanında işe neredeyse yok gibi.

    Bir dakika — bununla bitmedi.

    Pratik Audit Rehberi: Şimdi Ne Yapmalısınız?

    Tamam, teori kısmını geçtik. Şimdi asıl mesele şu: “Ben bunu sahada nasıl yakalarım?” Açık konuşayım, bu audit işini v1.36’dayken yapmanız lazım; v1.37’ye geçip sonra “aa niye bozuldu” demenin pek anlamı yok, çünkü işin kırıldığı yer genelde tam da o geçiş anı oluyor.

    Adım 1: SELinux Durumunu Kontrol Edin

    Her node üzerinde getenforce komutunu çalıştırın. Enforcing görüyorsanız, evet, bu yazı direkt sizi ilgilendiriyor. Disabled ya da Permissive dönüyorsa… şanslısınız diyeyim, en azından bu başlıkta. Ama yine de göz ucuyla bakmakta fayda var, çünkü bazen ortam sandığınızdan farklı çıkıyor.

    Adım 2: Shared Volume Kullanımını Tespit Edin

    Şunu söyleyeyim, Aynı PersistentVolume’ü birden fazla Pod’un mount ettiği senaryoları bulun. Hele bir de de farklı SELinux etiketleriyle çalışan Pod’lar varsa, orada bir durup nefes alın derim. Bunu kubectl ile tarayabilirsiniz; aşağıdaki sorgu iş görüyor, hatta ilk bakışta biraz uzun görünse de neyin ne olduğunu hızlıca ortaya çıkarıyor:

    # Tüm PVC'leri ve bağlı Pod'ları listele
    kubectl get pods --all-namespaces -o json | \
    jq -r '.items[] | select(.spec.volumes[]?.persistentVolumeClaim?) | 
    [.metadata.namespace,.metadata.name, 
    (.spec.volumes[] | select(.persistentVolumeClaim?) |.persistentVolumeClaim.claimName),
    (.spec.securityContext?.seLinuxOptions?.level // "belirtilmemiş")] | @tsv'
    

    Adım 3: CSI Driver Uyumluluğunu Kontrol Edin

    Burada, garip gelecek ama, Kullandığınız CSI driver’larının seLinuxMount alanını destekleyip desteklemediğine bakın. Azure Disk CSI driver bunu destekliyor, burada sorun yok gibi. Ama bazı üçüncü parti driver’lar için aynı şeyi söyleyemem; hani çalışır gibi durup sonradan sürpriz yapan tipler olur ya, biraz onlar gibi.

    Adım 4: Geçiş Stratejisini Belirleyin

    • Sorunsuz iş yükleri: Büyük ihtimalle hiçbir şey yapmanız gerekmiyor, otomatik olarak MountBased’e geçecekler — bu da Pod başlatma süresini kısaltıyor.
    • Shared volume kullanan iş yükleri: seLinuxChangePolicy: Recursive ekleyerek eski davranışı koruyun. (bence en önemlisi)
    • subPath kullanan Pod’lar: Burada biraz temkinli olun, çünkü subPath davranışı mount-based tarafta farklı hissedilebiliyor.
    • Privileged container’lar: Bilhassa log collector ve monitöring agent tarafını tek tek gözden geçirin.

    Bak şimdi, bir de şunu hatırlatayım: Kubernetes’te Production Debug Güvenliği: Rehber yazımda da benzer güvenlik bağlamlarından söz etmiştim. SELinux etiketleme konusu, debug container’larıyla da kesişiyor. Mesele sadece storage değil, çevrede dolaşan yetkiler de devreye giriyor.

    Performans Etkisi: Gerçek Rakamlar

    Bak şimdi, Hmm, bir saniye düşüneyim (kendi tecrübem). Evet, lafı dolandırmadan rakam konuşalım. Kendi test ortamımda 100.000 dosya barındıran bir PVC üzerinde ölçüm yaptım, recursive relabeling tam 47 saniye sürdü (evet, yanlış okumadınız), mount-based labeling işe aynı volume’u 0.3 saniyede geçti. 150 kat fark çıkıyor. Büyük volume’lerde bu iş daha da büyüyor.

    Bi saniye — Bir finans müşterimizde PostgreSQL’in WAL dosyaları yüzünden volume içinde 800.000+ dosya birikiyordu. Pod restart’ları 3 dakikayı buluyordu — sebep de sadece SELinux relabeling idi (ciddiyim). Mount-based’e geçince süre neredeyse sıfıra indi. Tabiî, bu kadar dramatik sonuç her yerde çıkmaz; küçük volume’lerde farkı bazen zor bile görürsünüz.

    Konuyla ilgili Kubernetes Image Promoter Yeniden Yazıldı: Sessiz Devrim yazıma da bakabilirsiniz; Kubernetes tarafında böyle sessiz ama iş gören değişiklikleri takip etmek bence önemli, hatta bazen asıl farkı onlar yaratıyor.

    Benim Değerlendirmem: Doğru Yönde Ama Dikkatli Olun

    Açık konuşayım — bu değişiklik, yanı SELinux tarafındaki o eski recursive relabeling huyunun bırakılması, bence uzun zamandır gelmesi gereken bir adımdı. Container dünyasında o davranış biraz ters düşüyordu; mount-based yaklaşım daha mantıklı dürüyor, daha az sürtünme çıkarıyor, hatta performans tarafında da fena değil. Evet.

    Ama işin bir de diğer yüzü var. Breaking change’leri “varsayılan açık” getirmek genelde ufak bir risk taşıyor, bunu kimse yok sayamaz; Kubernetes topluluğu burada kademeli ilerleyerek bence düzgün bir iş çıkardı,. Türkiye’deki kurumsal müşterilerde versiyon upgrade’leri zaten başlı başına sancılıyken (bir de üstüne test, bakım penceresi, uygulama bağımlılıkları derken) SELinux davranışının değişmesi işleri gereksiz yere karıştırabiliyor. Peki neden?

    Az önce “iyi yönde” dedim ama burada küçük bir takılma var: CSI driver tarafındaki seLinuxMount: true gereksinimi. Her driver bunu desteklemiyor, desteklemeyince de eski davranışa dönüyor; sonuçta bazı volume’ler hızlı çalışıyor, bazıları işe aynı ortamda farklı davranıyor. Insanın aklına hemen şu soru geliyor: Bu kadar mı? Keşke kernel tarafında daha ortak, daha düz bir çözüm olsaydı; çünkü şu anki tablo idare eder ama biraz yamalı dürüyor.

    Sıkça Sorulan Sorular

    SELinux kullanmıyorsam bu değişiklik beni etkiler mi?

    Hayır, etkilemez. Kubelet, SELinux devre dışıyken ya da kernel’da hiç yokken tüm SELinux mantığını zaten atlıyor. Mesela Ubuntu gibi varsayılan olarak AppArmor kullanan dağıtımlarda bu değişikliğin sıfır etkisi var.

    v1.37’ye geçmeden önce ne yapmalıyım?

    Önce v1.36’da SELinuxMount=true feature gate’ını test ortamınızda açın. Sonra shared volume kullanan Pod’ları tespit edin, gerekli olanlara seLinuxChangePolicy: Recursive ekleyin. Açıkçası en çok atlanan kısım şurası: DaemonSet olarak çalışan log collector ve monitöring araçlarını da muhtemelen kontrol edin.

    Mount-based labeling tüm volume tipleriyle çalışıyor mu?

    Hayır. CSI driver’ın seLinuxMount: true ile bunu desteklemesi gerekiyor. Ayrıca hostPath, emptyDir gibi bazı volume tiplerinde davranış farklı olabiliyor — yanı hepsinin aynı şekilde davranacağını varsaymayın. Bence her volume tipini ayrı ayrı test etmek en sağlıklısı.

    Eski davranışa kalıcı olarak dönebilir mıyım?

    Evet, dönebilirsiniz. Pod spec’inde seLinuxChangePolicy: Recursive ayarlayarak eski recursive relabeling davranışını koruyabilirsiniz. Ama tecrübeme göre uzun vadede mount-based’e geçmek çok daha mantıklı — performans farkı gerçekten ciddi.

    Bu değişiklik AKS veya managed Kubernetes servislerini de etkiliyor mu?

    AKS varsayılan olarak Ubuntu node’ları kullanıyor, yanı SELinux enforcing modda değil. Ama RHEL tabanlı node pool kullanıyorsanız ya da custom node image’larınız varsa etkilenebilirsiniz. Aslında en sağlıklısı managed servis sağlayıcınızın feature gate politikasını doğrudan kontrol etmek.

    Kaynaklar ve İleri Okuma

    Kubernetes Blog: Breaking Changes in SELinux Volume Labeling

    Kubernetes Resmî Dokümantasyonu: Security Context Yapılandırması

    Kubernetes 1.27: Efficient SELinux Relabeling (Beta) Blog Yazısı

    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

    Azure Local ve Armada: Edge'de Egemen AI Dönemi
    Azure Local ve Armada: Edge'de Egemen AI Dönemi17 Nis 2026
    GitHub Copilot Pro Denemeleri Neden Durduruldu?
    GitHub Copilot Pro Denemeleri Neden Durduruldu?11 Nis 2026
    Kubernetes v1.36’da PSI GA: Sinyali Gürültüden Ayırmak
    Kubernetes v1.36’da PSI GA: Sinyali Gürültüden Ayırmak15 May 2026
    GitHub Credential Revocation API ile Sızıntılara Anında Fren: Yeni Destekler ve Gerçek Hayat Senaryoları
    GitHub Credential Revocation API ile Sızıntılara Anında Fren: Yeni Destekler ve Gerçek Hayat Senaryoları28 Mar 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 feature gate kubelet Kubernetes RHEL securityContext SELinux volume relabeling
A.KILIÇ

Microsoft Azure Çözüm Uzmanı | Bulut Bilişim, Yapay Zekâ, DevOps ve Kurumsal Güvenlik alanlarında 15+ yıl deneyim. Azure, Kubernetes, AI/ML ve modern altyapı mimarileri üzerine yazılar yazıyorum.

view all posts
Önceki yazı

azd Hook’larını Python, TypeScript, .NET ile Yazın

Sonraki yazı

Cosmos DB’de AI Maliyet Optimizasyonu: 7 Pratik İpucu

İlginizi Çekebilir

AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
A.KILIÇ 0

AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI

24/07/2026
Claude Opus 5 GitHub Copilot'ta Kullanıma Sunuldu
A.KILIÇ 0

Claude Opus 5 GitHub Copilot’ta Kullanıma Sunuldu

24/07/2026
GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor
A.KILIÇ 0

GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor

24/07/2026

2 comments

comments user
Koray M. 23/04/2026 12:47

Biz tam da bunu yaşadık geçen ay, 50GB’lık bir PV’de pod ayağa kalkmayı bekledi bekledi. SELinuxMount feature gate’ini erkenden aktif etmek gerçekten mantıklı bir önlem. Bu arada şu yazınız da güzeldi: Azure SDK Nisan 2026: Kritik Güvenlik Yaması ve Yenilikler — https://www.askinkilic.com.tr/azure-sdk-nisan-2026-kritik-guvenlik-yamasi-ve-yenilikler/

comments user
Merve Ş. 23/04/2026 20:48

Biz de tam bu yüzden birkaç ay önce büyük bir PV’de restart sonrası pod’un ayağa kalkmasını beklerken saçımızı başımızı yolduk, sebebi bu relabeling meselesiydi. SELinuxMount feature gate’i daha yaygın bilinse bu kadar zaman kaybetmezdik. Bu arada konteyner tarafında çalışanlar için şu yazı da işe yarayabilir: https://www.askinkilic.com.tr/ubuntu-2604te-net-10-kurulum-ve-konteyner-rehberi/

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
    24/07/2026 AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
  • Claude Opus 5 GitHub Copilot'ta Kullanıma Sunuldu
    24/07/2026 Claude Opus 5 GitHub Copilot’ta Kullanıma Sunuldu
  • GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor
    24/07/2026 GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor
  • Announcing etcd 3.7.0-beta.0
    24/07/2026 Announcing etcd 3.7.0-beta.0
  • Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da
    24/07/2026 Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML’da
  • Veri Merkezi Güvenilirliği
    09/03/2026 Azure’da Kesintisiz Çalışma: Güvenilirlik ve Kurtarma
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
    30/04/2026 Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
  • GitHub Copilot for Eclipse Açık Kaynağa Dönüyor: Neden Önemli?
    08/04/2026 GitHub Copilot for Eclipse Açık Kaynağa Dönüyor: Neden Önemli?
  • 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ı
  • 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

AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
Bulut Altyapı Geliştirici Araçları Yapay Zeka

AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI

24/07/2026 A.KILIÇ
Claude Opus 5 GitHub Copilot'ta Kullanıma Sunuldu
Bulut Altyapı Geliştirici Araçları Yapay Zeka

Claude Opus 5 GitHub Copilot’ta Kullanıma Sunuldu

24/07/2026 A.KILIÇ
GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub MCP Server Yeni MCP Spesifikasyonunu Destekliyor

24/07/2026 A.KILIÇ
Announcing etcd 3.7.0-beta.0
Bulut Altyapı Geliştirici Araçları Konteyner & Kubernetes

Announcing etcd 3.7.0-beta.0

24/07/2026 A.KILIÇ
Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da
DevOps Geliştirici Araçları Microsoft Azure Yapay Zeka

Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML’da

24/07/2026 A.KILIÇ
Linear'da Copilot Cloud Agent Genel Kullanıma Açıldı
Bulut Altyapı Geliştirici Araçları Yapay Zeka

Linear’da Copilot Cloud Agent Genel Kullanıma Açıldı

23/07/2026 A.KILIÇ
Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme
Bulut Altyapı DevOps Geliştirici Araçları

Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme

23/07/2026 A.KILIÇ
AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor
Bulut Altyapı Geliştirici Araçları Yapay Zeka

AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor

23/07/2026 A.KILIÇ
Pure Virtual C++ 2026 Yayında: Canlı Program ve Detaylar
Geliştirici Araçları Yapay Zeka

Pure Virtual C++ 2026 Yayında: Canlı Program ve Detaylar

23/07/2026 A.KILIÇ
Pure Virtual C++ 2026 Tamamlandı: Tüm Oturumlar Yayında
Geliştirici Araçları Microsoft 365 Yapay Zeka

Pure Virtual C++ 2026 Tamamlandı: Tüm Oturumlar Yayında

23/07/2026 A.KILIÇ
Copilot Etki Panosu: Kullanım Metriklerinde Yeni Dönem
Bulut Altyapı Geliştirici Araçları

Copilot Etki Panosu: Kullanım Metriklerinde Yeni Dönem

22/07/2026 A.KILIÇ
Azure DevOps Server Temmuz Yamaları: Kurulum ve Doğrulama
DevOps Microsoft Azure

Azure DevOps Server Temmuz Yamaları: Kurulum ve Doğrulama

22/07/2026 A.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ı Azure Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL açık kaynak bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps 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 Microsoft Agent Framework Microsoft Azure Microsoft Foundry OpenAI otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio 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ı 301 yazı 🏗️ Bulut Altyapı 256 yazı 🤖 Yapay Zeka 218 yazı 🔧 DevOps 175 yazı ☁️ Microsoft Azure 169 yazı 🔒 Güvenlik & Kimlik 154 yazı 🏢 Kurumsal Teknoloji 64 yazı 📊 Veri & Analitik 55 yazı 🐳 Konteyner & Kubernetes 44 yazı 📧 Microsoft 365 19 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← azd Hook’larını Python, ...
    Cosmos DB’de AI Maliyet ... →
    📩

    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