Azure RDS Deep Dive – Bölüm 14 Azure Cloud Services Scale
Azure RDS Deep Dive makale serimiz içinde bu bölüme kadar olan bölümde Basic RDS Deployment işlemlerini yerine getirdik ve Azure ortamının RDS ortamı için sağlamış olduğu avantajlardan ve özellikle dikey büyüme ve yatay büyüme konularını inceledik.
İhtiyaçlarımız çerçevesinde yapmış olduğumuz veya yapacak olduğumuz bu büyüme-küçülme işlemleri el-ile ve bizlerin kontrolü çerçevesinde yapılmaktadır.
Makale serimizin bu bölümü olan Part 14 Azure Cloud Services Scale makalesinde bu büyüme ve küçülme operasyonlarını Cloud Services içinde bulunan Scale işlemleri ile belirlemiş olduğumuz politikalar çerçevesinde otomatik olarak gerçekleşmesini sağlayacağız.
Azure Cloud Services Scale işlemlerini Azure Sanal sunucu seviyesinde yerine getirebilmemiz için ihtiyaç duymuş olduğumuz temel gereksinim Availability Set yapılandırmasıydı ve bu gereksinimi Part 13 Availability Set and VM Size Change makalesi içinde yerine getirdik.
Cloud Services içinde Scale bölümüne girdiğimizde ve scale işlemlerini yerine getirmek istediğimizde bir uyarı çıkmakta.
Before Autoscale configuration can begin, please make sure all the virtual machines in the availability set are the same size
Bu uyarının anlamı, Availability Set içinde bulunan azure sanal sunucuların aynı size sahip olmadıkları ve farklı size ‘a sahip sanal sunucuların aynı Availability Set içinde olsalar bile scale özelliğinden yararlanamayacaklarıdır.
Part 13 Availability Set and VM Size Change makalesinde gerçekleştirmiş olduğumuz sanal makine boyut değişikliğini kullanarak azcld-rdgwa isimli Availability Set içinde bulunan sanal sunucuların sizelerini eşitliyoruz.
Azcld-rdgw02 isimli sunucumuzun sahip olduğu size yi Standart_D3’ den Standart_D4 olarak değiştiriyorum.
Yapmış olduğum bu değişiklikten sonra azcld-rdgwa isimli Availability Set içimde bulunan sanal sunucularım aynı size a sahip duruma geldiler.
Yapmış olduğum bu değişiklik kısa bir süre sonra portal üzerinde algılanacak ve Scale bölümü aktif duruma gelecektir.
Cloud Services Scale işlemlerini Cpu ve Queue olarak iki başlık altında gerçekleştirebilmekteyiz. Scale işlemini gerçekleştirecek olduğumuz Azure nesnesi bir sanal sunucu ise CPU seçimini sahip olduğumuz azure nesnesi bir database ise Queue seçimini yapmamız gerekmektedir.
Azure RDS farmı içinde bulunan nesnelerim bir azure sanal sunucusu olduğu için seçimi CPU olarak gerçekleştirmem gerekecek ve artış ve eksilme işlemlerini CPU Instance olarak yapılması gerekecektir.
Diğer bir yapılandırma özelliği ise set up schedule times bölümüdür. Bu özelliği gerek CPU gerekse Queue olarak kullanabilmekteyiz.
Set up schedule times bölümüne girdiğimiz zaman kurumumuzun çalışma saatlerini ve kurumun yoğun çalışmış olduğu zaman dilimleri, daha az çalışmış günleri belirleyen politikaları oluşturabilmekteyiz.
Diffrent scale settings for day and night bölümü ile çalışmış olduğunuz çalışma saatlerinizi, vardiyalarınızı belirleyebilirsiniz.
Diffrent scale settings for weekdays and weekends bölümü ile kurumunuzun çalışmış olduğu hafta sonlarını ve hafta içi çalışma günlerinizi belirleyebilirsiniz.
Day starts bölümü ile mesai başlangıcı ve bitiş zamanını belirleyebilirsiniz.
Time zone bölümünde kurumunuzun kullanmış olduğu zaman dilimini belirleyebilirsiniz.
Specific Dates bölümü ile yoğun kullanacağınız veya hiç kullanmayacağınız özel günleri belirleyebilirsiniz.
Set up schedule times bölümünde vermiş olduğum değerlere baktığınız zaman normal bir kurumdan farklı olarak değerler verdiğimi görebilmektesiniz.
Sektöre ilk başlamış olduğum günden itibaren terminal services ve Remote Desktop services bileşenleri üzerine bir çok proje gerçekleştirmiş durumdayım ve bu projeler farklı tecrübeleri beraberinde getirdi. Bu tip ihtiyaçları sektörde defalarca gördüm. Ağırlıklı olarak mağazacılık, son kullanıcı satışı gerçekleştiren hizmet sektöründeki firmalar ile projeler gerçekleştirdiğim için bu tip hizmet sektöründe bulunan kurumların sahip oldukları çalışma zaman dilimlerinin diğer kurumlardan farklı olduğunu bilmekteyim. Bu değerleri verirken hizmet sektöründe bulunan bir mağazayı düündüm ve ihtiyaçlarına göre bu politikaları belirledim.
Set up schedule times bölümünde çalışma saatleri olarak saat 17:00 ile 23:30 olarak kural oluşturdum. Bu kuralı oluşturmuş kurum mağazacılık sektöründe bulunan bir kurum ve AVM içinde bulunan mağazaları bu saatler arasında yoğun olmaktadır ve iş yükleri bu satlerde artmaktadır. Ve oluşturmuş olduğum bu zaman politikaları ile bu zaman diliminde cpu instance ihtiyacı olursa azure tarafından otomatik sağlanmasını belirledim.
Bu tip hizmet sektöründe çalışan kurumlar Bayram, Özel gün, Tatil vb… zaman dilimlerinde çalışmaları yoğun olur. Bu tip özel günlerde, sevdiklerimize hediye almaya gittiğimiz zaman ki yoğunluklar sistemlerede yansımaktadır. Bu sebepten ötürü sisteme ben Kurban bayramı ve Ramazan bayramının günlerini belirledim ve bu günlerde yoğunluk olacağını ve bu zaman diliminde cpu instance ihtiyacı olursa azure tarafından otomatik sağlanmasını belirledim.
Senaryoları, kurumunuzun çalışma saatleri ve yaşamış olduğunuz yoğunluk günleri, kampanya zamanları gibi günler olarak belirleyebilirsiniz.
Oluşturmuş olduğumuz bu zamanlar Edit Scale Settings for schedule bölümünde görülmektedir. Her bir belirlemiş olduğumuz zaman için ayrı-ayrı instance değerleri belirleyebilmekteyiz.
Belirlemiş olduğumuz gerçekleştirebileceğimiz cpu instance değerlerinin artışı veya eksilmesinin kurallarını belirliyoruz.
Instance Range bölümünde 2 Core olarak artış veya eksilme olacağını belirleyebiliyoruz. Bu değer sahip olduğumuz VM size ye göre belirlenmektedir. En az 1 instance en fazla iki instance artış olabileceğini belirliyoruz.
Target CPU bölümünde mevcut çalışan işlemilerin toplam iş yükünü belirleyebilmekteyiz. Kuralımıza göre Azure sanal sunucularımız minimum %60 maksimum %80 arasında çalıştığı zamanlarda bu kural çalışacaktır.
En az değerde çalıştığı zaman seçmiş olduğumuz VM sizenin üzerinde CPU instance varsa düşme gösterecek, en fazla değerde çalıştığı zaman VM sizenin kaynakları yetmediği zaman CPU instance artışı olacaktır.
Scale up by bölümünde CPU instance lerinin her bir zaman diliminde artış zamanını belirliyoruz.
Alt bölümde bulunan Scale wait time olarak 20 minutes after last scale action değerini veriyorum. Target CPU bölümünde belirlemiş olduğumuz %60 – %80 değerleri yoğunluk olmadığı zaman diliminde gerçekleşebilir. Anlık olarak bir güncelleştirme gelmiştir, bir bakım yapılmıştır vb… etkenlerden ötürü CPU %80 ve üzeri anık olarak çıkabilir. Bu her çıkışta CPU instance eklenmesi gerekmez. Belirlemiş olduğumuz bu değerler 20 Dakika boyunca sürekli olarak tekrar ederse bu kuralın çalışmasını belirliyoruz. Her CPU Peak yaptığında CPU instance eklenmesi sağlıklı olmayacaktır.
Sonuçta bu instance eklenme işlemleri yeniden başlatma sonrasında aktif olacağı için kuralları çok iyi bir şekilde belirlememiz gerekmektedir.
Scale down by bölümünde ise tahmin edeceğiniz gibi Scale up by tarafında yapmış olduğumuz işlemlerin tam tersini yapmaktadır.