Azure Service Fabric kümelerini ölçeklendirme

Service Fabric kümesi, mikro hizmetlerinizin dağıtıldığı ve yönetildiği ağa bağlı bir sanal veya fiziksel makine kümesidir. Kümenin parçası olan bir makine veya VM düğüm olarak adlandırılır. Kümeler potansiyel olarak binlerce düğüm içerebilir. Service Fabric kümesi oluşturduktan sonra kümeyi yatay olarak ölçeklendirin (düğüm sayısını değiştirin) veya dikey olarak (düğümlerin kaynaklarını değiştirin). 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 Resource Manager, mevcut düğümlerin yükünü azaltan hizmetleri bu düğümlere taşı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üğümlerden ayrılı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ü için değil kullandığınız VM'lerin sayısı için ödeme yaptığınız 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 Service Fabric durum bilgisi olan hizmetlerdeki 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. Daha sonra 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 türü 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çeği özelliğini kullanın. Rastgele VM örneklerinin silinmesi sistemlerin düzgün yük dengeleme özelliğini olumsuz etkileyebilir.
  • Otomatik ölçeklendirme kuralları kullanıyorsanız, ölçeği daraltmak (VM örneklerini kaldırmak) için kuralları ayarlayın. Aynı anda birden fazla örneğin ölçeğini daraltmak 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çeklendirin .

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 için oturum açmanız ve açıkça ölçeklendirme işlemleri istemeniz gerekir. Ö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ümesinden 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ümesinde kaldırılan düğüm durumunu düzenli aralıklarla temizlemesi gerekir.
  • Gold veya Silver dayanıklılık düzeyine sahip 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çeklendirme yaklaşımı 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, program aracılığıyla ölçeklendirme özelliğini kullanıma sunan otomatik ölçeklendirme kuralları ve SDK'lar 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. Senaryonuz için mevcut otomatik ölçeklendirme seçenekleri işe yaramazsa, bu API'ler özel ölçeklendirme mantığı uygulamayı mümkün kılar.

Bu 'ev yapımı' otomatik ölçeklendirme işlevini uygulamaya yönelik yaklaşımlardan biri, ö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ı ile birlikte gelir. Bu yaklaşımı kullanmak, basit olmayan ölçeklendirme koduna sahip olmanız gerektiği anlamına gelir. Hizmetin RunAsync yönteminde, bir dizi tetikleyici ölçeklendirmenin gerekli olup olmadığını belirleyebilir (küme boyutu üst sınırı ve 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ı Bir 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ümesinin kendisiyle etkileşime geçmek için System.Fabric.FabricClient kullanın.

Ölçeklendirme kodunun ölçeklendirilmek için kümede bir hizmet olarak çalıştırılması gerekmez. FabricClient Hem hem de IAzure ilişkili Azure kaynaklarına uzaktan bağlanabilir, böylece ölçeklendirme hizmeti kolayca 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ı ayrı yönetilebilir. Düğüm türünün ölçeğini artırmak veya küçültmek için yeni bir düğüm türünün eklenmesi (güncelleştirilmiş VM SKU'su ile) ve eski düğüm türünün kaldırılması gerekir.

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

Düğüm türünün ölçeğini artırma veya azaltma işlemi, birincil olmayan veya birincil düğüm türü olmasına bağlı olarak farklılık gösterir.

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ümenin 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ığında hizmetler aşamalı olarak 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 yalnızca 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