Performans Verimliliği tasarım ilkeleri
Performans verimliliği, iş yükünüzün taleplerdeki değişikliklere uyum sağlama özelliğidir. Bir iş yükünün kullanıcı deneyiminden ödün vermeden yük artışını işleyebilmesi gerekir. Buna karşılık, yükte bir düşüş olduğunda iş yükünün kaynaklarından tasarruf etmesi gerekir. Kaynak kullanılabilirliğini (CPU ve bellek) gösteren kapasite önemli bir faktördür.
İş yükü tasarımı yalnızca belirli bir sınıra kadar performansı garanti eden önceden sağlanan kapasiteyi kullanmamalıdır. Bu sınır aşılırsa iş yükünde performans sorunları olabilir ve hatta kesintiler yaşanabilir. Yük bu sınırın altında olduğunda, kaynaklar gereksiz yere çalışmaya devam eder ve maliyete neden olur.
Zaman içinde performans hedeflerini sürdürmek için kapsamlı bir stratejiye ihtiyacınız vardır. Performansla ilgili dikkat edilmesi gereken noktalar tasarım sürecinde daha sonra düşünülmemeli, yalnızca üretimde sorunlar ortaya çıktığında ele alınmalıdır. Bunun yerine, tasarımın ilk aşamalarında performansın önemli bir nokta olduğu bir düşünce yapısı benimseyin. Başlangıçta, belirli bir performans hedefi olmadan sistemi derleyin. Ancak buradan, ilerlemeyi ve etkinliği sağlamak için geliştirmenin her aşamasında performansı test edin ve ölçün. Süreç boyunca bu hedeflerin sürekli iyileştirilmesi ve üretimden alınan derslerin birlenmesi olası sorunları önceden önemli ölçüde azaltabilir.
Bu tasarım ilkeleri, beklenen kullanım için iş gereksinimlerinizi yeterince karşılamak üzere kaynak kapasitesini yönetme stratejinizi oluşturmanıza yardımcı olabilir. Ayrıca yoğun olmayan saatlerde israfı azaltın. Bir stratejiye karar verdikten sonra Performans Verimliliği denetim listesini kullanarak tasarımınızı sağlamlaştırın.
Performans verimliliği, iş yükü kaynaklarının etkin kullanımıyla ilgili bir işlemdir. İyi bir strateji olmadan, kullanıcı taleplerini tahmin edemeyebilir ve karşılayamazsınız. Uzun vadeli tahmin ve önceden sağlanan kapasite yaklaşımına başvurmanız gerekebilir ve bu yaklaşım bulut platformunuzdan tam olarak yararlanmanıza izin vermez.
Gerçekçi performans hedeflerini belirleme
Hedeflenen kullanıcı deneyimi tanımlanır ve önceden belirlenmiş iş gereksinimlerine göre bir kıyaslama ve ölçüm hedefleri geliştirme stratejisi vardır. |
---|
Performans açısından bakıldığında, tasarım sürecinizi başlatmak için iyi tanımlanmış performans hedeflerine sahip olmak idealdir. Bu hedefleri belirlemek için iş gereksinimlerini ve iş yükünün sunmayı beklediği beklenen hizmet kalitesini iyi anlamanız gerekir. İş paydaşlarıyla işbirliği içinde beklentileri tanımlayın. Yalnızca teknik ölçümlere odaklanmak yerine, önemli akışlar için kullanıcı deneyimi üzerindeki kabul edilebilir etkileri belirleyin.
Döngüsel bir bağımlılık vardır. Tanımlamadığınız öğeleri ölçemezsiniz ve ölçüm olmadan tanımlayamazsınız. Bu nedenle, toplu sözleşme ile kabul edilebilir eşiğin tatmin edici bir tanımına ulaşana kadar iş yükü performansını ölçmek de önemlidir.
Performans ve güvenilirlik hedefleri arasında, performans, kullanılabilirlik ve dayanıklılık açısından hizmet kalitesini belirlemeye yardımcı olan güçlü bir bağıntı vardır. Net bir tanım olmadan performansı ölçmek, uyarı vermek ve test etmek zordur. Hedefleri oluşturduktan ve zaman içinde test yoluyla gerçek sayıları tanımladıktan sonra, bu hedeflere karşı sürekli test için otomasyon uygulayabilirsiniz.
Yaklaşık veya aralık içinde olsalar bile makro düzeyinde hedefleri tanımlamaya yönelik en iyi yöntemlere uyun.
Yaklaşım | Avantajlar |
---|---|
Teknik kavramları anlayarak, mevcut altyapıyla tasarım olanaklarını keşfederek ve varsa somut denemelerden elde edilen sonuçları kullanarak etkin müzakereye hazırlanın. Kullanım desenlerine ve performans sorunlarına görünürlük elde etmek için geçmiş verilerini kullanın. Pazar analizi, uzmanlar ve endüstri standartları gibi dış faktörlerden içgörü elde edin. |
Pratik içgörüler temelinde bilinçli kararlar alabilirsiniz. Performans hedefleri, uygulanabilir, endüstrinin en iyi uygulamaları ve mevcut pazar eğilimlerini temel alan kullanıcı deneyimine odaklanır. |
Uygunsa, kalite ve mevzuat uyumluluğu açısından kullanıcı vaatlerini anlamak için işletme sahipleriyle işbirliği yapın. Geniş bir perspektif sağlayın ve bu aşamada ayrıntılı ayrıntılara dalmaktan kaçının. Yatırımlara bağlı olarak kabul edilebilir performansı temsil eden öğeler konusunda açık olun. İş bağlamını ve beklenen büyümeyi anlama. |
İş hedefleriyle uyuşmayabilecek varsayımlarda bulunmaktan kaçınacaksınız . Ayrıca iş yükü ekibinde netlik ve motivasyon sağlar. İşlevsel ve işlevsel olmayan gereksinimlerle ilgili bir iş bağlamı olması, diğer Azure Well-Architected yapılarında tasarım değişikliklerini ortaya çıkarır ve bilinçli ödünler oluşturmanıza yardımcı olabilir. Parametrelerin önceden tanımlanması, daha sonra olası çözüm yeniden tasarımlarıyla ilişkili maliyetleri önlemeye yardımcı olur. Mevcut çalışmaları uzun vadeli hedeflerle uyumlu hale getirmek için performans hedeflerinin gelecekteki tahminleri kapsadığından emin olmanıza olanak tanır. |
Mimari diyagramda iş yükü akışlarını belirleyin ve akışların önceliğini belirleyin. Her akışın performans toleranslarını istekten kabul edilemez performansa kadar bir aralık olarak tanımlayın. Yolun kritikliğini, kullanım sıklığını ve mimari yoğunluğunu göz önünde bulundurarak her akış için giriş ve çıkış noktalarını değerlendirin. |
Akışlara öncelik vererek kaynaklarınızı kullanıcı ve iş sonuçları üzerinde en fazla etkiye sahip kritik alanlara odaklayabilirsiniz . Sistemi parçalarına ve bağımlılıklarına ayırarak her bileşenin işlevini ve performans üzerindeki etkisini anlarsınız. Ayrıca olası sorunlardan haberdar olursunuz. Performans temeli ve sürücü iyileştirmesi oluşturmaya yardımcı olur. |
Performans modeli oluşturmaya başlama Kullanım desenlerinin mevsimsel mi yoksa günlük çeşitlemeler mi gösterdiğini göz önünde bulundurun. İşletmenin maliyet, operasyon ve kritiklik faktörünü dikkate alır. Yüzdebirlik değerleri kullanma gibi ölçümleri ve toplama yöntemlerini ölçmek için sektör standartlarını kullanın. İş kısıtlamalarının getirdiği talebi değerlendirin ve beklentileri ve sınırlamaları sağlayın. Büyüme potansiyellerini birleştirir. |
Performans modeli , kaynakların en iyi kullanımı hakkında içgörü sağlar ve stratejik planlamaya yardımcı olur. Endüstri standartları karşılaştırmaya yardımcı olur. Gelecekteki yazım denetleme, performans hedeflerinin ilgili kalmasını ve değişikliklere uyum sağlayabilmesini sağlar. |
Kapasite gereksinimlerini karşılayacak şekilde tasarlama
Beklenen talebi ele almak için yeterli tedarik sağlayın. |
---|
Performansı proaktif olarak ölçmek önemlidir. Performansın ölçülmesi, taban çizgilerinin ölçülmesi ve sistemin hangi bileşenlerinin güçlük oluşturduğunun önceden anlaşılmasını içerir. Tam performans testi gerçekleştirmeden veya ayrıntılı iyileştirme yoluyla bunu başarabilirsiniz. Bu ilk adımları uygulayarak, geliştirme yaşam döngüsünün başlarında etkili performans yönetimi için bir temel oluşturacaksınız.
Tek tek bileşenlere odaklanmak yerine sistemi bir bütün olarak inceleyin. Bu aşamada ince ayar yapmaktan kaçının. Ayrıntılı performans geliştirmeleri yapmak, diğer alanlarda dezavantajlara neden olur. Yaşam döngüsünde ilerlerken ve kullanıcı kabul testlerine başladıkçe veya üretime doğru ilerledikçe, hangi alanların daha fazla iyileştirme gerektirdiğini hızla belirleyebilirsiniz.
Yaklaşım | Avantaj |
---|---|
Tanımlanan akışlar için esneklik taleplerini değerlendirin. Uygulamayı ve temel alınan işlem ve veri katmanlarını göz önünde bulundurarak teknoloji yığınında uygulanabilecek tasarım desenlerini keşfedin. |
Daha fazla kapasiteye ihtiyaç duyan mevcut bileşenlerde ve yükü dağıtmak için ek bileşenlere ihtiyaç duyduğunuz alanlarda ölçeklenebilirlik gereksinimlerini tanımlayabilirsiniz . Sistemdeki olası performans sorunlarının farkındasınız ve gecikme süresini ve sistem yükünü azaltmak için önbelleğe alma özellikleri ekleme gibi telafi denetimleri tasarlıyorsunuz. |
Performans hedeflerine ulaşmanızı ve sistemle tümleştirmenizi sağlayan teknoloji yığını genelinde doğru kaynakları seçin. Ölçeklenebilirlik gereksinimlerini karşılayabilen özellikleri göz önünde bulundurun. Beklenmeyen dalgalanmaları verimli bir şekilde işlemek için kaynak ayırma ve sistem gereksinimleri arasında doğru dengeyi bulun. |
Kaynakların farklı özelliklerini analiz ederek, her bileşenin sistemin genel işlevselliğine ve performansına katkıda bulunduğunu güvence altına alırsınız. Ölçeklendirme işlemlerini otomatik olarak tetikleyen yerleşik özelliklerden yararlanabilirsiniz . Doğru boyutlandırma kaynakları fazla sağlama olmadan talepteki değişiklikleri karşılayabilir ve bu da maliyet tasarrufu sağlar. |
Performans modelinizi zenginleştirmek için isteğe ve seçilen kaynakların yeteneğine göre kapasite planlaması yapın. Kapasitede tahmin edilebilir ve beklenmeyen değişikliklerle gerçekleşebilecek beklenen değişiklikleri tahmin etmek için tahmine dayalı modelleme tekniklerini kullanın. Teknik gereksinimlere çevrilebilecek performans hedeflerini tanımlayın. |
Kaynakları verimli bir şekilde kullanabilir ve fazla sağlama yapmadan talebi karşılayabilir, böylece gereksiz maliyetlerden kaçınabilirsiniz. Tasarım seçimlerinin performansı nasıl etkilediğini anlarsınız. |
Teknik gereksinimleri ve tasarım seçimlerini doğrulayan bir kavram kanıtı uygulayın. | Kavram kanıtı, sistemin performans hedeflerini karşılayıp karşılayamadığını ve bu hedeflerin gerçekçi olup olmadığını belirlemek için tasarımın doğrulanmasında etkili olur. Beklenen yüke bağlı olarak, beklenen kapasitenin performans hedeflerini karşılayıp karşılamadığını doğrulayabilirsiniz. Ayrıca, tasarım seçimlerinin maliyet üzerindeki etkilerini doğrulayın. |
Performans testi stratejinizi belgeleyin. Test planlarınızın kullanım örneklerini, farklı metodolojilerini ve tempolarını dahil edin. Performans testi planı tarafından özetlenen işlem için bir işlem tanımlayın. Plandaki test çalışmalarını önceliklendirme ve önceliklendirme. Performans hedefleri hakkında değerli içgörüler sunan ve kapasite planlamayı uyumlu hale getiren durumlara odaklanın. |
Sistemin doğru yönlerinin test edilmesini sağlarsınız. Kaynakları etkili bir şekilde ayırabilir ve iş öncelikleri ve gereksinimleriyle uyumlu testler gerçekleştirebilirsiniz. |
Performans izleme stratejinizi belgeleme. Tanımlanan her akış için farklı soyutlama düzeylerindeki ölçümleri değerlendirin. |
Geliştirme döngüsü boyunca performans hedeflerine ulaşma yolundaki ilerlemeyi izleyebilirsiniz . |
Performansı elde etmek ve sürdürmek
Sistem kullanımdayken ve geliştikçe performans düşüşlerine karşı koruma sağlayın. |
---|
Geliştirme tek seferlik bir çaba değildir. Bu devam eden bir süreçtir. Özellikler değiştikçe performansta değişiklikler olmasını bekleyin. Kullanıcı desenlerinde ve profillerinde varyans vardır, hatta diğer Azure Well-Architected yapılarındaki iyileştirmelerden değişiklikler vardır. Herhangi bir değişiklik iş yükü kaynaklarını zorlayabilir.
Performans hedeflerine geri kaymaması için sistemi değişikliklerden koruma. Geliştirme sürecinde test ve izlemeyi tümleştirme. Sistemin üretim performansını gerçek yük ile test edin ve üretimden önce otomatik test ile bu yükün benzetimini yapın. Her iki durumda da doğrulama amacıyla izleme uygulamalarına sahip olmanız gerekir.
Geliştirme yaşam döngüsü boyunca farklı aşamalarda çeşitli test türleri gerçekleştirin. İlk aşamalarda, performans sonuçlarının tamamen beklenmedik olmadığından emin olmak için kavram kanıtını test edin. Geliştirme ilerledikçe, kıyaslamalar oluşturmak için el ile, düşük efor testleri yapın. Derleme aşamasında gecikme süresini, stres düzeylerini, yük kapasitesini ve test planlarında tanımlanan diğer özellikleri değerlendiren otomatik rutin performans testleri geliştirmeye başlayın.
İzleme, yalıtılmış bir alıştırma olmak yerine bu çabanın ayrılmaz bir parçası olmalıdır. Sistemin ve kaynaklarının zaman içinde nasıl performans sergilediğini görebilirsiniz. Daha sonra, değerlerini en üst düzeye çıkarmak için bunlara ince ayar yapabilir ve performans standartlarını karşılamaya devam etmelerini sağlayabilirsiniz.
Performans hedeflerinin zaman içinde değişikliklere yanıt olarak değiştiğini unutmayın. Test edilen ve izlenen ölçümlere göre performans modelini güncelleştirin. Akışların performansı üzerinde artan, azaltılmış veya hiçbir etki olmadığını açıkça gösterir.
İş paydaşlarıyla her zaman yeniden anlaşma yapmaya ve beklentileri sıfırlamaya hazır olun.
Yaklaşım | Avantaj |
---|---|
Azure Pipelines'da rutin performans testlerini tümleştirme. Testleri tümleştirebilen işlem hatlarını seçin. Buna karşılık, işlem hatlarıyla tümleştirilebilen test araçlarını seçin. |
Otomatikleştirilmiş testler zamandan tasarruf eder ve regresyonları veya geliştirmeleri algılamayı kolaylaştıran tutarlılık sağlar. Bu yapıtlar zaman içinde sapmaların veya kaymaların sürekli izlenmesini sağlar, böylece tutarlı performans ve kaliteyi koruyabilirsiniz. |
Performans testlerini yayın yükseltmeyi ve üretime son dağıtımı onaylayan veya reddedebilen kalite kapıları olarak resmileştirin. | Bu denetim noktaları, sonraki adıma geçmeden önce dağıtımın her aşamasının gerekli performans standartlarını karşılamasını sağlar. Denetim noktaları istenmeyen performans regresyonunu önlemeye yardımcı olur. Örneğin, performans beklentilerin önemli ölçüde altındaysa, iyileştirmeler yapılana kadar bir sürümü engelleyebilirsiniz. |
Üretimdeki gerçek işlemleri ve performans hedeflerinize göre sapmaları izlemek için yinelenebilir bir işlem ayarlayın. Üretimde yapay işlemler kullanın. Performans regresyonlarında izleme uyarıları ayarlayın. |
Testlerle simülasyon yapamayan gerçek dünya yükü altında sisteminizin gerçek performansı hakkında içgörü elde etmek istiyorsunuz. Ardından olası performans sorunları, az kullanılan kaynaklar ve diğer endişeler gibi sorunları ve geliştirme alanlarını proaktif olarak belirleyebilirsiniz. |
Performans testi sonuçlarını ve izleme verilerini titizlikle gözden geçirin ve performans hedeflerini karşılayana kadar iyileştirin. Bu incelemelerden türetilen eylemlerin önceliklerini belirleyin ve bunları planlı yürütme kapsamına ekleyin. |
Test sonuçlarına bağlı olarak verileri yakalayıp karşılaştırabilir ve eğilimleri analiz etmeye başlayabilirsiniz. İyileştirme çalışmalarınız veri odaklıdır. |
Performansa odaklanan kodlama becerileri oluşturun. Performans temelli kodlama desenlerini örnekleyen kodlama standartlarına sahip olun. |
Performans sorunları olmayan kodlar test döngülerini daha verimli hale getirebilir çünkü testler daha önemli sorunlara odaklanabilir. Kodlama desenleri yeniden çalışmaktan kaçınmaya yardımcı olur ve kodlama stilinizin tutarlı kalmasını sağlar. |
Performansı sürdürmek için kullanım arttıkça, özellikler değiştikçe ve veriler zaman içinde biriktikçe performans erozyonlarını giderin. İyi ayarlamanın yalnızca kısa vadeli avantajlar getirmesi durumunda beklentileri sıfırlayın ve yeni hedefler oluşturun. |
Performans durumunu, kullanıcı deneyimini kabul edilebilir aralığın ötesinde olumsuz etkileyen sorunlara dönüşmeden önce koruyabilirsiniz . Hedeflerin değiştirilmesi performans modelini sıfırlar ve kapasiteye zaten ulaşmış olan sistemi iyileştirmek için zaman kaybetmezsiniz. |
İyileştirme ile verimliliği artırma
İş yükü değerini artırmak için tanımlanan performans hedefleri içinde sistem verimliliğini artırın. |
---|
İlk aşama sırasında ayarlanan hedefler, çeşitli kısıtlamalar dikkate alınarak makul bir kullanıcı deneyimi düzeyine dayanır. Deneyimi daha da geliştirmek için hedefleri yeniden değerlendirmeli ve ayarlamalısınız. Deneyimi daha da geliştirmek için sistemin nasıl kullanıldığını, nasıl geliştiğini ve platform veya teknolojinin zaman içinde nasıl değiştiğini net bir şekilde anlamayı gerektirir. İzleme, iyileştirme, test etme ve dağıtma döngüsü sürekli bir işlemdir.
Verimlilik iyileştirme çalışmaları, bir iş yükünün daha düşük kaynak tüketimiyle çalışmasına olanak sağlar. Bunlar, iş yükünün yedek kapasiteyle fazla sağlanan bir durumda olmasını sağlayabilir. Sistemin güvenilirliğini artırmak için bu kapasiteyi kullanın. Sistemin maliyetini geliştirmek için kapasiteyi ortadan kaldırın. Veya mevcut kaynaklarda yeni ürün özelliklerini desteklemek için kapasiteyi yeniden kullanın.
Sistem verimlilik kazandığında, yeni performans hedeflerini ayarlama ve koruma fırsatından faydalanın.
Yaklaşım | Avantaj |
---|---|
İşlevsel olmayan gereksinimleri ve işlevsel alanlardaki iyileştirmeleri ele almak için performans iyileştirmesi için ayrılmış döngüler ayırın. Bu iyileştirmenin hedefleri kaynaklar, kod, veri saklama, veritabanı sorguları ve diğerleridir. | Performans temelli iyileştirme kültürü oluşturabilirsiniz. Performans desenlerini proaktif olarak izlemek ve ayrıca uygulamaya ince ayar yapmak için ekibi sorumlu tutarsınız. |
Mimariyi, daha önce sınırlı süre veya bütçe nedeniyle dikkate almadığınız şekillerde performansı artırabilecek yeni tasarım desenleri ve bileşenleriyle geliştirin. | Yeni tasarım ve bileşenler sistemi iyileştirerek daha iyi bir kullanıcı deneyimi sağlayabilir. Örneğin, önbelleğe almayı veya içerik teslim ağı bileşeni eklemeyi kullanabilirsiniz. Ayrıca uzun vadeli maliyet avantajlarına da yol açabilir. |
Geçmiş eğilimleri analiz etmek ve bir performans iyileştirme çabasından en çok yararlanacak akışları ve kod uygulama yollarını belirlemek için izleme araçlarını kullanın. Bu amaçla uygulama performansı izleme (APM) araçları ve profil oluşturucular önerilir. Sistemdeki işlem sık erişimli yollarını ve diğer olası performans sorunlarını belirleyin. |
Yinelenen sorunlu alanları tanımladığınızda, ekip kazançların en yüksek olduğu yere odaklanabilir. |
Performansı geliştirebilecek teknoloji yeniliklerinden haberdar olun ve güncel kalın. Bağımlı çerçeveler ve kitaplıklar için yayımlanan yeni sürümlerden yararlanın. Benzer şekilde, güncelleştirildikçe ve düzeltme eki eklendikçe platform kaynakları için yeni özellikleri kullanın. |
Yeni teknolojiyi benimsemek genellikle geliştirme fırsatları aramak için motive edici bir faktör olabilir. Geçmişte yavaş kalmış olabilecek kodlar bu güncelleştirmelerle daha hızlı hale gelebilir. Ayrıca belirli güncelleştirmelerin performansı nasıl olumsuz etkilediğini de bilmek istiyorsunuz. |