Akış maliyetlerini iyileştirmeye yönelik öneriler
Bu Azure İyi Tasarlanmış Çerçeve Maliyet İyileştirme denetim listesi önerisi için geçerlidir:
CO:09 | Akış maliyetlerini iyileştirme. Her akışın maliyetini akış önceliğiyle uyumlu hale getirme. Akışları önceliklendirirken, her akışın özelliklerini, işlevselliğini ve işlev dışı gereksinimlerini göz önünde bulundurun. Akış harcamalarını iyileştirmek için genellikle stratejik tavizler gerekir. |
---|
Bu kılavuzda, iş yükünüzdeki akışların her birinin maliyetini iyileştirmeye yönelik öneriler açıklanmaktadır. İş yükündeki akışların maliyet iyileştirmesi, maliyetleri en aza indirirken performansı korumak için stratejik olarak kaynak ayırmayı ve yönetmeyi içerir. Bu iyileştirme, yatırım yapılan kaynakların verimli bir şekilde kullanımını sağladığı, gereksiz harcamaları azalttığı ve altyapı için genel yatırım getirisini iyileştirdiği için çok önemlidir. Bir iş yükündeki akışları maliyet iyileştirmezseniz kaynaklara fazla harcama yapma riskiyle karşınıza çıkar ve bu da işlem maliyetlerinin düşmesine ve kârlılığın azalmasına neden olur.
Tanımlar
Süre | Tanım |
---|---|
Ayrıştırma | Birden çok akış içeren bir kaynaktan akışı kaldırma ve ayrı bir kaynağa yerleştirme stratejisi. |
Akış | bir iş yükünde, belirli bir işlevi gerçekleştiren eylem dizisi. Akış, verilerin hareketini ve iş yükünün bileşenleri arasında işlemlerin çalıştırılmasını içerir. |
Sistem akışı | Sistem içindeki bilgi ve işlemlerin akışı. Sistem, kullanıcı akışlarını veya iş yükü işlevselliğini etkinleştirmek için bu akışı otomatik olarak izler. |
Kullanıcı akışı | Kullanıcıların uygulama veya sistem içinde gerçekleştirebilecekleri eylemlerin yolları veya dizileri. |
Temel tasarım stratejileri
Düşük öncelikli akışlara kıyasla yüksek öncelikli akışlara daha fazla yatırım yapın. Akış önceliğini ve harcamayı hizalamak, şu anda aynı kaynağı paylaşan akışları ayırmayı içerebilir. Benzer gereksinimlere sahip olan ancak ayrı kaynaklarda çalıştırılacak akışların birleştirilmesi de söz konusu olabilir. Örneğin, kullanıcı kaydı, oturum açma ve veri işleme gibi birden çok akış içeren bir web uygulamanız olduğunu varsayalım. Bu akışlar farklı kaynak gereksinimleri olsa bile tek bir sunucuda çalışır. Hem maliyetleri hem de performansı iyileştirmek için akışları ayırabilir veya akışları birleştirebilirsiniz:
Ayrı akışlar. Örneğin, kullanıcı kayıt akışını diğerlerinden ayırabilir ve ayrılmış, daha düşük maliyetli bir sunucuya taşıyabilirsiniz. Bu akış önemlidir ancak yoğun kaynak kullanmaz, bu nedenle daha ucuz bir sunucu için iyi bir adaydır.
Akışları birleştirme. Örneğin, hem daha yüksek kaynak gereksinimlerine sahip olan oturum açma hem de veri işleme akışlarını birleştirebilir ve bunları yüksek performanslı bir sunucuda birlikte çalıştırabilirsiniz. Bu akışların birleştirilmesi, sunucunun her iki akışın da yoğun kaynak gerektiren gereksinimlerini verimli bir şekilde işlemesini sağlar. Performansı ve maliyetleri iyileştirir.
bir iş yükünde, dikkate almanız gereken farklı akış türleri veya yollar olabilir. Bu kılavuz aşağıdaki akış türlerine odaklanır:
Sistem akışları. Sistem akışlarını iyileştirme, sistem bileşenleri arasındaki iletişim ve etkileşimin akışını sağlamayı, performans sorunlarını en aza indirmeyi ve verimli kaynak kullanımını sağlamayı içerir.
Kullanıcı akışları. Kullanıcı akışlarını iyileştirme, kullanıcı deneyimini iyileştirmeyi, sürtünme noktalarını azaltmayı ve uygulama veya sistem içinde sorunsuz gezinti ve etkileşim sağlamayı içerir.
Akış envanteri oluşturma
Akış envanteri, bir iş yükü içindeki tüm eylem dizilerinin, veri geçişlerinin ve sistem etkileşimlerinin kapsamlı bir listesi ve açıklamasıdır. Akış envanteri, yatırımların akışların önceliğiyle uyumlu olmasını sağlamanın ilk adımıdır. Akışları yalnızca amaçlarını ve bağımlılıklarını tam olarak anladığınızda iyileştirmeniz gerekir. İş yükü akışlarının envanterini oluşturmaya yönelik adımlar şunlardır:
Belge akışları. Sistemin kapsamlı durumunu anlamak için iş yükünüzdeki tüm mevcut akışları belgeleyerek ve listeleyerek başlayın. Her eylem dizisini, veri geçişlerini ve sistem etkileşimlerini dahil edin. Dış hizmetler, veritabanları, ara yazılım ve üçüncü taraf tümleştirmeleri gibi her bileşen hakkında bilgi sahibi olun. Ayrıca, zaman içindeki isteklerin hacmini izleyin veya tahmin edin.
Akışları görselleştirme. Daha net bir bakış açısı elde etmek için, bulgularınızı büyük olasılıkla akış çizelgelerinde veya diyagramlarda görsel olarak temsil edin. Görselleştirmeler, bileşenler arasındaki bağımlılıkları görmenize yardımcı olur. Görselleştirmelerde size yardımcı olması için Visio gibi bir araç kullanmayı göz önünde bulundurun.
Akışları kategorilere ayırın. İşlevleri (kimlik doğrulaması, veri alma ve işlem işleme gibi), iş açısından kritiklik veya kullandıkları kaynaklar (CPU, bellek veya bant genişliği) gibi öznitelikleri dikkate alarak benzer akışları paketleyin.
Akışların önceliklerini belirleme
Akış öncelik belirlemesi, akışları iş sonuçları, kullanıcı deneyimi üzerindeki etkileri ve tükettiği kaynaklar üzerindeki etkilerine göre sınıflandırma işlemidir. Kritik akışlar genellikle daha yüksek kullanılabilirlik düzeyleri, daha hızlı kurtarma süreleri ve iş yükü hedeflerine ulaşmak için daha iyi performans gerektirir. Akışlara öncelik vererek harcamaları akış önceliğine daha iyi hizalayabilirsiniz. Akışlara öncelik vermek için aşağıdaki adımları göz önünde bulundurun:
Akış değerini tanımlayın. İş yükü akışı maliyetlerini iyileştirdiğinizde, en çok değer sağlayan akışı tanımlamanız gerekir. Bir akışın değerinden daha fazla harcama yapmak istemezsiniz. Maliyetleri basit bir şekilde kesmek yerine, daha değerli akışları önceliklendirmek için maliyetleri kaydırmayı göz önünde bulundurun. Örneğin, kullanıma alma akışınız iş için kritik öneme sahiptir ancak satın alma geçmişi kritik değildir. Ödeme akışına daha fazla kaynak ve bütçe ayırmanız gerekir.
Düşük öncelikli akışlar kullanılabilirlik, kurtarma ve performans açısından daha düşük beklentilere sahiptir. Performansı, kullanılabilirliği veya iş sürekliliği harcamalarını azaltmak için daha ucuz yapılandırmalar kullanarak maliyetleri düşürebilirsiniz.
Akış ölçümlerini göz önünde bulundurun. Akışlarınızın önceliklerini belirleme konusunda zorlanıyorsanız, onlara atadığınız kullanılabilirlik ve kurtarma hedeflerini göz önünde bulundurun. Kritik akışlar genellikle yüksek kullanılabilirlik gereksinimlerine ve hizmet düzeyi sözleşmelerine (SLA) sahiptir. Daha düşük RPO ve RTO ile ilişkili akışlar, daha yüksek RPO ve RTO'ya sahip akışlardan daha önemlidir.
Bağımsız akışları iyileştirme
Bazen akışlarınız zaten farklı kaynaklarda çalışıyor olabilir. Bu gibi durumlarda harcamaları daha kolay değerlendirebilir ve iyileştirebilirsiniz. Her bağımsız akışta yer alan bileşenleri ve süreçleri değerlendirerek bunları iyileştirmenin veya basitleştirmenin yolları olup olmadığını belirleyin. Bağımsız akışları iyileştirmek için şu adımları izleyebilirsiniz:
Gereksiz bileşenleri ortadan kaldırın. Akışın temel işlevselliğine katkıda bulunmamayan tüm gereksiz öğeleri kaldırarak karmaşıklığı ve maliyeti azaltabilirsiniz.
Akışı yeniden tasarlayın. Verimliliği artırmak için akışın mimarisini yeniden tasarlamayı göz önünde bulundurun. Örneğin işlem dizisini değiştirebilir, gecikme süresini azaltabilir veya veri aktarım hızlarını artırabilirsiniz.
Uygun bir performans katmanı seçin. Farklı akışların işleme hızı, bellek veya diğer kaynak ölçümleri açısından değişen talepleri olabilir. Her akışın özel gereksinimlerine uygun bir kaynak katmanı seçtiğinizden emin olun.
Ölçeklendirme ayarlarını yapın. Bir akış değişken taleple karşılaşıyorsa, kaynakları gerçek zamanlı gereksinimlere göre dinamik olarak ayarlamak ve böylece maliyetleri iyileştirmek için otomatik ölçeklendirme uygulamayı göz önünde bulundurun.
Yapılandırmalarda ince ayar yapın. Akışın performans ve bütçe gereksinimlerine daha iyi uyum sağlamak için ağ veya veri depolama seçenekleri gibi diğer ayarlarda ince ayar yapın.
Ayrı ayrı farklı akışlar
Farklı kaynaklara farklı akışlar ayırmak, farklı hesaplama gereksinimleri olan farklı görevleri ayrılmış kaynaklara ayırma işlemidir. Farklı akışlar, farklı özniteliklere sahip akışlardır. Bu öznitelikler hesaplama gereksinimlerini, veri bağımlılıklarını, G/Ç işlemlerini, gecikme süresi duyarlılığını, güvenlik gereksinimlerini ve uyumluluk gereksinimlerini içerebilir. Farklı akış türlerini ayrı kaynaklarda çalıştırmak genellikle daha uygun maliyetlidir. Bunun yapılması, her akışa doğru kaynak ayırmayı sağlar ve bu da gereksiz harcamaları azaltır ve maksimum verimlilik sağlar.
Şu anda birleştirilmiş olan farklı akışları ayırmayı göz önünde bulundurun. Bu ayrım ölçeklenebilirlik, hataya dayanıklılık ve uyarlanabilirliği artırır ve maliyetleri kolaylaştırır. Her akışın bağımsız olarak çalıştığından emin olarak girişim risklerini azaltır ve her akışın önceliğine göre kaynakları daha uygun maliyetli bir şekilde ayırabilirsiniz. Örneğin, CRM'yi (kullanıcı akışı) bir veri altyapısı (veri akışı) ile birlikte kullandığınızı varsayalım. Çalışma saatleri içinde CRM sistemine gelen kullanıcı trafiği veri altyapısını yavaşlatabilir. Akışları ayırdığınızda, veri altyapısı her bileşeni veya hizmeti iş yükü talebine göre bağımsız olarak ölçeklendirebilir. Bu ayırma, kaynak ayırmayı iyileştirir ve maliyetleri azaltır.
Benzer akışları birleştirme
Benzer akışları tek bir kaynakta birleştirmek, görevleri veya işlemleri karşılaştırılabilir özniteliklerle birleştirme ve bunlar için paylaşılan kaynakları kullanma işlemidir. Bu strateji yedeklilikleri ortadan kaldırır ve kaynakların daha verimli kullanılmasını sağlar ve önemli maliyet tasarrufu sağlar. Benzer akış türleri benzer öznitelikleri paylaşır. Benzer olmayan akışları ayırırken baktığınız özniteliklerin aynısını düşünebilirsiniz: hesaplama gereksinimleri, veri bağımlılıkları, G/Ç işlemleri, gecikme süresi duyarlılığı, güvenlik gereksinimleri ve uyumluluk gereksinimleri. Benzer iş yükü akışlarını aynı kaynağı kullanacak şekilde birleştirmenin önemli tasarruflara yol açabileceği bazı örnekler aşağıda verilmiştir:
Web sunucuları. Her uygulama için ayrı web sunucuları ayırmak yerine, özellikle trafiği tutarlı olarak yüksek değilse bunları birleştirmeyi göz önünde bulundurun. Ters ara sunucuyla eşleştirilmiş paylaşılan bir web sunucusu, trafiği etkili bir şekilde yönetebilir ve birden çok uygulamaya yönlendirebilir.
API ağ geçitleri. Ayrı mikro hizmetler veya uygulamalar için ayrı API ağ geçitlerini korumak yerine, istekleri kolaylaştırmak ve bunları ilgili hizmete yönlendirmek için merkezi bir API ağ geçidi kullanabilirsiniz. Bunun yapılması, yönetimi kolaylaştırır ve maliyetleri azaltır.
Günlük işleme. Her biri kendi günlük işleme örneklerini çalıştıran birden çok uygulama veya hizmete sahip olmak yerine, bunların tümünü paylaşılan bir günlük işleme aracına yönlendirmeyi göz önünde bulundurun. Bu yaklaşım etkin örnek sayısını en aza indirir ve bu da doğrudan maliyet tasarruflarına dönüşür.
Kimlik doğrulama hizmetleri. Birden çok uygulama kendi farklı kimlik doğrulama mekanizmalarını dağıtırsa, yedeklilik kullanıma sunulmuştur. Çoklu oturum açma (SSO) çözümünün veya ortak kimlik doğrulama hizmetinin tümleştirilmesi bu yinelemeyi azaltır ve kaynak kullanımını iyileştirerek maliyetleri azaltır.
Risk: Tesadüfleri tasarımla karıştırmayın. Benzer görünen iki akışın aynı amaca hizmet etme zorunlu değildir. Birleştirmeden veya değiştirmeden önce her akışın işlevini ve tasarımını anlamanız gerekir. Akışı yalnızca görünümüne odaklanarak yanlış yorumlamak istenmeyen sonuçlara yol açabilir ve desteklediği hizmeti veya süreci kesintiye uğratabilir. Birden çok akış aynı işleve hizmet ediyorsa ve bunların tasarımında veya amacında belirgin farklar yoksa, bunları birleştirmeyi göz önünde bulundurun.
Akışları sürekli izleme
Akışların ve iş yüklerinin doğası zaman içinde değişebilir, bu nedenle maliyetlerin önceliklere uygun olduğundan emin olmak için akış harcamalarını gözden geçirmeniz gerekir. Her akışla ilişkili işlem, depolama ve ağ kullanımını analiz ederek her akışın kaynak kullanımını değerlendirin. Kaynakların az kullanıldığı verimsizlikleri veya alanları belirleyin. Bu analiz, maliyet iyileştirme fırsatlarını saptamanıza yardımcı olur. Akış kullanımını gözden geçirirken dikkate almanız gereken bazı noktalar şunlardır:
Kullanım desenlerini analiz etme. Akışların kullanım desenlerini analiz edin. Bazı akışlar günün veya ayın belirli saatlerinde daha etkinken, bazıları tutarlı bir yüke sahip olabilir. Bu desenleri anlayarak, performans sorunlarını ve fazla sağlamayı önlemek için kaynak gereksinimlerini tahmin edebilir ve ayırmayı ayarlayabilirsiniz.
İlgili ölçümleri izleyin. Her akışın verimliliğini ve uygun maliyetliliğini değerlendirmenize yardımcı olabilecek ölçümleri belirleyin. CPU kullanımını, veri aktarımı maliyetlerini, işlem maliyetlerini ve depolama alanı ayak izini göz önünde bulundurun. Kaynak kullanımı ve performansı hakkında ayrıntılı ölçümler toplamak için izleme araçlarını kullanın.
Devam eden bakımı göz önünde bulundurun. Özellikle sanal makineler gibi hizmet olarak altyapı çözümlerini kullanırken bakım maliyetini göz önünde bulundurun. Düzeltme eki uygulama, yükseltmeler, yedeklemeler, izleme ve güvenlik gibi etkinlikleri hesaba katmanız gerekir.
Analiziniz sırasında, kaynakların etkili bir şekilde kullanılmadığı verimsizlikleri veya alanları belirleyin. Boşta işlem örneklerini, kullanılmayan verileri ve düşük ağ bant genişliğini göz önünde bulundurun. Bu verimsizlikler, maliyet iyileştirme fırsatlarını gösterebilir.
Azure kolaylaştırma
Akışları önceliklendirme, iyileştirme ve izleme: Application Insights'taki Kullanıcı Akışı aracı , sitenizin sayfalarında ve özelliklerinde kullanıcı gezintisinin görsel bir gösterimini sağlar. Bu araç, kullanıcıların sık sık ayrıldığı, eylemleri yinelediği veya belirli yolları izlediği alanları belirlemeye yardımcı olur. Gerçek kullanıcı davranışını tahmin ettiğiniz sonuçlar ve hedeflerle karşılaştırarak kritik akışları belirleyebilirsiniz. Ayrıca yüksek değişim oranları, tekrarlanan eylemler veya tasarım kusurları gibi olası sorunları iyileştirmenize olanak tanır. Araç ayrıca boyutlar arasında özel özellik filtrelemesine olanak sağlayarak daha özel bir analiz sunar.
Azure İzleyici , uygulamalarınızın performansı ve durumu hakkında içgörüler elde etmenize yardımcı olur. İzleme ve tanılama özellikleri sağlar. Bu özellikler performans sorunlarını belirlemenize, kaynak kullanımını iyileştirmenize ve maliyetleri etkileyebilecek sorunları algılamanıza ve gidermenize olanak tanır.
Log Analytics , çeşitli kaynaklardan günlük verilerini toplamanızı, analiz etmenizi ve görselleştirmenizi sağlayan bir araçtır. Log Analytics'i kullanarak, kullanımı ve veri saklamayı yöneterek uygulama ve altyapı günlükleriniz hakkında içgörüler elde edebilir, eğilimleri tanımlayabilir ve maliyetleri iyileştirebilirsiniz. Maliyetleri daha iyi yönetmek için günlükleri birlikte konumlandırmayı ve paylaşılan çözümler yerine ayrılmış çözümleri kullanmayı göz önünde bulundurun.
İlgili bağlantılar
Maliyet İyileştirme denetim listesi
Öneriler kümesinin tamamına bakın.