Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland
Epäonnistuminen ei ole vaikeaa Approximately 40% of mission-critical mainframe projects fail as do approximately 70% of mission-critical client/server projects. Source: - Gartner Group 70% of implementations did not meet their planned time and budget constraints Source: - Newport Group Study
Sovelluksen suorituskyky Katastrofiteoria Palvelutasoon liittyvät hälytykset kätevästi vihaisilta asiakkailta Tulevaisuus Kaatuu tuotannossa Väärä Arkkitehtuuri Suorituskyvyn määritys?? Pizzatestit / Toimittaja vakuuttaa Integrointeja ei ole huomioitu Huono koodaus
Sovelluksen suorituskyky SLA-hälytykset hallitusti 7 x 24 valvonta Tulevaisuus $$ Tuotannossa OK Kuormitustestaus Integrointi Toteutus Arkkitehtuurin suunnittelu Suorituskyvyn määritys
Suorituskyvyn määritys Vaatimukset vasteajoille ja laitteistolle Mistä sovellusta käytetään? Millä päätelaitteella? 7x24 sovellus vai mikä? Ruuhkahuiput vuosi/kk/päivä Käyttäjätyypit (esim. 30% selailee, 70% päivittää) Miten paljon sovelluksen eri osia käytetään? Tulevaisuus - kasvu - varasuunnitelma, jos kasvu suurempaa kuin oletettu Kirjataan myös vaatimusmäärittelyihin
Arkkitehtuurin suunnittelu ja testaus Laitteisto (palomuurit, verkko, palvelimet) Sovellusalusta - käyttöjärjestelmät - WEB/APP/DB-palvelimet Toteutusvälineet Testausvälineet Testausta jo tässä vaiheessa valitaan soveltuvin arkkitehtuuri
Komponenttien testaus ja koodin analysointi Miksi? - virheettömyys - suorituskyky - muistivuodot Miten? - analysoimalla koodia ja sen suorituskykyä joko staattisesti tai ajonaikaisesti - varmistamalla sovelluksen oikea muistin käyttö - testaamalla yksittäisiä komponentteja - komponenttien yhteistestaamisella - mahdollisimman aikaisessa vaiheessa
ASP VB C++ Komponenttien testaus ja koodin analysointi - Esimerkki Toimii monikieliympäristössä. Kerää tietoa myös servereiltä. Ottaa huomioon mahdollisen muun kuorman järjestelmässä.
Arkkitehtuurin suorituskyvyn arviointi Etsitään karkeiden virheiden aiheuttamat pullonkaulat ennen kuormitustestausta Ennustetaan sovelluksen toiminta erilaisilla yhteyksillä ja käyttäjämäärillä Mahdollisimman aikaisessa vaiheessa
Arkkitehtuurin suorituskyvyn arviointi
Arkkitehtuurin suorituskyvyn arviointi
Arkkitehtuurin suorituskyvyn arviointi (1 Käyttäjä, 1 Transaktio, 1 Paikka)
Arkkitehtuurin suorituskyvyn arviointi (n Käyttäjää, n Transaktiota, 1 Paikka)
Arkkitehtuurin suorituskyvyn arviointi (n Käyttäjää, n Transaktiota, n Paikkaa)
Järjestelmän suorituskykytestit Newport Groupin tutkimuksessaan haastattelemasta 219 IT johtajasta 55% kertoi etteivät olleet tehneet minkäänlaista suorituskykytestiä WEB-sovelluksilleen. 75% niistä jotka eivät tehneet testejä kokivat skaalautuvuus ja suorituskykyongelmia tuotannossa. Lähde: - Newport Group Study
Järjestelmän suorituskykytestit Selvitetään kuinka montaa käyttäjää sovellus kestää Selvitetään sovelluksen luotettavuutta suorittamalla pitkäkestoisia testejä 80-90% oletetusta käyttäjämäärästä Sovelluksen ja laitealustan käyttöä simuloidaan mahdollisimman todenmukaisesti Testausympäristön tulee olla tuotannon kuva - tietokannat, palvelimet, verkko Pizzatestit vs. Työkalut
Järjestelmän suorituskykytestit - hyödyt Järjestelmän suorituskyvyn optimointi - Edullisempi tapa kuin rautaa rajalle -menetelmä Skaalautuvuuden suunnittelu ja varmistaminen - Kustannussäästöt pitkällä aikavälillä Ohjelmistotuotantoprosessin tehostuminen - Uudelleenkäytettävät ja nopeasti toistettavat testit Pelkkä kuormitustestaustyökalu ei riitä - Tarvitaan myös tieto siitä, miksi järjestelmä ei kestä halutuilla käyttäjämäärillä -> Järjestelmän monitorointi kuormituksen aikana
Järjestelmän suorituskykytestit Vasteajat Palvelinten tilat
Järjestelmän valvonta tuotannossa Suorituskykytestaus ei pääty, kun sovellus on siirretty tuotantoon Valvotaan sovelluksen toimintaa käyttäjän näkökulmasta Hälytykset saadaan ajoissa Laboratoriolosuhteissa suoritetut testit eivät aina vastaa todellisuutta - muut sovellukset - internet
Järjestelmän monitorointi tuotannossa Database Utilization Delivery Stats Server Performance Application Servers Database Servers Web Servers Top App by Traffic Top Server Traffic WAN Utilization Response Times Performance Overview Compuware Compuware Finland Finland Paavo Paavo Häkkinen, Häkkinen, 2002 2002
Sovelluksen suorituskyvyn varmistaminen - Yhteenveto Testaa ajoissa, testaa Syvemmältä Kuormitustestit voidaan osittain korvata simuloinnilla Paraskaan testiympäristö ei vastaa tuotantoa
Miaymoto Musashi: Tämä on niiden miesten tie, jotka haluavat oppia minun strategiani A Book of Five Rings 1. Ajattele rehellisesti 2. Tie on harjoittelemista 3. Perehdy kaikkiin taiteisiin 4. Tunne kaikkien ammattien tiet 5. Erota maallisten asiain hyöty ja tappio 6. Kehitä vaistomaista arviointia ja kaiken ymmärtämistä 7. Havaitse näkymättömät 8. Kiinnitä huomiota myös pikkuseikkoihin 9. Älä tee mitään turhaa
Compuware - Yhteystiedot www.compuware.com Compuware Finland - www.compuware.no/finland - puh: 09-5842 4040 Helpdesk Finland email: finland.helpdesk@compuware.com puh: 09-5842 4747 Helpdesk International http://frontline.compuware.com phone: +1 (248) 865-5444