Akış maliyetlerini iyileştirmeye yönelik öneriler

Bu Azure Well-Architected Framework 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ın önceliğini belirtirken, 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 kaynakların stratejik olarak tahsisini ve yönetimini içerir. Yatırım yapılan kaynakların verimli kullanımını sağladığı, gereksiz harcamaları azalttığı ve altyapı için genel yatırım getirisini iyileştirdiği için bu iyileştirme çok önemlidir. Bir iş yükündeki akışları maliyet açısından iyileştirmezseniz kaynaklara fazla harcama riskiyle karşınıza çıkar ve bu da işlem maliyetlerinin azalmasına ve kârlılığın azalmasına neden olur.

Tanımlar

Süre Tanım
Ayırma Birden çok akış içeren bir kaynaktan bir akışı kaldırma ve ayrı bir kaynağa yerleştirme stratejisi.
Akış bir iş yükünde, belirli bir işlevi gerçekleştiren eylemler dizisi. Akış, verilerin taşınması 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şlem 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 bir uygulama veya sistem içinde gerçekleştirebilecekleri eylemlere ilişkin yollar veya diziler.

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 gereksinimlerine sahip olsalar 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 kullanımlı gereksinimlerini verimli bir şekilde işlemesini sağlar. Performansı ve maliyetleri iyileştirir.

bir iş yükünde, göz önünde bulundurmanız gereken farklı akış veya yol türleri 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ın sağlanmasını, performans sorunlarının en aza indirilmesini ve verimli kaynak kullanımının sağlanmasını içerir.

  • Kullanıcı akışları. Kullanıcı akışlarını iyileştirme, kullanıcı deneyimini geliş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:

  1. 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şeni tanıyın. Ayrıca, zaman içindeki istek hacmini izleyin veya tahmin edin.

  2. 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.

  3. Akışları kategorilere ayırın. İşlevleri (örneğin, kimlik doğrulaması, veri alma ve işlem işleme), 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 önceliğini belirleme

Akış önceliklendirmesi, iş sonuçları üzerindeki etkileri, kullanıcı deneyimi üzerindeki etkileri ve tükettiği kaynaklar temelinde akışları 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ımlama. İş yükü akışı maliyetlerini iyileştirdiğinizde, en fazla değer sağlayan akışı belirlemeniz gerekir. Bir akışın değerinden fazlasını harcamak istemezsiniz. Maliyetleri kısmak yerine, daha değerli akışlara öncelik vermek için maliyetleri kaydırmayı göz önünde bulundurun. Örneğin, satın alma akışınız iş için kritik öneme sahiptir ancak satın alma geçmişi önemli 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 önceliğini belirlemede 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 bir 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. 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 bulunmayan tüm gereksiz öğeleri kaldırarak karmaşıklığı ve maliyeti azaltır.

  • 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.

Farklı akışları ayırma

Farklı akışları farklı kaynaklara ayırmak, ayrılmış kaynaklara farklı hesaplama gereksinimleri olan farklı görevler 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ış için hassas kaynak ayırmaya olanak tanır ve bu sayede gereksiz harcamalar azaltılır ve maksimum verimlilik sağlanır.

Şu anda birleştirilmiş olan farklı akışları ayırmayı göz önünde bulundurun. Bu ayırma ölçeklenebilirliği, hataya dayanıklılığı ve uyarlanabilirliği artırır ve maliyetleri kolaylaştırır. Her akışın bağımsız ç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ıyla (veri akışı) birlikte kullandığınızı varsayalım. Çalışma saatleri sırasında 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 tasarrufları sağlar. Benzer akış türleri benzer öznitelikleri paylaşır. Benzer olmayan akışları ayırırken baktığınız öznitelikleri göz önünde bulundurabilirsiniz: hesaplama gereksinimleri, veri bağımlılıkları, G/Ç işlemleri, gecikme duyarlılığı, güvenlik gereksinimleri ve uyumluluk gereksinimleri. Aşağıda benzer iş yükü akışlarını aynı kaynağı kullanacak şekilde birleştirmenin önemli tasarruflara yol açabileceği bazı örnekler verilmiştir:

  • Web sunucuları. Her uygulama için ayrı web sunucuları ayırmak yerine, özellikle de 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 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 hizmet kullanmak 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 tasarrufuna dönüşür.

  • Kimlik doğrulama hizmetleri. Birden çok uygulama kendi farklı kimlik doğrulama mekanizmalarını dağıtırsa, yedeklilik ortaya çıkar. Ç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şlevi yerine getirirse 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 etme. 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 verimliliksizlikler, maliyet iyileştirme fırsatlarını gösterebilir.

Azure kolaylaştırma

Akışların önceliğini belirleme, 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ı tanımlayabilirsiniz. Ayrıca yüksek değişim oranları, tekrarlanan eylemler veya tasarım kusurları gibi olası sorunları iyileştirmenizi sağlar. Araç ayrıca boyutlar aracılığıyla özel özellik filtrelemeye 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ılayıp gidermenize olanak tanır.

Log Analytics , çeşitli kaynaklardan günlük verilerini toplamanızı, çözümlemenizi ve görselleştirmenizi sağlayan bir araçtır. Log Analytics'i kullanarak uygulama ve altyapı günlüklerinize ilişkin içgörüler elde edebilir, eğilimleri tanımlayabilir ve kullanım ile veri saklamayı yöneterek maliyetleri iyileştirebilirsiniz. Maliyetleri daha iyi yönetmek için günlükleri birlikte bulundurmayı ve paylaşılan çözümler yerine ayrılmış çözümleri kullanmayı göz önünde bulundurun.

Maliyet İyileştirme denetim listesi

Önerilerin tamamına bakın.