Yükleniyor
Azure SDK’da Node.js 20 Desteği Bitiyor: Hazır mısınız?
Azure SDK'da Node.js 20 Desteği Bitiyor: Hazır mısınız?

Tuhaf ama, Geçen hafta bir müşterimizin DevOps ekibiyle toplantıdaydık. Konu bambaşkaydı aslında — CI/CD pipeline optimizasyonu konuşuyorduk. Ama tam ortasında birisi sordu: “Hocam, Azure SDK’nın Node 20 desteğini kaldıracağını duydunuz mu?” Masadaki herkes birbirine baktı. Kimse duymamıştı. Ben duymuştum ama açıkçası o kadar da önemsememiştim. Sonra düşündüm… Aslında — hayır dur, daha doğrusu bu konu düşündüğümden çok daha kritik.

Bakın, mesele sadece bir versiyon numarasının değişmesi değil. Üretim ortamında çalışan yüzlerce Azure Functions, binlerce npm paketi, onlarca microservice — bunların hepsini etkileyen bir karar bu. 9 Temmuz 2026 tarihinden itibaren Azure SDK for JavaScript, Node.js 20.x’i desteklemeyecek. Nokta.

Neden Şimdi ve Neden Node.js 20?

Hani şöyle düşünebilirsiniz: “Ya ne olacak, bir versiyon atlayacağız, büyük iş mi?” Evet, büyük iş. Ama önce neden bu kararın alındığını anlamak lazım.

Node.js’in bir release takvimi var, oldukça düzenli işliyor. Çift numaralı versiyonlar (16, 18, 20, 22…) LTS yani uzun süreli destek alıyor. Her LTS versiyon önce “Active LTS” dönemine giriyor, sonra “Maintenance LTS” oluyor, en sonunda da end-of-life’a ulaşıyor. Node.js 20.x’in ömrü 30 Nisan 2026’da bitiyor. Yani artık güvenlik yamaları, bug fix’ler — hiçbiri gelmeyecek.

Açıkçası, Microsoft da diyor ki: “Biz ölü bir runtime üzerinde SDK desteği vermeye devam edemeyiz.” Mantıklı mı? Gayet mantıklı. Ama pratikte işler her zaman bu kadar temiz olmuyor, değil mi?

2022’de Node.js 14’ün desteği kalktığında da benzer bir süreç yaşamıştık. Logosoft’ta o dönem bir e-ticaret müşterimiz vardı, tüm backend’i Node 14 üzerinde koşuyordu. “Canım ne olacak, çalışıyor işte” dediler. Üç ay sonra bir güvenlik açığı çıktı, patch yok. O zaman anladılar işin ciddiyetini. Tarih tekerrür ediyor.

9 Temmuz 2026’da Tam Olarak Ne Olacak?

Şimdi gelelim somut etkiye. Bu tarihten itibaren Azure SDK for JavaScript kütüphaneleri, package.json dosyasındaki engines alanında minimum versiyon olarak Node.js 22.x’i belirtecek.

Bu ne demek? Birkaç senaryo var:

Senaryo 1: Normal npm install

Eğer hâlâ Node.js 20.x kullanıyorsanız. Yeni SDK versiyonunu yüklemeye çalışırsanız, npm size bir “engine deprecation warning” verecek. Yani uyarı alacaksınız ama yükleme devam edecek. Çoğu geliştirici bu uyarıları zaten görmezden geliyor — bunu hepimiz biliyoruz.

Senaryo 2: engine-strict=true ayarınız varsa

Bir şey dikkatimi çekti: İşte burada durum değişiyor. Eğer projenizde veya .npmrc dosyanızda engine-strict=true ayarı varsa, npm düpedüz hata verecek ve yükleme başarısız olacak. Enterprise projelerde bu ayar genelde açıktır — ya da açık olmalıdır.

#.npmrc dosyanız böyleyse dikkat!
engine-strict=true
# npm install @azure/storage-blob
# HATA: Unsupported engine — required: node>=22.x

Senaryo 3: Eski SDK versiyonlarını kullanmaya devam etmek

Teknik olarak, Node.js 20.x desteği olan eski SDK versiyonları çalışmaya devam edecek. Microsoft bunu açıkça söylüyor. Ama — ve bu çok büyük bir “ama” — bu, desteğin devam ettiği anlamına gelmiyor (bizzat test ettim). Güvenlik yaması yok, yeni özellik yok, bug fix yok. Kendi riskiniz.

💡 Bilgi: Microsoft’un Azure SDK destek politikasına göre, EOL olan Node.js versiyonlarının desteğinin kaldırılması için SDK’nın majör versiyonunun artırılmasına gerek yok. Yani bu değişiklik bir breaking change olarak sayılmıyor — dikkat edin, “minör” veya “patch” update ile gelebilir.

Kimler Etkileniyor, Kimler Rahat?

Bu soruyu çok duyacağız önümüzdeki aylarda. Hızlıca bir tablo çıkarayım:

Durun, bir saniye.

Profil Etkilenme Durumu Aciliyet
Node.js 22.x+ kullanan projeler Etkilenmiyor Yok 😌
Node.js 20.x üzerinde Azure Functions Doğrudan etkileniyor Yüksek 🔴
Node.js 20.x, SDK kullanmayan Dolaylı etkileniyor Orta 🟡
Node.js 18.x veya daha eski Zaten desteği yok Kritik 🔴🔴
Frontend-only projeler (React, Vue vs.) Genelde etkilenmiyor Düşük 🟢

Garip gelecek ama, Bir dakika, şunu da ekleyeyim: Azure Functions’ta Node.js runtime versiyonu seçimi yapıyorsanız, bu orayı da doğrudan etkiliyor. 2024 sonlarında bir finans kuruluşunda tam da bu konuyla uğraştık — onlarca Function App, hepsi Node 18’den 20’ye taşınmıştı, şimdi tekrar 22’ye çıkmaları gerekecek. İş yükü az değil.

Geçiş Planı: Adım Adım Ne Yapmalısınız?

Tamam, peki ne yapacağız? Panik yok ama erteleme de yok. Şu adımları takip etmenizi öneririm:

Kendi deneyimimden konuşuyorum, 1. Envanter çıkarın. Ciddiyim. Kaç tane projenizde Node.js 20.x kullanılıyor? Kaç tanesinde Azure SDK var? Bu bilgiyi bilmiyorsanız, ilk işiniz bu olsun. Basit bir node -v ve npm ls @azure/* kombinasyonu size çok şey anlatır.

2. Test ortamında Node.js 22’ye geçin. Hemen production’a atlamayın — önce staging veya dev ortamında deneyin. Node.js 22 ile 20 arasında çoğu şey sorunsuz çalışıyor ama bazı native addon’lar, eski paketler sorun çıkarabiliyor. Biz geçen ay bir IoT projesinde denedik, bir tane eski serialport kütüphanesi patladı. Siz ne dersiniz? Yani test şart.

Açıkçası, 3. CI/CD pipeline’larınızı güncelleyin. GitHub Actions veya Azure DevOps kullanıyorsanız, YAML dosyalarındaki Node versiyonunu değiştirmeyi unutmayın. Çoğu ekip bunu en son hatırlıyor — çünkü lokal makinede her şey çalışıyor, pipeline’da patlıyor. Bu konuyla ilgili Codex’te Fiyat Meselesi Değişti: Takımlar İçin Ne Anlama Geliyor? yazımıza da göz atmanızı tavsiye ederim.

4. nvm veya volta gibi araçlar kullanın. Eğer hâlâ global Node kurulumu yapıyorsanız… yani 2026’da bunu yapıyorsanız biraz ayıp ama neyse. nvm install 22 veya volta install node@22 deyip geçin. Proje bazlı versiyon yönetimi hayat kurtarıyor.

5. Takvim koyun. 9 Temmuz 2026 uzak gibi görünüyor ama bir bakacaksınız ki gelmiş. Haziran başına bir hatırlatıcı koyun, en geç o zamana kadar geçişi tamamlayın.

Deneyimle söylüyorum: Node.js versiyon geçişlerini “son dakikaya” bırakan her ekip, üretimde bir gece yarısı incident’ı yaşıyor. Her seferinde. İstisnasız.

Enterprise Ortamlarda İşin Rengi Değişiyor

Küçük bir startup için bu geçiş belki yarım günlük iş. nvm use 22 de, testleri çalıştır, deploy et, bitti. Ama kurumsal ortamlarda durum bambaşka. Bu konuyla ilgili Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne? yazımıza da göz atmanızı tavsiye ederim.

Bir telekomda müşterimizde 200’den fazla microservice var, hepsi Node.js tabanlı. Her birinin ayrı bir ekibi, ayrı bir sprint döngüsü, ayrı bir deployment pipeline’ı var. Birinde Node 18, diğerinde 20, üçüncüsünde hâlâ 16 koşuyor — evet, 16! Bu tür ortamlarda versiyon standardizasyonu başlı başına bir proje. Copilot Code Review Metrikleri: Aktif mi Pasif mi? yazımızda bu konuya da değinmiştik. Bu konuyla ilgili vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti? yazımıza da göz atmanızı tavsiye ederim.

Kısa bir not düşeyim buraya.

Şöyle ki, Ha bu arada, Azure SDK’nın bu değişikliği majör versiyon artışı olmadan yapabileceğini söylemiştim. Bu enterprise ekipler için biraz tuzaklı bir durum. Çünkü çoğu ekip sadece majör versiyon değişikliklerinde breaking change bekliyor. Ama burada minör veya patch update’le birlikte engines alanı değişecek. Otomatik dependency update araçları (Dependabot, Renovate) kullanıyorsanız, bir sabah uyandığınızda pipeline’larınız kırmızı olabilir.

Şöyle ki, Bu noktada GitHub’da Açık Kaynak Tedarik Zincirini Korumak: Benim Sahada Gördüklerim yazımda bahsettiğim tedarik zinciri güvenliği konusu tekrar devreye giriyor. Bağımlılık yönetimi sadece güvenlik açıkları değil, runtime uyumluluğu açısından da kritik.

Node.js 22’de Neler Farklı?

Peki Node.js 22’ye geçince ne kazanacağız? Sadece “destek devam ediyor” demek yetmez, somut avantajlar da var. Bu konuyla ilgili Azure SQL’de Vektörler ve Analitik: ETL Neden Geride Kalıyor? yazımıza da göz atmanızı tavsiye ederim.

Node.js 22, V8 engine’in 12.4 versiyonuyla geliyor. Bu da demek oluyor ki — Array.fromAsync(), Set metotları (union, intersection, difference gibi), import.meta.resolve() desteği ve daha bir sürü ES2024 özelliği mevcut. Performans tarafında da özellikle garbage collection ve startup sürelerinde iyileştirmeler var.

Ama açık konuşayım: Node.js 20’den 22’ye geçiş, 14’ten 18’e geçiş kadar dramatik değil. Çoğu proje için fark etmeyeceksiniz bile. Asıl mesele performans kazanımı değil, güvenlik ve destek sürekliliği.

Bir de şu var — 2025’in başında bir müşteride Node.js 22’ye geçtik, TypeScript 5.4 ile birlikte kullanıyorduk. ESM/CJS karmaşası konusunda Node 22 biraz daha tutarlı davranıyor diyebilirim. Ama “biraz” diyorum çünkü o karmaşa hâlâ tam çözülmüş değil — itiraf edeyim, beklentimin üstündeydi —. Peki bunu neden söylüyorum? Yani mucize beklemeyin.

Eğer CI/CD pipeline’larınızda değişiklik yapmayı düşünüyorsanız, GitHub Actions Nisan 2026 Güncellemeleri: Üç Küçük Ama Etkili Hamle yazısına da göz atmanızı tavsiye ederim — runner imajlarındaki Node versiyonu değişiklikleri orada da gündem olmuştu (yanlış duymadınız)

Benim Tavsiyem: Bugün Başlayın, Yarına Bırakmayın

2019’da kendi test sunucularımda Node.js 10’dan 12’ye geçiş yapmıştım. “Ne olacak canım, iki versiyon fark” demiştim. Üç gün uğraştım. Native modüller, deprecated API’ler, değişen crypto davranışları… Küçük projede bile bu kadar sürdüyse, büyük projede ne olacağını siz düşünün.

Şu an 2026’nın ortasına kadar vaktiniz var gibi görünüyor ama aslında — dur bir saniye, hesap yapayım — yaklaşık 12 ay. 12 ay bir enterprise geçiş projesi için fena değil ama böl böl da değil. Hele bir de yaz tatili, sprint planlamaları, diğer öncelikler derken zaman uçup gidiyor.

Bunu biraz açayım.

Ha, bir de şunu söyleyeyim: Bu geçişi sadece Azure SDK yüzünden yapmayın. Node.js 20’nın kendisi zaten Nisan 2026’da end-of-life olacak. Yani Azure SDK’dan bağımsız olarak da Node 22’ye geçmeniz gerekiyor. Microsoft sadece bu gerçeği SDK tarafında resmileştiriyor.

Sıkça Sorulan Sorular

Node.js 20.x’te Azure SDK kullanmaya devam edebilir mıyım?

Teknik olarak eski SDK versiyonları çalışmaya devam edecek. Ama 9 Temmuz 2026’dan sonra çıkan yeni SDK versiyonları Node.js 20.x’i resmî olarak desteklemeyecek. Güvenlik yaması ve bug fix almayacaksınız. Kendi riskinizde kullanabilirsiniz ama tavsiye etmiyorum.

Bu değişiklik SDK’nın majör versiyonunu değiştirecek mi?

Hayır. Microsoft’un politikasına göre, EOL olan bir Node.js versiyonunun desteğinin kaldırılması majör versiyon artışı gerektirmiyor. Bu yüzden minör veya patch update ile gelebilir — otomatik dependency update araçlarınız varsa dikkatli olun.

Node.js 22’ye geçiş zor mu? Uyumluluk sorunları olur mu?

Neyse, çoğu proje için geçiş sorunsuz oluyor. Ama native addon kullanan projeler, çok eski npm paketlerine bağımlı olan uygulamalar. ESM/CJS karışık yapılar sorun çıkarabiliyor. Mutlaka test ortamında deneyin, sonra üretime alın.

Azure Functions Node.js runtime’ı da etkileniyor mu?

Bi saniye — Evet. Azure Functions’ta runtime olarak Node.js 20.x seçtiyseniz, hem Node.js’in kendi EOL tarihi hem de SDK desteğinin kalkması sizi etkiliyor. Functions runtime’ınızı da Node.js 22’ye güncellemeniz gerekecek.

Geçiş için en uygun zaman ne zaman?

Şimdi, bir şey dikkatimi çekti: Şimdi. Ciddi söylüyorum. En geç 2026 Haziran başına kadar tamamlamayı hedefleyin. Test, staging, production derken minimum 2-3 ay ayırın — özellikle birden fazla servisiniz varsa.

Kaynaklar ve İleri Okuma

Yani, Azure SDK Blog: Node.js 20.x Destek Sonu Duyurusu

Azure SDK for JavaScript Destek Politikası — Microsoft Learn

Node.js Release Takvimi. LTS Bilgileri

İçeriği paylaş:

📬 Bu yazıyı faydalı buldunuz mu?

Azure, DevOps ve bulut teknolojileri hakkında güncel içerikler için beni takip edin!

Yorum gönder

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.

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