Aracılığıyla paylaş


Azure Service Fabric kümelerini ölçeklendirme

Service Fabric kümesi, mikro hizmetlerin dağıtılıp yönetildiği, ağa bağlı bir sanal veya fiziksel makine kümesidir. Kümenin parçası olan makine veya VM'ye düğüm adı verilir. Kümeler potansiyel olarak binlerce düğüm içerebilir. Service Fabric kümesi oluşturduktan sonra, kümeyi yatay olarak ölçeklendirebilir (düğüm sayısını değiştirebilir) veya dikey olarak (düğümlerin kaynaklarını değiştirebilirsiniz). kümede iş yükleri çalışırken bile kümeyi istediğiniz zaman ölçeklendikleyebilirsiniz. Küme ölçeklendirildikçe, uygulamalarınız da otomatik olarak ölçeklendirilir.

Küme neden ölçeklendirilsin? Uygulama talepleri zaman içinde değişir. Artan uygulama iş yükünü veya ağ trafiğini karşılamak için küme kaynaklarını artırmanız veya talep düştüğünde küme kaynaklarını azaltmanız gerekebilir.

Ölçeği daraltma ve genişletme veya yatay ölçeklendirme

Kümedeki düğüm sayısını değiştirir. Yeni düğümler kümeye katıldıktan sonra, Küme Kaynak Yöneticisi hizmetleri bunlara taşır ve bu da mevcut düğümlerin yükünü azaltır. Kümenin kaynakları verimli bir şekilde kullanılmıyorsa düğüm sayısını da azaltabilirsiniz. Düğümler kümeden ayrılırken hizmetler bu düğümlerin dışına taşınır ve kalan düğümlerde yük artar. Azure'da çalışan bir kümedeki düğüm sayısını azaltmak, bu VM'lerdeki iş yükünü değil kullandığınız VM'lerin sayısını ödediğiniz için tasarruf etmenizi sağlayabilir.

  • Avantajlar: Teoride sonsuz ölçek. Uygulamanız ölçeklenebilirlik için tasarlandıysa, daha fazla düğüm ekleyerek sınırsız büyümeyi etkinleştirebilirsiniz. Bulut ortamlarındaki araçlar, düğüm eklemeyi veya kaldırmayı kolaylaştırır, bu nedenle kapasiteyi ayarlamak kolaydır ve yalnızca kullandığınız kaynaklar için ödeme yaparsınız.
  • Dezavantajları: Uygulamalar ölçeklenebilirlik için tasarlanmalıdır. Uygulama veritabanları ve kalıcılık, ölçeklendirmek için ek mimari çalışma gerektirebilir. Ancak Durum bilgisi olan Service Fabric hizmetlerindeki güvenilir koleksiyonlar , uygulama verilerinizi ölçeklendirmeyi çok daha kolay hale getirir.

Sanal makine ölçek kümeleri, bir sanal makine koleksiyonunu küme olarak dağıtmak ve yönetmek için kullanabileceğiniz bir Azure işlem kaynağıdır. Azure kümesinde tanımlanan her düğüm türü ayrı bir ölçek kümesi olarak ayarlanır. Ardından her düğüm türü bağımsız olarak ölçeklendirilebilir veya genişletilebilir, farklı bağlantı noktası kümeleri açılabilir ve farklı kapasite ölçümlerine sahip olabilir.

Azure kümesini ölçeklendirirken aşağıdaki yönergeleri göz önünde bulundurun:

  • üretim iş yüklerini çalıştıran birincil düğüm türlerinin her zaman beş veya daha fazla düğümü olmalıdır.
  • durum bilgisi olan üretim iş yüklerini çalıştıran birincil olmayan düğüm türlerinin her zaman beş veya daha fazla düğümü olmalıdır.
  • durum bilgisi olmayan üretim iş yüklerini çalıştıran birincil olmayan düğüm türlerinin her zaman iki veya daha fazla düğümü olmalıdır.
  • Gold veya Silver'ın herhangi bir düğüm dayanıklılık düzeyi her zaman beş veya daha fazla düğüme sahip olmalıdır.
  • Bir düğüm türünden rastgele VM örneklerini/düğümlerini kaldırmayın, her zaman sanal makine ölçek kümesi ölçek ölçeği özelliğini kullanın. Rastgele VM örneklerinin silinmesi sistemlerin düzgün yük dengeleme becerisini olumsuz etkileyebilir.
  • Otomatik ölçeklendirme kuralları kullanıyorsanız, ölçeği daraltma (VM örneklerini kaldırma) için kuralları bir kerede bir düğüm olacak şekilde ayarlayın. Bir kerede birden fazla örneğin ölçeğini küçültmek güvenli değildir.

Kümenizdeki Service Fabric düğüm türleri arka uçtaki sanal makine ölçek kümelerinden oluşuyor olduğundan, otomatik ölçeklendirme kuralları ayarlayabilir veya her düğüm türünü/sanal makine ölçek kümesini el ile ölçeklendikleyebilirsiniz .

Programlı ölçeklendirme

Birçok senaryoda, kümeyi el ile veya otomatik ölçeklendirme kurallarıyla ölçeklendirme iyi çözümlerdir. Ancak daha gelişmiş senaryolar için bunlar uygun olmayabilir. Bu yaklaşımların olası dezavantajları şunlardır:

  • El ile ölçeklendirme, oturum açmanızı ve açıkça ölçeklendirme işlemleri istemenizi gerektirir. Ölçeklendirme işlemleri sık sık veya öngörülemeyen zamanlarda gerekliyse, bu yaklaşım iyi bir çözüm olmayabilir.
  • Otomatik ölçeklendirme kuralları sanal makine ölçek kümesinden bir örneği kaldırdığında, düğüm türünün dayanıklılık düzeyi Silver veya Gold olmadığı sürece ilgili Service Fabric kümesindeki bu düğümle ilgili bilgileri otomatik olarak kaldırmaz. Otomatik ölçeklendirme kuralları ölçek kümesi düzeyinde (Service Fabric düzeyinde değil) çalıştığından, otomatik ölçeklendirme kuralları Service Fabric düğümlerini düzgün bir şekilde kapatmadan kaldırabilir. Bu kaba düğümü kaldırma işlemi, ölçeği daraltma işlemlerinde 'hayalet' Service Fabric düğüm durumunu geride bırakır. Bir kişinin (veya hizmetin) Service Fabric kümesindeki kaldırılan düğüm durumunu düzenli aralıklarla temizlemesi gerekir.
  • Dayanıklılık düzeyi Altın veya Gümüş olan bir düğüm türü, kaldırılan düğümleri otomatik olarak temizler, bu nedenle ek temizleme gerekmez.
  • Otomatik ölçeklendirme kuralları tarafından desteklenen birçok ölçüm olsa da, yine de sınırlı bir kümedir. Senaryonuz bu kümede ele alınmayan bazı ölçümlere göre ölçeklendirmeyi çağırıyorsa, otomatik ölçeklendirme kuralları iyi bir seçenek olmayabilir.

Service Fabric ölçeklendirmeye yaklaşımınız senaryonuza bağlıdır. Ölçeklendirme yaygın değilse, düğümleri el ile ekleme veya kaldırma özelliği büyük olasılıkla yeterlidir. Daha karmaşık senaryolar için otomatik ölçeklendirme kuralları ve SDK'lar program aracılığıyla ölçeklendirme olanağı sunan güçlü alternatifler sunar.

Uygulamaların sanal makine ölçek kümeleri ve Service Fabric kümeleri ile program aracılığıyla çalışmasına olanak tanıyan Azure API'leri vardır. Mevcut otomatik ölçeklendirme seçenekleri senaryonuzda işe yaramazsa, bu API'ler özel ölçeklendirme mantığının uygulanmasını mümkün kılar.

Bu 'ev yapımı' otomatik ölçeklendirme işlevini uygulamaya yönelik bir yaklaşım, ölçeklendirme işlemlerini yönetmek için Service Fabric uygulamasına durum bilgisi olmayan yeni bir hizmet eklemektir. Kendi ölçeklendirme hizmetinizi oluşturmak, uygulamanızın ölçeklendirme davranışı üzerinde en yüksek düzeyde denetim ve özelleştirilebilirlik sağlar. Bu, bir uygulamanın ölçeğinin ne zaman veya nasıl genişletileceği üzerinde hassas denetim gerektiren senaryolar için yararlı olabilir. Ancak bu denetim, kod karmaşıklığının bir dezavantajıyla birlikte gelir. Bu yaklaşımı kullanmak, ölçeklendirme koduna sahip olmanız gerektiği anlamına gelir ve bu önemsiz bir işlemdir. Hizmetin RunAsync yönteminde, bir dizi tetikleyici ölçeklendirmenin gerekli olup olmadığını belirleyebilir (küme boyutu üst sınırı ve ölçeklendirme bekleme sürelerini ölçeklendirme gibi parametreleri denetleme dahil).

Sanal makine ölçek kümesi etkileşimleri için kullanılan API (hem geçerli sanal makine örneği sayısını denetlemek hem de değiştirmek için) akıcı Azure Yönetim İşlem kitaplığıdır. Akıcı işlem kitaplığı, sanal makine ölçek kümeleriyle etkileşime geçmek için kullanımı kolay bir API sağlar. Service Fabric kümesiyle etkileşime geçmek için System.Fabric.FabricClient kullanın.

Ancak ölçeklendirme kodunun ölçeklendirilmesi için kümede hizmet olarak çalıştırılması gerekmez. FabricClient Hem hem de IAzure ilişkili Azure kaynaklarına uzaktan bağlanabilir, bu nedenle ölçeklendirme hizmeti service Fabric uygulamasının dışından çalışan bir konsol uygulaması veya Windows hizmeti olabilir.

Bu sınırlamalara bağlı olarak, daha özelleştirilmiş otomatik ölçeklendirme modelleri uygulamak isteyebilirsiniz.

Ölçeği artırma ve azaltma veya dikey ölçeklendirme

Kümedeki düğümlerin kaynaklarını (CPU, bellek veya depolama) değiştirir.

  • Avantajlar: Yazılım ve uygulama mimarisi aynı kalır.
  • Dezavantajlar: Tek tek düğümlerdeki kaynakları ne kadar artırabileceğinize ilişkin bir sınır olduğundan, sınırlı ölçek. Kapalı kalma süresi, çünkü kaynak eklemek veya kaldırmak için fiziksel veya sanal makineleri çevrimdışına almanız gerekir.

Sanal makine ölçek kümeleri, bir sanal makine koleksiyonunu küme olarak dağıtmak ve yönetmek için kullanabileceğiniz bir Azure işlem kaynağıdır. Azure kümesinde tanımlanan her düğüm türü ayrı bir ölçek kümesi olarak ayarlanır. Ardından her düğüm türü ayrı olarak yönetilebilir. Bir düğüm türünün ölçeğini artırma veya azaltma, yeni bir düğüm türünün eklenmesini (güncelleştirilmiş VM SKU'su ile) ve eski düğüm türünün kaldırılmasını içerir.

Azure kümesini ölçeklendirirken aşağıdaki yönergeleri göz önünde bulundurun:

  • Birincil düğüm türünün ölçeğini daraltıyorsanız, bunu hiçbir zaman güvenilirlik katmanının izin verdiğinden daha fazla azaltmamalısınız.

Düğüm türünü yukarı veya aşağı ölçeklendirme işlemi, birincil olmayan veya birincil düğüm türü olmasına bağlı olarak farklıdır.

Birincil olmayan düğüm türlerini ölçeklendirme

İhtiyacınız olan kaynaklarla yeni bir düğüm türü oluşturun. Çalışan hizmetlerin yerleştirme kısıtlamalarını yeni düğüm türünü içerecek şekilde güncelleştirin. Küme güvenilirliğinin etkilenmemesi için yavaş yavaş (birer birer), eski düğüm türü örnek sayısının örnek sayısını sıfıra düşürün. Eski düğüm türü kullanımdan kaldırıldığından hizmetler yavaş yavaş yeni düğüm türüne geçirilir.

Birincil düğüm türünü ölçeklendirme

Güncelleştirilmiş VM SKU'su ile yeni bir birincil düğüm türü dağıtın, ardından sistem hizmetlerinin yeni ölçek kümesine geçirilmesi için özgün birincil düğüm türü örneklerini birer birer devre dışı bırakın. Kümenin ve yeni düğümlerin iyi durumda olduğunu doğrulayın, ardından silinen düğümler için özgün ölçek kümesini ve düğüm durumunu kaldırın.

Bu mümkün değilse, yeni bir küme oluşturabilir ve uygulama durumunu (varsa) eski kümenizden geri yükleyebilirsiniz. Herhangi bir sistem hizmeti durumunu geri yüklemeniz gerekmez; uygulamalarınızı yeni kümenize dağıttığınızda bunlar yeniden oluşturulur. Kümenizde durum bilgisi olmayan uygulamalar çalıştırıyorsanız, tek yapmanız gereken uygulamalarınızı yeni kümeye dağıtmaktır. Geri yüklemeniz gereken bir şey yoktur.

Sonraki adımlar