SAE otomatik ölçeklendirme, trafik arttığında saniyeler içinde uygulama örneklerini dışa doğru ölçeklendirir ve yoğunluk azaldığında içe doğru ölçeklendirerek uygulamalarınızı minimum operasyonel yük ile kararlı tutar. Bir e-ticaret promosyonunu örnek alarak bu konu; uygulamaların dağıtımını, ölçeklendirme kurallarının yapılandırılmasını, gerçek zamanlı izlemeyi ve etkinlik sonrası optimizasyonu adım adım açıklar. Böylece platformunuzun talep artışlarını güvenilir şekilde karşılamasını sağlarsınız.
Otomatik ölçeklendirme iş akışı
Aşağıdaki şekil, SAE otomatik ölçeklendirmenin uçtan uca iş akışını göstermektedir.

Uygulamanızı hazırlayın
Sağlık denetimi yapılandırın: Trafik yalnızca bir örnek başlatıldıktan ve istekleri sunmaya hazır olduktan sonra yönlendirilir. Bu sayede ölçeklendirme sırasında genel kullanılabilirlik korunur. Daha fazla bilgi için bkz. Sağlık denetimi ayarlama.
Uygulama yaşam döngüsü yönetimini yapılandırın: Ölçek daraltma sırasında düzgün kapatmayı sağlamak için PreStop Settings öğesini yapılandırın. Daha fazla bilgi için bkz. Uygulama yaşam döngüsü yönetimini ayarlama.
Java uygulamanızda hizmet çağrıları için üstel geri çekilme (exponential backoff) mekanizması uygulayın. Bu yaklaşım, ölçeklendirme gecikmeleri, yavaş başlatmalar veya düzgün olmayan kapatmalardan kaynaklanan hataları yönetmenize yardımcı olur.
-
Uygulamanızın başlatma hızını optimize edin.
Paket optimizasyonu: Başlatma süresini kısaltmak için sınıf yükleme ve önbellekleme gibi harici faktörleri en aza indirin.
Görüntü optimizasyonu: Örnek oluştururken çekme sürelerini kısaltmak için görüntü boyutunu küçültün. Görüntü katmanlarını analiz etmek ve sadeleştirmek için açık kaynak araçlardan yararlanabilirsiniz.
Java uygulaması başlatma optimizasyonu: SAE içinde bir uygulama oluştururken Dragonwell 11 ortamını seçerek uygulama hızlandırmayı etkinleştirin.
Otomatik ölçeklendirme ilkesi yapılandırma
Ölçeklendirme ölçütlerini seçin
SAE, Temel İzleme ve Uygulama İzleme kapsamındaki birden fazla ölçütü destekler. Uygulamanızın CPU yoğunluklu, bellek yoğunluklu yoksa G/Ç yoğunluklu olup olmadığına bağlı olarak bu ölçütleri yapılandırın.
Basic Monitoring ve Application Monitoring altındaki ilgili ölçütlerin geçmiş verilerini inceleyin. Son 6 saat, 12 saat, 1 gün veya 7 gün içindeki tepe değerleri, P95 veya P99 gibi istatistikleri kullanarak hedef bir değer tahmin edin. Performance Testing Service (PTS) gibi bir yük testi aracıyla uygulamanızın eşzamanlı istek sınırı, kaynak gereksinimleri (CPU ve bellek) ve yüksek yük altında yanıt davranışı dahil olmak üzere tepe kapasitesini değerlendirin.
Otomatik ölçeklendirme ilkesini yapılandırırken aşağıdaki faktörleri göz önünde bulundurun:
-
Ölçüt hedef değerlerini belirlerken kullanılabilirlik ve maliyet dengesini kurun:
Kullanılabilirlik odaklı strateji: Ölçüt değerini %40 olarak ayarlayın.
Dengeli strateji: Ölçüt değerini %50 olarak ayarlayın.
Maliyet odaklı strateji: Ölçüt değerini %70 olarak ayarlayın.
Yukarı akış ve aşağı akış hizmetleri, ara katman ve veritabanları gibi bağımlılıkları gözden geçirin. Dışa ölçeklendirme sırasında uçtan uca kullanılabilirliği korumak için karşılık gelen ölçeklendirme ilkelerini veya kısıtlama ve degradasyon mekanizmalarını yapılandırın.
Ölçeklendirme ilkenizi yapılandırdıktan sonra kapasiteyi gerçek uygulama yüküyle hizalamak amacıyla izleme yapın ve gerekli ayarlamaları gerçekleştirin. İzleme hakkında daha fazla bilgi için bkz. Temel İzleme verilerini görüntüleme.
Bellek ölçütlerini yapılandırın
Java uygulamaları için çalışma zamanı optimizasyonu, fiziksel belleği serbest bırakarak bellek ölçütleri ile iş yükü arasındaki ilişkiyi güçlendirir. ElasticHeap JVM parametresiyle birlikte Dragonwell çalışma zamanının kullanılması Java yığın belleğinin dinamik olarak ölçeklendirilmesini sağlar ve çalışma zamanında fiziksel bellek tüketimini azaltır. ElasticHeap hakkında daha fazla bilgi için bkz. G1ElasticHeap.
Dragonwell+ElasticHeap Periodic uncommit (otomatik) modunu kullanmanızı öneririz. Ayrıntılı adımlar için bkz. Java uygulaması dağıtma ve Başlatma komutu ayarlama.
Java Ortamı: Configure JAR Package bölümünde Java Environment açılır listesinden bir Dragonwell yapılandırması seçin.

JVM parametresi: Startup Command Settings bölümüne -XX:+ElasticHeapPeriodicUncommit girin.

Bellek tabanlı ölçeklendirme, Java JVM bellek yönetimi veya Glibc Malloc ve Free işlemlerine dayananlar gibi dinamik bellek yönetimi kullanan bazı uygulamalar için uygun değildir. Bu uygulamalar boşta kalan belleği işletim sistemine hemen iade etmezse örnek bellek tüketimi gerçek zamanlı olarak azalmaz. Bu durum, örnekler arasındaki ortalama bellek tüketiminin yüksek kalmasına neden olarak içe ölçeklendirmenin tetiklenmesini de engelleyebilir.
Örnek sayısını yapılandırın
-
Minimum örnek sayısı
Minimum örnek sayısını 2 veya daha fazla olarak ayarlayın ve vSwitch'leri birden fazla alanda yapılandırın. Bu yaklaşım, bir düğüm arızası nedeniyle bir örnek tahliye edildiğinde veya bir alanda kullanılabilir örnek olmadığında uygulama kesintisini önler.
-
Maksimum örnek sayısı
Maksimum örnek sayısının, vSwitch'teki kullanılabilir IP adresi sayısından küçük veya ona eşit olduğundan emin olun. Böylece IP adresi tükenmesinden kaynaklanan dışa ölçeklendirme hatalarını önlersiniz.
Geçerli uygulama için kullanılabilir IP adresi sayısını Basic Information sayfasındaki Application Information bölümünden kontrol edin. Sayı düşükse bir vSwitch'i değiştirin veya yeni bir vSwitch ekleyin.

Otomatik ölçeklendirme sürecini gözlemleyin
Maksimum örnek limiti
Uygulamanın Overview sayfasından otomatik ölçeklendirme durumunu görüntüleyebilirsiniz. Maksimum örnek limitine ulaşan uygulamaları izleyin ve ölçeklendirme yapılandırmalarını yeniden değerlendirin.

Tek bir uygulamanın 50'den fazla örneğe dışa doğru ölçeklendirilmesi gerekiyorsa izin listesine eklenmek için DingTalk grubuna (grup kimliği: 32874633) katılın.
Alan yeniden dengelenmesi
İçe ölçeklendirme olayından sonra örnekler alanlar arasında eşit olmayan şekilde dağılabilir. SAE varsayılan olarak örnekleri aynı alanda dağıtmayı tercih eder ve bunları alanlar arasında otomatik olarak eşit şekilde dağıtmaz. Çoklu alan dağıtımı yük dengeleme için değil, olağanüstü durum kurtarma amacıyla tasarlanmıştır. Her bir örneğin alanını uygulamanın Basic Information sayfasındaki örnek listesinde görüntüleyin. Dağılım dengesizse bir örnekte Restart işlemi gerçekleştirerek alan yeniden dengelenmesini tetikleyin.

Otomatik devam ettirme
Bir uygulama dağıtma gibi bir değişiklik sırası gerçekleştirdiğinizde SAE çakışmaları önlemek için ilgili uygulamanın otomatik ölçeklendirme ilkesini geçici olarak duraklatır. Değişiklik sırası tamamlandığında ilkenin otomatik olarak geri yüklenmesi için Deploy Application sayfasında Automatic seçeneğini belirleyin.

Otomatik ölçeklendirme bakımı
Uygulama olayları
Application Events sayfasında SAE otomatik ölçeklendirme davranışını, ölçeklendirme eylemlerinin zamanını ve türünü gözlemleyebilirsiniz. Bu bilgileri kullanarak ölçeklendirme ilkenizi gerektiği gibi değerlendirin ve ayarlayın. Daha fazla bilgi için bkz. Uygulama olaylarını görüntüleme.

Uygulama örnek trend grafiği
Uygulamanın Basic Information sayfasındaki Basic Information sekmesinde yer alan Application Instance Trend Chart son 7 güne ait izleme ölçütlerini gösterir. Bu ölçütler arasında CPU kullanımı, bellek kullanımı, aktif TCP bağlantıları, hizmet istekleri ve ortalama yanıt süresi bulunur.
