Performans mühendisliği - Performance engineering


Performans mühendisliği bir süre boyunca uygulanan teknikleri kapsar sistem geliştirme yaşam döngüsü sağlamak için işlevsel olmayan gereksinimler performans için (örneğin çıktı, gecikme veya hafıza kullanım) karşılanacaktır. Alternatif olarak şu şekilde anılabilir: sistem performans mühendisliği içinde sistem Mühendisi, ve yazılım performans mühendisliği veya uygulama performans mühendisliği içinde yazılım Mühendisliği.

Uygulama başarısı ile iş başarısı arasındaki bağlantı, özellikle mobil alanda kabul görmeye devam ederken, uygulama performans mühendisliği önleyici ve mükemmelleştirici bir hal aldı.[1] yazılım geliştirme yaşam döngüsü içindeki rol. Bu nedenle, terim tipik olarak işlevsel olmayan gereksinimleri etkin bir şekilde test etmek, hizmet düzeylerine uyumu sağlamak ve dağıtımdan önce uygulama performansını optimize etmek için gereken süreçleri, kişileri ve teknolojileri tanımlamak için kullanılır.

Dönem performans mühendisliği Yazılım ve destekleyici altyapıdan daha fazlasını kapsar ve bu nedenle performans mühendisliği terimi, makro görünümden tercih edilir. İşlevsel olmayan gereksinimlere uyum, dağıtım sonrası üretim sistemleri izlenerek de doğrulanır. Bu parçası BT hizmet yönetimi (Ayrıca bakınız ITIL ).

Performans mühendisliği, birçok büyük şirkette ayrı ama sistem mühendisliğine paralel görevlerle ayrı bir disiplin haline geldi. Çok yaygındır, birden çok organizasyon biriminden insanları içerir; ama ağırlıklı olarak içinde Bilişim teknolojisi organizasyon.

Performans mühendisliği hedefleri

  • Sistemin gerekli zaman çerçevesi içinde işlemleri işleyebilmesini sağlayarak iş gelirini artırın
  • Performans hedefli başarısızlık nedeniyle sistem geliştirme çabasının hurdaya çıkarılmasını ve silinmesini gerektiren sistem hatasını ortadan kaldırın
  • Performans sorunları nedeniyle geç sistem dağıtımını ortadan kaldırın
  • Performans sorunları nedeniyle önlenebilir sistem yeniden çalışmasını ortadan kaldırın
  • Önlenebilir sistem ayarlama çabalarını ortadan kaldırın
  • Ek ve gereksiz donanım edinme maliyetlerinden kaçının
  • Azaltın arttı yazılım bakımı üretimdeki performans problemlerinden kaynaklanan maliyetler
  • Geçici performans düzeltmelerinden etkilenen yazılım nedeniyle artan yazılım bakım maliyetlerini azaltın
  • Performans sorunları nedeniyle sistem sorunlarını ele almak için ek operasyonel yükü azaltın
  • Prototip üzerinden simülasyonla gelecekteki darboğazları belirleyin
  • Sunucu kapasitesini artırın

Performans mühendisliği yaklaşımı

Bu disiplin birden fazla metodoloji içinde uygulandığından, aşağıdaki faaliyetler farklı şekilde belirlenmiş aşamalar içinde gerçekleşecektir. Ancak, Birleşik Rasyonal İşlem (RUP) bir çerçeve olarak kullanılırsa, faaliyetler şu şekilde gerçekleşir:

Bir programın veya projenin ilk Kavramsal aşamasında, kritik iş süreçleri tanımlanır. Genellikle gelir değeri, maliyet tasarrufu veya atanan diğer iş değerine göre kritik olarak sınıflandırılırlar. Bu sınıflandırma, BT organizasyonu tarafından değil, iş birimi tarafından yapılır. Sistem performansını etkileyebilecek yüksek seviyeli riskler şu anda belirlenir ve açıklanır. Bir örnek, belirli bir satıcı sistemi için bilinen performans riskleri olabilir. Son olarak, Detaylandırma aşaması için performans etkinlikleri, roller ve çıktılar belirlenir. Faaliyetler ve kaynak yükleme, Detaylandırma aşaması proje planlarına dahil edilir.

Detaylandırma

Bu tanımlama aşamasında, kritik iş süreçleri kritik iş süreçlerine ayrıştırılır. kullanım durumları. Prob vakaları, gerektiğinde tek sayfa (ekran) geçişlerine ayrıştırılacaktır. Bunlar, komut dosyası tarafından yönlendirilecek kullanım durumlarıdır performans testi.

Performans mühendisliği ile ilgili gereksinim türleri, işlevsel olmayan gereksinimler veya NFR'dir. İşlevsel bir gereksinim, hangi iş faaliyetlerinin gerçekleştirileceğiyle ilgili olsa da, performansla ilgili işlevsel olmayan bir gereksinim, bu iş faaliyetinin tanımlanmış koşullar altında ne kadar hızlı performans gösterdiğiyle ilgili olacaktır.

İnşaat

Bu aşamanın başlarında bir dizi performans aracı ile ilgili faaliyet gereklidir. Bunlar şunları içerir:

  • Seçili araçlar için konu uzmanları olarak kilit geliştirme ekibi üyelerini belirleyin.
  • Bir belirtin profil oluşturma geliştirme / bileşen birimi test ortamı için araç.
  • Geliştirme / bileşen birimi test ortamı için bir otomatik birim (bileşen) performans test aracı belirleyin; bu, geliştirilmekte olan bileşenleri sürmek için henüz GUI bulunmadığında kullanılır.
  • Geliştirme / bileşen birimi test ortamı için sunucu tarafı birimini (bileşenleri) çalıştırmak için otomatik bir araç belirtin.
  • Geliştirme / bileşen birimi test ortamı için otomatikleştirilmiş, çok kullanıcılı, komut dosyasıyla yönlendirilen uçtan uca bir araç belirtin; bu ekran odaklı kullanım durumlarını yürütmek için kullanılır.
  • Geliştirme / bileşen birimi test ortamı için bir veritabanı testi veri yükleme aracı belirleyin; bu, veritabanı iyileştiricisinin doğru yürütme yollarını seçmesini sağlamak ve gerektiğinde veritabanını yeniden başlatmayı ve yeniden yüklemeyi etkinleştirmek için gereklidir.
  • Geliştirme ekibi için performans araçlarını dağıtın.
  • Seçilen araçlar hakkında geliştirme ekibi üyelerine sunumlar ve eğitim verilmelidir.

Performans testi ekibi normalde geliştirme ortamında performans testlerini yürütmez, bunun yerine planlanan üretim ortamına olabildiğince yakın olacak şekilde yapılandırılmış özel bir dağıtım öncesi ortamında gerçekleştirir. Bu takım yürütecek performans testi karşısında test durumları, kritik kullanım durumlarının belirtilen işlevsel olmayan gereksinimlere uygun olduğunun doğrulanması. Takım yürütecek yük testi Normalde beklenen (medyan) bir yüke ve bir tepe yüküne karşı. Sık sık koşacaklar stres testleri bu sistem darboğazlarını belirleyecektir. Toplanan veriler ve analiz, bunu yapan gruba geri beslenecektir. performans ayarı. Gerektiğinde sistem, uygun olmayan testleri işlevsel olmayan gereksinimlere uygun hale getirmek için ayarlanacaktır.

Bu noktaya kadar projenin her yinelemesinde ve aşamasında performans mühendisliği doğru bir şekilde uygulandıysa, umarım bu sistemin performans sertifikası almasını sağlamak için yeterli olacaktır. Bununla birlikte, herhangi bir nedenle (belki uygun performans mühendisliği çalışma uygulamaları uygulanmamışsa), uygunluğa göre ayarlanamayan testler varsa, yeniden düzenleme için sistemin bölümlerini geliştirmeye geri döndürmek gerekecektir. Bazı durumlarda, sorun ek donanımla çözülebilir, ancak daha fazla donanım eklemek hızlı bir şekilde azalan getirilere yol açar.

Geçiş

Bu son aşamada, sistem üretim ortamına dağıtılır. Bir dizi hazırlık adımı gereklidir. Bunlar şunları içerir:

  • İşletim sistemlerini, ağı, sunucuları (uygulama, web, veritabanı, yük dengeleyici vb.) Ve herhangi bir mesaj sıralama yazılımını temel kontrol listelerine ve performans testi ortamında belirlenen optimizasyonlara göre yapılandırmak
  • Tüm performans izleme yazılımlarının konuşlandırılmasını ve yapılandırılmasını sağlamak
  • Üretim veri yüklemesi tamamlandıktan sonra veritabanında istatistiklerin çalıştırılması

Yeni sistem dağıtıldıktan sonra, devam eden operasyonlar aşağıdakileri içeren performans etkinliklerini alır:

  • Haftalık ve aylık performans raporlarının, kritik kullanım durumlarının, belirtilen işlevsel olmayan gereksinim kriterleri dahilinde performans gösterdiğini gösterdiğini doğrulama
  • Kullanım durumlarının NFR kriterlerinin dışında kaldığı durumlarda kusurları gönderin
  • Aylık ve üç aylık raporlardan öngörülen eğilimleri belirleyin ve üç ayda bir gerçekleştirin kapasite planlaması Yönetim aktiviteleri

Servis Yönetimi

Operasyonel alanda (üretim sonrası dağıtım) performans mühendisliği esas olarak üç alana odaklanır: Servis seviye yönetimi, kapasite yönetimi, ve problem yönetimi.

Servis seviye yönetimi

Hizmet seviyesi yönetimi alanında, performans mühendisliği, Hizmet Seviyesi Anlaşmaları ve hizmet seviyesi uyumluluğunu doğrulamaya, sorunları tespit etmeye ve eğilimleri belirlemeye yarayan ilişkili sistem izleme. Örneğin, gerçek kullanıcı izlemesi uygulandığında, kullanıcı işlemlerinin belirtilen işlevsel olmayan gereksinimlere uygun olarak yürütülmesini sağlamak mümkündür. İşlem yanıt süresi, sorgular ve raporlar verilere karşı çalıştırılabilecek şekilde bir veritabanına kaydedilir. Bu, kapasite yönetimi için faydalı olabilecek eğilim analizine izin verir. Kullanıcı işlemleri bant dışına çıktığında, duruma dikkat edilebilmesi için olaylar uyarılar oluşturmalıdır.

Kapasite yönetimi

Kapasite yönetimi için performans mühendisliği, sistemlerin performans uyumluluğu içinde kalmasını sağlamaya odaklanır. Bu yürütmek demektir moda analizi Geçmişe dönük izleme ile ilgili veriler oluşturulur, öyle ki uyumsuzluğun gelecekteki zamanının tahmin edilebilir olması. Örneğin, bir sistem yavaşlayan bir işlem işleme eğilimi gösteriyorsa (bu, artan veri seti boyutlarından veya artan eşzamanlı kullanıcı sayısından veya diğer faktörlerden kaynaklanabilir), o zaman bir noktada sistem artık içinde belirtilen kriterleri karşılamayacaktır hizmet seviyesi anlaşmaları. Kapasite yönetimi, trend çizgilerinin sıfırlanması ve sistemin belirtilen performans aralığında kalması için bu noktadan önce ek kapasitenin (ek CPU'lar, daha fazla bellek, yeni veritabanı indeksleme vb.) Eklenmesini sağlamakla ücretlendirilir.

Sorun yönetimi

Problem yönetimi alanında, performans mühendisliği uygulamaları performansla ilgili problemlerin temel nedenini çözmeye odaklanır. Bunlar tipik olarak sistem ayarlamayı, işletim sistemi veya cihaz parametrelerini değiştirmeyi veya hatta kötü tasarım veya kötü kodlama uygulamaları nedeniyle zayıf performansı çözmek için uygulama yazılımını yeniden düzenlemeyi içerir.

İzleme

Sistemin NFR tarafından belirtilen performans ölçütlerini karşıladığını doğrulayan uygun geri bildirimin olduğundan emin olmak için, herhangi bir ana sistemin bir izleme alt sistemine ihtiyacı vardır. İzleme alt sisteminin planlaması, tasarımı, kurulumu, yapılandırması ve kontrolü, uygun şekilde tanımlanmış bir izleme süreciyle belirlenir. Faydaları aşağıdaki gibidir:

  • Kullanım senaryosu düzeyinde hizmet seviyesi anlaşmaları yapmak mümkündür.
  • Periyodik noktalarda izlemeyi açıp kapatmak veya problem çözümünü desteklemek mümkündür.
  • Düzenli raporların oluşturulmasını sağlar.
  • Artan kullanıcı yüklerinin ve artan veri kümelerinin kullanım durumu seviyesi performansına etkisi gibi zaman içindeki eğilimleri izleme yeteneği sağlar.

Bunun eğilim analizi bileşeni göz ardı edilemez. Düzgün bir şekilde uygulanan bu işlevsellik, kademeli olarak artan kullanıcı yüklerine maruz kalan ve veri kümelerini büyüten belirli bir uygulamanın, belirli bir kullanım durumu için belirtilen işlevsel olmayan performans gereksinimlerini ne zaman aşacağını tahmin etmeyi sağlayacaktır. Bu, sistemin işlevsel olmayan performans gereksinimleri parametreleri dahilinde çalışmasını sağlamak için uygun yönetim bütçelemesine, gerekli kaynakların edinilmesine ve dağıtımına izin verir.

Ayrıca bakınız

Referanslar

  1. ^ "Dış Kaynak Kullanımı Test Hizmetlerinde Öğrenilen Bankacılık Sektörü Dersleri," Gartner. 2 Ağustos 2012.

daha fazla okuma