Performans Verimliliği, kapasiteyi yöneterek yükte artış olduğunda bile kullanıcı deneyimini korumakla ilgilidir. Strateji kaynakları ölçeklendirmeyi, olası performans sorunlarını tanımlamayı ve iyileştirmeyi ve en yüksek performans için iyileştirmeyi içerir.
Bu olgunluk modeli, kaynakları ölçeklendirerek, olası performans sorunlarını belirleyip iyileştirerek ve en yüksek performans için iyileştirme yaparak stratejik bir performans iyileştirme yolculuğunda size yol gösterir.
İlk olarak doğru bileşenleri seçip performans hedefleri belirleyecek, ardından iş yükünüzün davranışını ölçmeye ve izlemeye ilerleyeceksiniz. Olgunlaştıkça yaklaşımınızı geliştirmek, hedeflenen iyileştirmeler için üretim içgörülerinden yararlanmak ve sonuçta deneme ve otomasyon aracılığıyla gelişmiş iyileştirme elde etmek için gerçek kullanıcı geri bildirimlerini birleştirirsiniz. Her aşama bir önceki aşamayı temel alarak performans stratejinizi reaktif sorun gidermeden proaktif verimlilik mühendisliğine dönüştürür.
Model, her biri birincil hedefe ve bir dizi temel stratejiye sahip beş ayrı olgunluk düzeyine yapılandırılmıştır. Her düzeyi keşfetmek için aşağıdaki sekmeli görünümleri kullanın. İlerledikçe vurgulanan dengeleri ve ilişkili riskleri de gözden geçirmeyi unutmayın.
Net performans beklentileri oluşturun ve gereksinimlerinize uygun şekilde boyutlandırılmış bileşenleri seçin.
Olgunluk modelinin 1. düzeyi, performans beklentilerini toplamaya ve bu beklentileri karşılamanıza yardımcı olacak bulut hizmetlerini seçmeye odaklanır. Bu düzeyde, en uygun kaynakları ve bileşenleri araştırırsınız. Yalnızca gerekli performans özelliklerini sağlayan hizmetlerin önceliklerini belirleyin. Bu yaklaşım maliyetleri denetlemeye yardımcı olur ve geliştirme hızınızı korur.
Temel stratejiler
İş yükü performansıyla ilgili genel beklentileri anlamak için paydaşlarla birlikte çalışın. Bu beklentiler, web uygulamaları için sayfa yükleme sürelerine yönelik hedefleri veya etkileşimli sistemler için yanıt sürelerini içerebilir. İş yükü geliştirmenin bu aşamasında, odak noktanız henüz performans ölçümlerini ölçmeye odaklanmadığından, bu hedefleri temel gereksinimler yerine yönergeler olarak değerlendirin. İş yükü beklentilerini topladıktan sonra, iş yükünüz için uygun olabilecek kaynak türlerini araştırmaya başlayın.
✓ Uygun ağ kaynaklarını seçin
İş yükünüz için uygun hizmetleri ve yapılandırmaları belirlemek için ağ gereksinimlerinizi değerlendirin. Ağın iş yükünüzü etkili bir şekilde desteklediğinden emin olmak için ağ trafiğini, bant genişliğini, gecikme süresini ve aktarım hızını göz önünde bulundurun. Gecikme süresini azaltmak için özel sanal ağları ve omurga ağlarını kullanın.
Sunucu aşırı yüklemesini önlemek ve yanıt sürelerini azaltmak için ağ trafiğinin eşit dağıtılmasını sağlayın. Bulut sağlayıcınız tarafından sunulan farklı yük dengeleme hizmetlerini değerlendirin. Trafik türünü, genel veya bölgesel yönlendirmeyi, hizmet düzeyi hedeflerini ve site hızlandırma ve düşük gecikme süreli yük dengeleme gibi belirli özellikleri göz önünde bulundurun.
Risk:Temel ağ için farklı seçenekleri tam olarak araştırmak ve anlamak için zaman ayırın. Bu alandaki daha sonraki değişiklikler için tam yeniden tasarım ve yeniden dağıtım gerekebilir.
✓ Uygun işlem kaynaklarını seçin
Örnek türü, ölçeklenebilirlik ve hizmet katmanları dahil olmak üzere iş yükünüzün işlem gereksinimlerini değerlendirin. Performans kazanımları elde etmek için, yalıtım, kaynak verimliliği, hızlı başlangıç süreleri ve taşınabilirlik sağlayan kapsayıcıları kullanmayı göz önünde bulundurun.
İş yükünüz geliştikçe kolayca ölçeklendirmenizi sağlarken gereksinimlerinizi karşılayabilecek bir işlem hizmeti seçin. İş yükünüzü oluşturmak yinelemeli bir işlemdir. Daha az performanslı SKU'lar ve daha az örnek kullanarak küçük bir başlangıç yapabilirsiniz. Bu bileşenleri iş yükünün yaşam döngüsünün ilerleyen bölümlerinde yükseltin.
Taviz: Acil ihtiyaçlarınızı bütçenizle karşılaştırın. Kullanımda olmayan işlem kaynaklarını kapatma veya serbest bırakma fırsatlarını arayın.
✓ Uygun veri deposu hizmetlerini seçin
İş yükünüzün verileri depolama, alma ve yönetme gereksinimlerini belirleyin. Aşağıdaki gibi özellikleri göz önünde bulundurun:
Veri türleri: İş yükünüzün hangi tür verileri almasını, işlemesini veya depolamasını bekliyorsunuz?
Hacim: Ne kadar veri almayı, işlemeyi veya depolamayı bekliyorsunuz?
İşlem aktarım hızı: Farklı veri türlerine erişmek için performans gereksinimleri nelerdir?
Tutarlılık: Veri türleri arasında veri tutarlılığı için hedefleriniz nelerdir?
Dayanıklılık: Veri türleri arasında veri dayanıklılığı için hedefleriniz nelerdir?
Erişim desenleri: İş yükünüzün hangi tür erişim desenlerini desteklemesi gerekiyor? Örneğin, belirli bir bileşen için birkaç yazma işlemi ancak birkaç okuma gerçekleştirmeniz gerekebilir. Başka bir bileşen için tam tersini yapmanız gerekebilir.
Bu soruların yanıtlarına bağlı olarak, iş yükünüzün kullanım örneklerinden her biri için en iyi veri hizmetini seçin .
Bulut ortamlarındaki veri hizmetleri için çok çeşitli seçenekler olduğundan, tasarımınızı iş yükünüzdeki her bileşenin işlevselliğine en uygun şekilde farklı hizmetleri kullanacak şekilde uyarlayabilirsiniz. Bu yaklaşım, her bileşenin performansını iyileştirmenize yardımcı olur.
Ticaret-off: Tek bir veri deposuna konsolide edebileceğiniz bileşenler için farklı veri hizmetleri seçerek veri bileşenlerinizi aşırı mühendislik yapmayın. Performans ile maliyet ve karmaşıklık arasında dengeyi sağlama.
İş yükünüzün davranışına görünürlük sağlamak ve iyileştirme fırsatlarını belirlemek için kapsamlı performans izleme uygulayın.
Performans Verimliliği sütununun 2. Düzeyi, performans iyileştirmelerinizi bilgilendirmek için iş yükünüz hakkındaki bilgileri kullanmaya odaklanır. İlk adım, kritik iş yükü akışlarını performans açısından belirlemektir. Ardından, iş yükünüzü bileşenlerine ayırıp, gelecekteki iyileştirmeler için yakalayıp çözümleyebileceğiniz ölçülebilir hedefler ve ölçümler ayarlayın. Son olarak, performans verimliliğinizi artırmanıza ve ilk kapasite planlama alıştırmasını gerçekleştirmenize yardımcı olabilecek tasarım desenlerini araştırmanız gerekir. Bu etkinlikler, iş yükünüzün hemen geleceği için bir plan oluşturmanıza yardımcı olur. Bu yaklaşım, iş yükü geliştikçe performansın düşmemesini sağlar.
Temel stratejiler
İş yükü akışlarınızı sıralamak ve kategorilere ayırmak, Well-Architected Framework yapılarının her birinde önemli bir stratejidir. Akışları her bir sütunun perspektifinden analiz etmek, iyileştirilmesi gereken alanları belirlemenize yardımcı olur. Nereye yatırım yapabileceğinizi belirlemenize yardımcı olması için bu iyileştirmeleri karşılaştırabilirsiniz. Örneğin, bazı senaryolarda bir akışın güvenlik kaygıları performans kaygılarından daha ağır basabilir. Akışları kategorilere ayırıp sıraladıktan sonra, iyileştirme planlamanıza başlamak için kritik olarak tanımladığınız akışlara odaklanın. Kritik akışları belirlemenize yardımcı olabilecek performansa özgü ölçütler şunlardır:
Frekans: Bir ürünü arama gibi akışın gerçekleştiriliş sayısı.
Kritiklik: Akışın, kullanıcı profili araması gibi uygulamanın genel başarısı için sahip olduğu önem derecesi.
Risk: Akışın karmaşık bir rapor oluşturma gibi genel performans üzerindeki risk düzeyi.
Veri yoğunluğu: Akışın veri katmanına uyguladığı basınç miktarı.
Mimari yoğunluğu: Akışın iş yükü genelindeki bileşenlerle etkileşime geçme kapsamı.
✓ Hedeflerinizi karşılamanıza yardımcı olacak iş yükü kaynaklarınız ve bileşenleriniz için önemli ölçümler oluşturun
Pazar araştırmalarına, rekabetçi analizlere ve anketlere göre iş yükü bileşenleriniz ve kaynaklarınız için performans hedefleri ayarlayın. Yanıt süresi, aktarım hızı ve gecikme süresi gibi önemli ölçümlere odaklanın. Farklı bileşenler, kullanıcı akışları, iş akışları, veri akışları, dış bağımlılıklar ve genel iş yükü performansı için hedefler oluşturun.
Müşteri beklentilerini göz önünde bulundurarak her ölçüm için gerçekçi ve ölçülebilir hedefler belirleyin. Kapsamlı bir bakış açısı elde etmek için P99, P95 ve P50 gibi yüzde birlik değerleri kullanın. Temel performansı oluşturmak için test gerçekleştirin, ancak iyileştirmeyi fazla abartmayın.
Tüm performans hedeflerini hem geliştirme hem de operasyon ekipleri tarafından erişilebilen merkezi bir konumda kaydedin. Hedefleri görünür ve eyleme dönüştürülebilir hale getirmek için panoları ve raporları kullanın.
Kapasite planlaması, iş yükünüzün yaşam döngüsü boyunca düzenli olarak yürütülmesi gereken yinelemeli bir süreçtir. Bu aşamada, kullanımdaki tüm teknolojileri henüz tam olarak tanımamış veya farklı seçenekleri değerlendiriyor olabilirsiniz. Bu belirsizlik, gelecekteki ihtiyaçlara yönelik kapsamlı planlama yapma becerinizi sınırlayabilir. Bu ilk kapasite planlama alıştırmasında amaç, acil talebi karşılamak için kaynak ekleme de dahil olmak üzere reaktif kapasite yönetiminden geçiş yapmaktır. Bunun yerine, belirli bir dönem için gereken kapasiteyi tahmin ettiğiniz proaktif planlamaya odaklanılır. Etkin kapasite planlaması elde etmek için mevcut iş yüklerine yönelik geçmiş desenler de dahil olmak üzere kaynak kullanımıyla ilgili verileri toplayın ve analiz edin. Gelecekteki ihtiyaçları tahmin etmek için istatistiksel analiz, eğilim analizi ve tahmine dayalı modelleme kullanın. Bu tahminlerin iş yükü hedefleriyle uyumlu olduğundan emin olun.
Risk: Geleneksel, veri merkezi tabanlı bir ortamda aşırı sağlama, kapasite planlaması için yaygın bir yaklaşımdır. Bulut ortamında aşırı sağlama, para israfı olabilir. Bütçenizi olumsuz etkilemeden performans gereksinimlerinizi karşılayacak şekilde kapasite eklemeye yönelik bir zaman çizelgesi geliştirmek için iş beklentilerinizi dikkatle göz önünde bulundurun.
İş yükünüzü performans için iyileştirmenize yardımcı olabilecek birçok yaygın uygulama tasarım deseni vardır. Önbellek ekleyerek veya parçalama stratejisi geliştirerek performans kazanımları elde edebilirsiniz. İş yükünüzü geliştirmenize yardımcı olabilecek desenlerin kapsamlı bir listesi için bkz. Bulut tasarım desenleri.
Ödün: Bazı tasarım desenleri iş yükünüz için bir derece karmaşıklık katabilir. Belirli bir düzenin uygulamaya değer olup olmadığını belirlemek için ek yönetim yükünü verimlilik kazançlarınızla karşılaştırın.
Kod iyileştirme, iş yükünüzün tamamını daha verimli hale getirir. Uygulama görevleri daha hızlı çalışır ve daha az işlem kaynağı kullanır, böylece altyapınızın performansını en üst düzeye çıkarabilirsiniz. Aşağıdaki kod iyileştirme yaklaşımlarını göz önünde bulundurun:
Kodunuzu enstrümanla. Kodunuzu enstrümante etmek, çalışma süresince telemetri verilerini toplayarak kod performansınızdaki sorunları belirlemenize yardımcı olur. Bu işlem, geliştirme döngüsünün başlarındaki sorunları belirlemenize ve çözmenize yardımcı olur.
Sık kullanılan yolları belirle. Kodunuzu enstrümanlayarak, sık erişimli yolları belirlemenize yardımcı olur. Sık erişimli yollar, programın yüksek performans ve düşük gecikme süresi gerektiren temel veya yüksek kullanımlı bölümleridir.
Kod mantığını iyileştirme. Daha iyi verimlilik için kod mantığınızı basitleştirmenin yollarını bulun. Gereksiz işlev çağrılarını ve veri işleme işlemlerini kaldırın. Günlük kaydı, ağ istekleri ve bellek ayırmalarını en aza indirin. Daha performanslı SDK'ları ve kitaplıkları kullanma fırsatlarını arayın.
Eşzamanlılık ve paralellik kullanın. Eşzamanlılık ve paralellik kullanmak, birden çok görevi etkili bir şekilde yöneterek uygulamanızın verimliliğini artırabilir. Eşzamanlılık, aralarında geçiş yaparak birden çok görevi işlerken paralellik birden çok görevi aynı anda işler.
Performans sorunlarını belirlemek ve kullanıcı deneyimini geliştirmek için aktarım hızı, gecikme süresi ve tamamlanma süreleri gibi uygulama performansı verilerini toplayın. Daha kolay analiz için dağıtılmış izleme ve yapılandırılmış günlükleri kullanın. Tüm kaynaklar için ölçümleri ve günlükleri toplayın. Performans izleme için Azure İzleyici İçgörüleri gibi araçları kullanın. Veritabanı ve depolama verilerini toplayın ve sanal makineler için performans ölçümlerini toplayın. Kolay erişim ve analiz için toplanan tüm verileri tek bir yerde depolayın.
Risk: Topladığınız ve depoladığınız veri miktarı hızla artabileceğinden ve maliyetler beklenmedik şekilde artabileceğinden günlük döndürme ve saklama ilkeleri ayarladığınızdan emin olun.
Kullanıcı deneyimini geliştiren hedeflenen performans iyileştirmeleri sağlamak için gerçek kullanıcı içgörülerinden ve sistem geri bildirimlerinden yararlanın.
Performans Verimliliği sütununun 3. düzeyi, performans hedeflerini, iş yükü tasarımını ve yapılandırmalarını ve ilgili operasyonel uygulamaları iyileştirmek için iç ve dış sinyalleri birleştirmeye odaklanır. Önceki olgunluk düzeylerinde, geliştirme hızı gereksinimlerine ve iç testlere göre performans hedefleri ve yapılandırmaları ayarlamış olabilirsiniz. İş yükünüzü geliştirdikçe, iç ve dış kullanıcılardan ve paydaşlardan gelen geri bildirimleri birleştiren bu özellik, üretim iş yükünüz için gerçekçi performans hedefleri sağlamaya yardımcı olur. Bu yaklaşım, diğer yapı taşlarının gereksinimlerinden ödün vermeden bu hedefleri karşılamanızı sağlar.
Temel stratejiler
Üretime geçmek, performans sorunlarına hemen yanıt vermeye hazır olmanız gerektiği anlamına gelir. Güçlü performans izleme ve kullanışlı, eyleme dönüştürülebilir uyarılar, doğru takımlara sorun bildirilmesini ve araştırma ve sorun giderme etkinliklerine hızla başlayabilmesini sağlamaya yardımcı olur. Aşağıdaki stratejiler performans sorunu yanıt etkinliklerinizi tanımlamanıza yardımcı olabilir:
İzleme platformunuzda performans uyarılarını yapılandırın.
Bir bileşen performans sorunu riski altında olduğunda eyleme dönüştürülebilir uyarılar sağlamak için uyarılarınızı ayarlayın. Bu yaklaşım, statik bir değerde eşik ayarlamayı veya belirli bir ölçüm için eğilim değişikliklerine dayandırma içerebilir. Hatalı pozitif sonuçları önlemek için sürekli test aracılığıyla tetikleyici değerini belirleyin.
Sorunların temel nedenlerini belirlemek için günlükleri ve performans ölçümlerini analiz edin.
Proje katılımcılarını performans sorunlarının durumu ve çözüm ilerleme durumu hakkında bilgilendirin.
Performans sorunlarını etkilerine göre önceliklendirmek için bir çerçeve oluşturun.
Performans sorunlarına yanıt vermek için tüm adımları, işlemleri ve en iyi yöntemleri belgeleyin.
Performans izleme stratejinizin bir parçası olarak, akışlarınızın performansını özellikle izlediğinizden emin olun. Her akışın iş yükü performansı üzerindeki etkisini anlama. Akışlar için, kullanıcı davranışı içgörüleri aracılığıyla olası sorunları belirleyin. Kritik akışları iyileştirmek için yanıt sürelerini, hataları ve diğer ölçümleri izleyin. Akış performansını izlemek ve sorunları belirlemek için günlükleri analiz edin.
Hedeflerinizin beklentilerle uyumlu olup olmadığını değerlendirmek için performansla ilgili iç ve dış kullanıcı geri bildirimlerini düzenli olarak gözden geçirin. Yararlı geri bildirimler toplamak için müşteri memnuniyeti yoklaması, yorum sistemleri ve hedeflenen kullanıcı testlerini kullanmayı göz önünde bulundurun.
İş yükünüz için pratik olduğunda Gerçek Kullanıcı İzleme (RUM) yaklaşımını kullanmayı göz önünde bulundurun. Bu yaklaşım, kullanıcı deneyiminin performans beklentilerinizi karşılayıp karşılamadığını belirlemenize yardımcı olabilir.
Application Insights ve Azure Traffic Manager , web siteleri için RUM verilerini yakalamak için işlevsellik sağlar.
Hedeflerinize ve hedeflerinize uygun ölçümleri kullanarak uygulamanızın performansını izleyin. Doğru verileri topladığınızdan emin olmak için bu ölçümleri kullanıcı ve iş katılımcısı geri bildirimleriyle karşılaştırın. Bazı çakışmalar olsa bile daha kolay analiz için işle ilgili ölçümleri performans verilerinden ayrı tutun. Bu yaklaşım, verileri daha net hale getirir ve ekiplerin bilinçli kararlar vermesine yardımcı olur.
Eğilimleri analiz etmek, kapasite gereksinimlerinizi planlamanıza yardımcı olur. Her zaman yeterli kaynağa sahip olmak için tahminlerinizi iş yükü hedeflerine ve kullanıcı talebine uyacak şekilde güncelleştirin. Hizmet sınırlarına girmeden gerektiğinde kaynak ekleyebildiğinizden emin olmak için bulut sağlayıcınızın hizmet düzeyi sözleşmelerini düzenli olarak gözden geçirin.
Kapasite planlamanızı geliştirdikçe, iş hedefleriyle uyumlu kalmak için iş karar alıcılarıyla yakın işbirliği yapın.
Ödünleşme: Performans kapasitesi planlamasını güvenilirlik ve bütçe gereksinimleriyle dengeleyin. Gereksinimler çakıştığında pratik tavizler bulmak için paydaşlarla birlikte çalışın.
✓ Ölçeklendirme stratejinizi iyileştirin
Kaynak kullanımınızı iyileştirmek için gelişmiş ölçeklendirme tekniklerini kullanın. İç ve dış geri bildirimlere göre ölçeklendirme işlemleri için kullanılan eşikleri ayarlayın. Yerel otomatik ölçeklendirme işlevselliği olmayan bileşenler için ölçeklendirme işlemleri gerçekleştirmek için otomasyon oluşturun. Gün, hafta veya ay boyunca tahmin edilebilir zamanlarda az kullanılan veya boşta kalan bileşenler için zamanlanmış ölçeklendirmeyi kullanın. Ölçeklendirme yapılandırmalarını sürekli olarak değerlendirin ve bir iş yükünün dalgalı taleplerini daha iyi karşılamak için iyileştirmeler yapın.
✓ Veri yönetimini iyileştirme
Veri yönetimindeki verimsizlikler iş yükünüz genelinde performans sorunlarına neden olabilir. Veri varlığınızı iyileştirmek için aşağıdaki stratejileri kullanın:
Büyük veri kümelerini veya iş yüklerini ayrı depolama veya işleme için bölümler olarak adlandırılan daha küçük parçalara bölün. Bu yaklaşım paralel işlemeye olanak tanır, çekişmesini azaltır ve kaynak kullanımı ile işleme sürelerini iyileştirir. Ayrıca verileri birden çok depolama cihazına dağıtarak tek tek yükü azaltır ve genel performansı artırır. Bölümleme türlerini belirli kullanım örnekleriyle hizalayın. Bölümleme, sistemin gereksinimlerine bağlı olarak yatay, dikey veya işlevsel olabilir. Bölümleme kullanan tasarım desenleri hakkında daha fazla bilgi için bkz. Performans Verimliliği tasarım desenleri.
Azure SQL Veritabanı için sorgu performansı içgörüleri gibi özellikleri kullanarak sorguları iyileştirin.
Normalleştirme, dizin oluşturma ve bölümleme gibi faktörleri göz önünde bulundurarak veri modelinizin iş yükünüz için uygun olduğundan emin olun.
Arabellek boyutu ve önbelleğe alma gibi ayarları iyileştirerek depolama altyapısını iş yükü gereksinimleriyle uyumlu hale getirme.
İş yükünüzün farklı üretim senaryolarında nasıl performans sergilediğini anlamanıza yardımcı olabilecek performans testleri tasarlayın. Ölçütlere ve ölçümlere göre yük, stres, bekletme, ani artış ve uyumluluk testleri gibi çeşitli testler uygulayın. Her testin iş yükü performansınızı nasıl etkilediğini ölçün. Ölçümler yanıt süresi, aktarım hızı, bellek ve CPU kullanımı gibi performans yönlerini içermelidir. Hedeflerle uyumlu kabul ölçütlerini tanımlayın. Daha fazla bilgi için bkz. Performans testi önerileri.
Performans testi, genel test stratejinizin bir parçası olarak ayrılmış bir ortamda yapılmalıdır. Bu yaklaşım güvenilirlik ve güvenlik testlerini içerir.
Performans sorunlarını ve verimsizlikleri saptamak için test sonuçlarını gözden geçirin. Bulguları hedefler, önceden tanımlanmış ölçütler veya önceki çalıştırmalar ile karşılaştırın.
Taviz: Test ortamları önemli maliyet etmenleri olabilir. Test edilen belirli senaryoya doğru öykünmek için yalnızca gerekli kaynakları içeren test ortamları tasarlayın. Kullanım maliyetlerini en aza indirmek için, test sonrasında kaynakların kapatıldığından veya silindiğinden emin olun.
Risk: Üretim verilerini kullanmanız gerekiyorsa, hassas verilerin test ortamlarına kopyalamadan önce kaldırıldığından emin olun. Pratik olduğunda yapay veri kullanın.
Bir diğer kritik test işlevi de performans temelinizi oluşturmaktır. Temeller, zaman içindeki performansı karşılaştırmak için başvuru noktaları sağlar. Performans ölçümlerini belirleyin ve temel ölçümler olarak kullanın. İyileştirmeleri veya düşüşü belirlemek için gelecekteki performansı bu temellere göre değerlendirin. Güncelleştirilmiş tasarım öğelerini ve özelliklerini yakalamak için taban çizgilerini düzenli olarak gözden geçirin ve güncelleştirin. Eski taban çizgileri, iş yükü olgunlaştıkça ve yeni özellikler eklendikçe gerçekçi olmayan ve ulaşılamaz hedeflere neden olabilir.
Ekiplerin üretimden ders aldığı, iç ve dış geri bildirimleri dinlediği bir sürekli iyileştirme ortamı geliştirin. Performansı iyileştirmek ve talep dalgalanmalarını işlemek için iş yükü ekiplerini gerekli beceriler ve düşünce yapısıyla donatın. Performans sorunlarını izlemek ve gidermek için zaman ayırın. Görünür performans hedefleri, taban çizgileri ve kabul edilebilir sapma eşikleri ile net beklentileri ayarlayın.
Veri odaklı karar alma ve proaktif iyileştirme ile üretim içgörülerini sistematik performans geliştirmelerine dönüştürün.
Olgunluk modelinin 4. düzeyi, iş yükünüzün üretimde olduğunu ve normalde nasıl çalıştığına ilişkin yararlı içgörüler toplamak için yeterli süredir çalıştığını varsayar. Bu düzeyde, gerekli güncelleştirmeleri ve daha fazla geliştirmeyi yapmak için bu bilgileri kullanmalısınız.
Performans sorunları ve darboğazlar gibi problemleri belirlemek ve iyileştirme planları geliştirmek için telemetri ve geri bildirim mekanizmalarını kullanın. Ortamınızda değişiklik yaparken yanlışlıkla daha fazla soruna neden olmadığınızdan emin olmak için olgun değişiklik yönetimi uygulamalarını kullanın.
Yinelemeli iyileştirmelerin, geri dönüşlerin azaldığı bir noktaya ulaştığını unutmayın. Gereksinimlerinizi karşılayan çalışan bir duruma ne zaman ulaşabileceğinize karar vermeniz gerekir. Kabul edilebilir bir durum, verimsizlikleri düzeltme maliyetinin ve yükünün, elde ettiğiniz küçük performans iyileştirmelerinden daha ağır basmama durumudur.
Performansı geliştirmek için ortamınızda yaptığınız tüm değişikliklerin Well-Architected Framework'ün diğer yapılarını doğrudan etkilediğini unutmayın. Maliyet optimizasyonu en yaygın ödündür. Gereksinimleriniz için doğru dengeyi korumak için performans iyileştirmeleri yapmanızdan önce diğer yapı taşlarının etkisini dikkatle değerlendirin.
Temel stratejiler
Düzey 4'te üretim performansını izlemeli ve test etmelisiniz. İyi geliştirilmiş test planlarınız ve senaryolarınız ve test verileriniz zaten mevcut olmalıdır. Test etme amacı, potansiyel performans sorunlarını üretimde oluşmadan önce yakalamaktır. Bu nedenle izleme ve test sıkı olmalı, standartlaştırılmalı ve ayrıntılı bir şekilde belgelenmelidir. Aşağıdaki önerileri gözden geçirin:
Temelinizi sürekli olarak gözden geçirin. Temelinizin gerçek performans ölçümlerini yansıtmasını sağlamak için performans izlemenizden öğrendiklerinizi uygulayın. Özellik güncelleştirmeleri gibi dağıtımların performansı olumsuz etkilemediğinden emin olmak için bu temele göre testler çalıştırdığınızdan temeli korumak önemlidir.
Test sürecinizde sola kaydırma yapın. Olası sorunları üretimde oluşmadan önce yakalamak için geliştirme döngünüzün önceki bölümlerinde testleri tümleştirin.
Testinizde sağa doğru kay. Üretimde test edin. Testin kesintiye neden olmadığından emin olmak için mavi-yeşil dağıtımlar ve A/B testi gibi stratejileri kullanın.
Testinizde yapay işlemler kullanın. Yapay işlemler, gerçek dünya kullanıcı deneyimini tutarlı bir şekilde test etmenizi sağlar. Bu testler, kullanıcılar etkilenmeden önce sorunları ve olası iyileştirmeleri belirlemenize yardımcı olur.
İzleme ve testi otomatikleştirme. Temelinize göre izleme ve uyarı oluşturmayı otomatikleştirmek ve performans testi için endüstride kanıtlanmış araçları kullanın. Otomasyon, el ile gerçekleştirilen adımları azaltır ve tutarlılık sağlar.
Takas: Üretimde test yapmak karmaşık olabilir ve genellikle DevOps ekiplerinden önemli çaba gerektirir. Bu gereksinimler geliştirme hızını ve diğer operasyonel işlevleri etkileyebilir. Mavi-yeşil dağıtımlar ve A/B testi, test sırasında yinelenen kaynaklar kullanarak iş yüküne maliyet de ekleyebilir. Bu konuları bütçenize ve geliştirme planlamanıza ekleyin.
✓ Gelişmiş veri yönetimi iyileştirmeleri uygulama
Düzey 4'te, zaten birçok veri yönetimi iyileştirme stratejiniz olmalıdır. Veri yönetiminize ince ayar yapmak ve iş yükünüzün gelişmeye devam ederken verimli bir şekilde performans göstermesini sağlamak için üretim deneyiminizi kullanın.
Veri ayak izinizi azaltmak için kayıpsız ve kayıplı sıkıştırma yöntemlerini kullanın. Bu yaklaşım, depolama alanı ve bant genişliği kullanımından tasarruf sağlar ve daha hızlı veri aktarımları ve erişim sürelerine neden olabilir.
Nadiren kullanılan veya artık kullanılmayan veriler için arşiv ve silme ilkesi geliştirin ve uygulayın. Depolama alanından ve bant genişliği kullanımından tasarruf etmeye yardımcı olmak için verileri ayrı, daha ucuz depolama alanına taşıyın veya tamamen kaldırın.
Üretim deneyimine göre önbelleğe alma ve parçalama stratejilerinizde ince ayarlamalar yapın.
Gecikme süresini azaltmak için verileri kullanıcılarınıza yakın bölgelere çoğaltabilirsiniz. Azure Cosmos DB gibi bazı veritabanı teknolojileri birden çok bölgede okunabilir ve yazılabilir çoğaltmalar sağlar. Çoğaltmalar, iş yükünüzü bölgeler arasında dağıttığınızda gecikme süresini daha da azaltır.
İş yükü izleme çözümünüzde depolama performansı izlemeyi dahil edin. Depolama sınırları ihlal edildiğinde performans sorunları hızla ortaya çıkabilir. Birçok bulut depolama hizmeti, eşikler aşıldığında azaltma uygular ve bu da aşağı akış uygulama işlevlerini etkileyen performans sorunlarına neden olur. Depolama performansını izlemek ve eğilimleri izlemek, sınırları proaktif olarak önlemenize yardımcı olabilir.
✓ Yalıtım aracılığıyla kritik akışları iyileştirme
Pratik olduğunda, kaynak çekişmesini önlemek ve yönetimi basitleştirmek için kritik akışları yalıtın. Aşağıdaki stratejileri göz önünde bulundurun:
İşlem, depolama ve ağ kaynaklarını kritik akışlara ayırma.
Kritik akışları yazılım veya mantıksal düzeyde yalıtmak için kapsayıcıya alma yaklaşımlarını kullanın.
Cpu, bellek ve disk girişi/çıkışı için kapasiteyi, düzgün bir şekilde sağlandıklarından emin olmak için kritik akışlara açıkça ayırın.
Denge: Akışları ayrılmış kaynaklar aracılığıyla yalıtma, kaynakları akışlar arasında paylaşmaktan daha pahalıdır. Kullanım örneğiniz için en iyi yaklaşım olduğundan emin olmak için bu yaklaşımı uygulamadan önce maliyet-fayda analizi gerçekleştirin.
✓ Üretim deneyiminden türetdiğiniz kod iyileştirmelerini genişletin
daha fazla geliştirme gerektiren alanları bulmak için iş yükü geliştirmenizde daha önce yaptığınız kod iyileştirmelerini yeniden ziyaret edin. Örneğin, artık bellek sızıntıları gibi verimsizlikleri bulmanıza yardımcı olabilecek üretim telemetriniz olmalıdır. Ayrıca üretim çalışma zamanı verilerini kullanarak tanımladığınız sık erişimli yolları doğrulayabilir veya beklenmeyen sık erişimli yollar bulabilirsiniz.
✓ operasyonel görevleri iyileştirme
Virüs taramaları, gizli dizi döndürmeleri, yedeklemeler, yeniden düzenleme veya yeniden oluşturma gibi dizin iyileştirmesi ve dağıtımlar gibi işlemsel görevler iş yükünüzün performansını etkileyebilir. Verimliliklerini iyileştirmek, iş yükünüzün sorunsuz çalışmasını sağlar. Bu tür görevleri iyileştirmek için aşağıdaki stratejileri göz önünde bulundurun:
İşlem araçlarına ince ayar yapın. Dosya bütünlüğü izleme ve virüs taraması gibi temel araçların performansı nasıl etkilediğini test edin ve anlayın. Ardından yapılandırmalarda ince ayar yapın. Örneğin, sürelerini en aza indirmek için virüs taramaları için dışlama listeleri oluşturun.
Veritabanı işlemlerine ince ayar yapın. Veritabanı yedeklemeleri, şema değişiklikleri, performans ayarlama ve izleme gibi işlemlere ince ayar yapma fırsatlarını arayın. Bu çabaya yardımcı olmak için Azure SQL Veritabanı'nda otomatik ayarlama gibi yerel araçları kullanın.
Verimlilik kazanmanıza yardımcı olup olmadığını belirlemek için kullanıma sunulan yeni platform özelliklerini araştırın ve test edin. Yaklaşımınızı iyileştirmek için bu yeni eklemelerden gelen geri bildirimleri ve performans ölçümlerini tutarlı bir şekilde izleyin.
Taviz: Bulut platformunuzun özellikleri SKU'lar halinde nasıl paketlendiğine dikkat edin. Daha yüksek performans sağlayan bazı SKU'lar, mevcut kullanım örneğiniz için fazla sağlanabilir, ancak gelecekteki bir geçişte size zaman ve çaba kazandırabilir.
Takas: Bazı hizmet türlerini benimsemek, uygulamanızın veya verilerinizin taşınması anlamına gelebilir ve bu da geçişi tamamlamak için kesinti süresine neden olabilir. Değerlendirmenizin bir parçası olarak, başarılı bir şekilde geçiş yapmak için gerekli kapalı kalma süresini tolere edip edemeyeceğinizi belirleyin.
✓ İyileştirme çalışmalarının önceliklerini belirleme
Performansı proaktif olarak iyileştirmek, performans sorunlarını belirleyerek ve iyileştirmeler uygulayarak sorunlar ortaya çıkmadan önce iş yükünüzün verimliliğini artırmak anlamına gelir. Analize dayalı olarak kod değişiklikleri, altyapı ayarlamaları veya yapılandırma güncelleştirmeleri aracılığıyla belirli iyileştirmeler yapın.
Ölçülebilir iş değeri sunan deneme, otomasyon ve son teknoloji iyileştirme teknikleriyle en yüksek performansı elde edin.
Olgunluk modelinin 5. düzeyi, iş yükünüz genelinde değerli performans iyileştirmeleri yapma fırsatlarını belirlemeye odaklanır. İyileştirme sürecinizde deney tabanlı bir yaklaşım benimseyin. Daha fazla geliştirme bulmak için dağıtım uygulamaları, izleme ve hata ayıklama ve operasyonel otomasyon gibi iş yükü tasarım alanlarını yeniden ziyaret edin. İş yükü tasarımını ve operasyonel uygulamaları düzenli olarak gözden geçirerek sürekli bir iyileştirme zihniyetimi benimseyin. İyileştirmelerin güvenli ve verimli bir şekilde uygulanmasını sağlamak için yerleşik değişiklik yönetimi süreçlerini kullanın.
Temel stratejiler
Denemeler aracılığıyla verimliliği artırmak için proaktif bir yaklaşım benimser. Bir performans sorununu veya verimsizliği tanımlayan gözlemlenen performans verilerine dayalı olarak ölçülebilir performans kazanımları sunmasını beklediğiniz bir iş yükü güncelleştirmesi hipotezi ile başlayın. Hipotezinizi doğrulamak veya çürütmek için mümkün olduğunca gerçek dünya koşullarını yakından taklit eden bir test ortamı oluşturun. Hipotezinizi kanıtladıktan sonra, uygulamaya değer olup olmadığına karar vermek için değişikliğin yatırım getirisini (ROI) değerlendirin. RoI değerlendirmenize tüm Azure Well-Architected Framework yapı taşlarını ekleyin. Diğer sütunlar için yapmanız gereken dengeler kabul edilebilirse, değişiklik büyük olasılıkla devam etmeye değer.
✓ Dağıtım ve özellik sürümlerini iyileştirme
Düzey 5'te, güvenilir bir şekilde işlev gösteren standartlaştırılmış bir yükseltme işlemine sahip olmanız gerekir. Bu düzeyde, geçerli stratejinizin operasyonel verimlilik için en uygun olup olmadığını belirlemek için süreçlerinizi yeniden değerlendirin. Mavi-yeşil, kanarya veya başka bir dağıtım modelinin kuruluşunuzun gereksinimlerine en uygun olup olmadığını değerlendirin. Özellikleri belirli kullanıcı gruplarına kolayca dağıtıp geri almak için özellik bayraklarını kullanmayı göz önünde bulundurun. Yedekleme stratejinizin bilinen iyi duruma hızlı kurtarmayı desteklediğine emin olun.
✓ İzleme ve hata ayıklama süreçlerini iyileştirme
Bileşenlerinizden günlükleri ve telemetri verilerini toplamak, performansınızı doğal olarak etkiler. İzleme platformunuzun, günlükleme, telemetri, enstrümentasyon ve uzaktan hata ayıklama gibi öğeler dahil olmak üzere iş yükünüzü nasıl etkilediğini ölçün. İyileştirme fırsatlarını belirleme. Bu işlemlerden herhangi biri gözlemlenebilirliği iyileştirdiklerinden daha fazla performans düşürüyorsa, bunları yeniden yapılandırmayı veya devre dışı bırakmayı göz önünde bulundurun. Sürekli iyileştirme uygulamalarınızın bir parçası olarak, yalnızca ihtiyacınız olan performans içgörüleri için en değerli bilgileri topladığınızdan emin olmak için topladığınız izleme verilerini düzenli olarak gözden geçirin.
Yalnızca değerli uyarılar alıp almadığınızı belirlemek için performans uyarılarınızı yeniden değerlendirin. Eyleme dönüştürülemeyen uyarıları kaldırın ve performans sorununun ve etkilenen bileşenlerin doğasını net bir şekilde anlamak için yeterli bilgiye sahip olmayan uyarıları yeniden yapılandırın.
✓ Operasyon otomasyonunu genişletme
Daha fazla verimlilik elde etmek için operasyonel görevlerin otomasyonunuzu genişletme fırsatlarını arayın. Düzey 5'te otomatik olarak birçok yinelenen operasyon göreviniz olmalıdır, bu nedenle diğer değerli otomasyon hedeflerini tanımlamak için işlemlere kapsamlı bir göz atın. Performansla ilgili aşağıdaki görevleri göz önünde bulundurun:
Performans testi: İş yüklerinin benzetimini yapmak için iyi kurulmuş, endüstri standardı araçları kullanın.
Dağıtım: Tutarlı ve verimli dağıtımlar için sürekli tümleştirme ve sürekli dağıtım araçları uygulayın.
Olay yönetimi: Uyarı yönlendirmeyi, bilet oluşturmayı ve atamaları otomatikleştirin.
Düzeltme eylemleri: Hizmetleri yeniden başlatma ve kaynak ayırmalarını ayarlama gibi eylemleri otomatikleştirin.
Kendi kendini iyileştiren mekanizmalar: Bilinen performans sorunlarını otomatik olarak düzeltmek için kabiliyetler geliştirin.