Azure'da sürdürülebilir iş yükleri için test konusunda dikkat edilmesi gerekenler
Çözüm geliştiren ve buluta dağıtan kuruluşların da güvenilir testlere ihtiyacı vardır. İş yükü testlerini çalıştırmaya yönelik önemli noktalar ve öneriler ve daha sürdürülebilir bir test modeli için iyileştirme hakkında bilgi edinin.
Önemli
Bu makale, Azure Well-Architected sürdürülebilir iş yükü serisinin bir parçasıdır. Bu seriyi bilmiyorsanız sürdürülebilir iş yükü nedir?
Test verimliliği
Düşük karbonlu dönemlerde tümleştirme, performans, yük veya diğer yoğun testleri çalıştırma
Tümleştirme, performans, yük veya başka herhangi bir yoğun test özelliğinin çalıştırılması çok fazla işlemeye neden olabilir. Dağıtılan iş yüklerini test etmek için iyi hazırlanmış bir tasarım, kullanılabilir kaynakların tam olarak kullanılmasına ve karbon emisyonlarının azaltılmasına yardımcı olabilir.
Green Software Foundation hizalaması: Karbon farkındalığı
Öneri:
- Kullanabileceğiniz verilerin bulunduğu yerlerde, veri merkezinin enerji karışımı öncelikli olarak yenilenebilir enerji kullandığında test çalıştırmayı planlayın. Örneğin, bazı bölgelerde gece boyunca test çalıştırmak daha yararlı olabilir.
Çalışan aracılarını gerektiği gibi ölçeklendirmek için CI/CD'yi otomatikleştirme
Az kullanılan veya etkin olmayan CI/CD aracılarının çalıştırılması daha fazla emisyona neden olur.
Yeşil Yazılım Temeli hizalaması: Donanım verimliliği
Öneri:
- Geçerli taleb temelinde işlem kullanımını yüksek tutar ve gereksiz kapasite ayırmayı önler.
- Ölçeği yalnızca gerekli olduğunda ve test edilmediğinde ölçeği daraltma. Sonuç olarak bu, test ortamlarında boşta işlem kaynağı olmamasını sağlar.
- Bakımı azaltmak için platformu kullanarak bir VM'deki testlere göre kapsayıcılar gibi iyileştirilmiş platform hizmetlerini göz önünde bulundurun.
CI/CD aracılarını kullanırken önbelleğe almayı göz önünde bulundurun
CI/CD sırasında önbelleğe alma mekanizmalarının kullanılması işlem süresini ve dolayısıyla karbon emisyonlarını azaltabilir.
Yeşil Yazılım Temeli hizalaması: Enerji Verimliliği
Öneri:
- Önbellekteki adımlardan elde edilen sonuçları depolayın ve mümkün olduğunda farklı CI/CD çalıştırmaları arasında yeniden kullanın: Farklı çalıştırmalar arasında sıklıkla değişmeyen bir yapıt oluşturmak için CPU süresi alan adımlar olduğunda, cpu süresinin aynı yapıtı oluşturan her çalıştırmada boşa harcanmaması için gelecekte kullanılmak üzere kaydetmek akıllıca olacaktır. tekrar tekrar.
- CI/CD aracısı şirket içinde barındırılıyorsa, veri aktarımlarını ve emisyonlarını daha da azaltmak için aracıya yerel bir önbellek kullanın. Bu, önbelleğin ağ üzerinden aktarılmamasını sağlar ve bu da önemli bir emisyon kaynağı olabilir.
Büyük kod depolarını bölme
Büyük depoların bölünmesi, kodun yalnızca değiştirilen bölümlerinin derlendiği CI/CD aşamalarına yardımcı olabilir. Bu işlem süresini kısaltarak karbon emisyonlarını düşürür.
Yeşil Yazılım Temeli hizalaması: Enerji Verimliliği
Öneri:
- Büyük kod depolarını bölerek ana kodu kitaplıklardan ve bağımlılıklardan ayırın.
- Birden çok depoda ortak olan kod yapıtlarını ve kitaplıklarını yayımlayın ve yeniden kullanın.
Öneri:
- Büyük kod depolarını daha küçük depolara bölerek ana kodu kitaplıklardan ve bağımlılıklardan ayırın.
- Birden çok depoda ortak olan kod yapıtlarını ve kitaplıklarını yayımlayın ve yeniden kullanın.
Profil oluşturma ve ölçme
Ayrılmış kaynakların en iyi şekilde nasıl kullanılacağını anlamak için iş yüklerini ölçme, profil oluşturma ve test etme zorunlu olur.
Paralelleştirmenin mümkün olduğu yeri değerlendirme
İş yüklerinin profilini düzgün bir şekilde oluşturmadan ve test etmeden, temel alınan platformdan ve dağıtılan kaynaklardan en iyi şekilde yararlanıp yararlanmadiğini bilmek zordur.
Green Software Foundation hizalaması: Sürdürülebilirlik ölçümü
Öneri:
- Eşzamanlı istekleri, aynı anda işlemeyi ve daha fazlasını anlamak için uygulamalarınızı test edin.
- Testler için Machine Learning (ML) çalıştırıyorsanız daha iyi verimlilik elde etmek için GPU'ya sahip makineleri göz önünde bulundurun.
- İş yükünün performans açısından yoğun olup olmadığını belirleyin ve iyileştirme için çalışın.
- Şu dengeyi göz önünde bulundurun: ML testleri için GPU tabanlı makineleri çalıştırmak maliyeti artırabilir.
Kaos mühendisliği ile değerlendirme
Tümleştirme, performans ve yük testlerinin çalıştırılması iş yükünün güvenilirliğini artırır. Ancak kaos mühendisliğinin tanıtılması güvenilirlik ve dayanıklılığın artırılmasına ve uygulamaların hatalara nasıl tepki vermesine önemli ölçüde yardımcı olabilir. Bunu yaparken iş yükü hataları düzgün bir şekilde ve daha az boşa harcanmış kaynaklarla işleyecek şekilde iyileştirilebilir.
Green Software Foundation hizalaması: Sürdürülebilirlik ölçümü
Öneri:
- İş yükünün platform kesintilerini ve trafik artışlarını veya düşüşlerini nasıl işlediğini değerlendirmek için yük testi veya kaos mühendisliğini kullanın. Bu, hizmet dayanıklılığını ve hatalara tepki verme becerisini artırmaya yardımcı olarak daha iyileştirilmiş bir hata işlemeye olanak tanır.
- Şu dengeyi göz önünde bulundurun: Kaos mühendisliği sırasında hata enjekte etme ve herhangi bir sistemdeki yükü artırma, test kaynakları için kullanılan emisyonları da artırır. Gereksiz test oturumlarının iklim etkisini göz önünde bulundurarak iş yükü güvenilirliğini artırmak için kaos mühendisliğini nasıl ve ne zaman kullanabileceğinizi değerlendirin.
- Bunun bir diğer açısı da enerji hatalarını veya daha yüksek karbon emisyonlarıyla anları test etmek için kaos mühendisliği kullanmaktır: Uygulamanızı mümkün olan en düşük enerjiyi tüketmeye zorlayacak testler ayarlamayı göz önünde bulundurun. Belirli bir "eco" sürümüyle uygulamanın, bazı özelliklerden ve muhtemelen bazı performansdan ödün vererek mümkün olan en düşük karbonu yaydığını kullanıcılara bildiren belirli bir "eko" sürümle bu tür koşullara nasıl tepki göstereceğini tanımlayın. Bu, sürdürülebilirlik puanlaması için kıyaslama uygulamanız da olabilir.
Testte CPU ve Bellek eşikleri oluşturma
Uygulamanızda sürdürülebilirliği test etmek için testler oluşturmaya yardımcı olun. Temel CPU kullanım ölçümüne sahip olmayı göz önünde bulundurun ve testler çalıştırıldığında CPU kullanım temelinde anormal değişiklikleri algılayın. Temelle, son kod değişikliklerinde verilen en iyi olmayan kararlar daha önce bulunabilir.
Dağıtım ve test işlem hattına testler ve kalite geçitleri eklemek sürdürülebilir olmayan çözümlerin dağıtılmasını önlemeye ve düşük emisyonlara katkıda bulunmaya yardımcı olur.
Green Software Foundation hizalaması: Enerji verimliliği
Öneri:
- Tümleştirme testlerini veya birim testlerini çalıştırırken CPU ve bellek ayırmalarını izleyin.
- Uygulama kodunda anormal derecede yüksek kaynak tüketimi alanlarını bulun ve önce bunları azaltmaya odaklanın.
- Yerleşik temel değerleri aşıyorsanız uyarıları veya test hatalarını yapılandırın ve sürdürülebilir olmayan iş yüklerinin dağıtılmasını önlemeye yardımcı olun.
- Bu dengeyi göz önünde bulundurun: Uygulamalar büyüdükçe, yeni özellikler sunarken testlerin başarısız olmasını önlemek için temelin buna göre kayması gerekebilir.
Sonraki adım
operasyonel yordamlar için tasarımla ilgili dikkat edilmesi gerekenleri gözden geçirin.