2016-04-01 17 views
1

Yüksek düzeyde ölçeklendirilebilir bir Cloudservice için Microsoft Azure için iki rolle yazdık: "WebsiteRole" ve "WebsiteWorkerRole". Daha iyi performans için bu Cloudservice'i birden fazla bölgede (2x ABD, 2x AB, 1x JP) dağıtıyoruz. Her bölge için farklı yapılandırma dosyalarımız vardır (EuWestProductive.azurePubxml, ServiceConfiguration.CloudEuWest.cscfg, Web.ReleaseEuWest.config).Azure: Yapılandırma tarafından bir rol dağıtmayın

Şimdi Sorun: Her Bölgede "WebsiteRole" ve "WebsiteWorkerRole" yazılımlarını kullanıyoruz. Ancak "WebsiteWorkerRole" un yalnızca çok küçük görevleri vardır, böylece bir bölgedeki ekstra küçük bir örnek, fazlasıyla yeterlidir.

Rol örnek sayısını sıfıra (ServiceConfiguration.CloudEuWest.cscfg) ayarlamaya çalıştık. Ancak buna izin verilmiyor: Azure Feedback: Allow a Role instance count of 0

Cloudservice dağıtılırken rol kaldırmanın başka bir yolu var mı?

cevap

2

Hayır, keşfettiğiniz gibi, bir bulut hizmeti skalaya sıfıra izin vermiyor. Dağıtımı etkin bir şekilde kaldırmanız gerekiyor. Halihazırda sahip olduğunuz şeyin minimum değerine sahip olmak için, iki rolü iki farklı dağıtımda ayırabilirsiniz. Ardından, gerektiğinde çalışan rolünü dağıtan ve gerekmediğinde hizmet dışı bırakan bir Azure Otomasyon Komut Dosyası veya başka bir yerde çalıştırılan komut dosyaları var.

İşçinin yapacağı iş yükünün türüne bağlı olarak, işi gerçekleştirmek için Azure Automation gibi bir yöntem kullanmanın başka bir yoluna bakabilirdiniz. Bu, özellikle günde birkaç kez gerçekleşen küçük bir işlem miktarıysa doğrudur. Otomasyon senaryosunun dakikasıyla ücretlendirilirsiniz, bu yüzden gerçek geçerli örneğinden daha az çalışacağından emin olun.

Gerçekten, o işçinin ne yaptığını, ne kadar işlemesi gerektiğini, ne kadar kaynağa ihtiyacı olduğunu ve ne sıklıkla çalıştırılmaya ihtiyacı olduğunu gösterir. Azure Automation, web rolündeki başka bir konu, ayrı bir bulut hizmeti dağıtımı, vb. Gibi birçok seçenek vardır. Her biri kendi artıları ve eksileriyle. Bir seçenek, yeni duyurdukları yeni Azure İşlevlerine bile bakabilir (önizleme ve yürütme tarafından ücretlendirilir).

Kısa yanıt, worker (işçi) WebSiteRole dağıtımından ayrıdır, ardından bu çalışan rolünün en iyi barındırma mekanizmasına karar verin, böylece seçeneğin yalnızca gerektiğinde çalışabilme özelliğini içerdiğinden emin olun.

0

Teşekkürler @MikeWo, dağıtımları ayırma fikriniz harikaydı! Bunu küçük bir örnek projeyle doğruladım ve gayet iyi çalışıyor. Artık VM boyutu ve bölge başına diğer konfigürasyonları değiştirmek de mümkündür.

Example project

(Yorumlar görüntüleri izin vermez)

+0

Teknik olarak evet, ancak bu tür VM boyutu olarak ServiceDefinition dosyasında bazı ayarları için, sen o olsun bazı işler yapmak zorunda Bu dosya kod ile paketlendiğinden, oluşturup dağıtmadan önce gerçekleşir. Özel yapım adımları, VS'de yaptığınız gibi VS'de ayrı Bulut Projesi projeleri, vb. Gibi çeşitli yollardan faydalanabilirsiniz. Hizmet yapılandırmasındaki herhangi bir yapılandırma, kurulum zamanında kolayca işlenir. – MikeWo

İlgili konular