Windows 95 -tunnelmista moderniksi kuormitustestausalustaksi – neljässä kuukaudessa
Olemme tehneet suorituskyky- ja kuormitustestausta 15 vuoden ajan. Vuosien varrella olemme käyttäneet työssämme alustoja kuten BlazeMeter. Kustannukset ovat kuitenkin nousseet pilviin, eikä kontrolli näissä alustoissa ole koskaan ollut aivan riittävällä tasolla. Jossain vaiheessa katsoimme toisiamme ja totesimme: rakennetaan oma.
Ensimmäinen versio oli Windows-työpöytäsovellus, joka näytti aidosti olevan vuodelta 1995
Valitsimme moottoriksi Apache JMeterin. Se on battle-tested, avointa lähdekoodia ja lähes rajattoman joustava. Yhdistimme sen Grafanaan tulosten ja mittareiden reaaliaikaista visualisointia varten. Ajamme kaiken omilla tehokkailla kuormitusmoottoreillamme testauslabrastamme, mikä antaa meille täyden kontrollin kapasiteettiin, kustannuksiin ja konfiguraatioon.
Aluksi ajoimme JMeteriä pelkästään komentoriviltä ilman graafista käyttöliittymää. Se hoitaa homman, mutta testitiedostojen hallinta, tulosten seuranta, hajautettujen moottoreiden koordinointi ja kaiken pitäminen järjestyksessä eri projekteissa muuttuu nopeasti tuskaiseksi. Tarvitsimme orkestrointikerroksen, joka sitoo kaiken yhteen ja tekee hallinnasta helppoa.
Ensimmäinen versio oli Windows-työpöytäsovellus, joka näytti aidosti siltä kuin se olisi vuodelta 1995. Raahaa ja pudota -tiedostojen lataus, debug-konsoli ja käyttöliittymä, jossa Windows NT tuntisi olonsa kotoisaksi. Se toimi, mutta tiesimme pystyvämme parempaan.
Tiivistetty uusinta noin 30 vuoden ohjelmistokehityksestä neljässä kuukaudessa:
Seuraavaksi revimme graafisen käyttöliittymän pois ja julkaisimme palvelimen ilman käyttöliittymää. Samanaikaisesti web-client kehittyi yhtä vauhdikkaasti. Sitä seurasi tiivistetty uusinta noin 30 vuoden ohjelmistokehityksestä noin neljässä kuukaudessa:
Työpöytäaikakausi. Itsenäinen Windows-sovellus, joka keskusteli konsolipalvelimen kanssa raa'an TCP-yhteyden yli. Testejä pystyi käynnistämään, tiedostoja siirtämään ja tuloksia seuraamaan niiden saapuessa. Yksinkertainen, toimiva ja hyvin 1990-lukulainen.
Verkottunut aikakausi. Salaus, tunnistautuminen ja kunnollinen web-asiakas korvasivat työpöytäsovelluksen. Reaaliaikainen tapahtumien suoratoisto, testihistorian selaus ja ensimmäiset merkit jostakin, joka tuntui oikealta tuotteelta pelkän apuohjelman sijaan.
Web-sovellusten aikakausi. TCP-palvelin katosi kokonaan, ja tilalle tulivat REST-rajapinta ja WebSocketit. Käyttöliittymä kirjoitettiin kokonaan uudelleen Reactilla: moderni tumma ulkoasu, viiden näkymän navigointi ja reaaliaikainen yhteistyö, jotta pystyimme molemmat työskentelemään samassa projektissa yhtä aikaa.
Alustan aikakausi. Oikea tietokanta korvasi hajallaan olleet tiedostot. Projektikohtaiset dashboardit ja asetukset, PDF-raportit, kuvien lataus, testikierrokset, JMX-testisuunnitelmien analysaattori, etämoottoreiden hallinta, Grafana-linkit jokaiseen projektiin, palvelimen reaaliaikainen konfigurointi ja pikanäppäimet. Härpäke lakkasi olemasta työkalu ja siitä tuli alusta.
Kovettamisen aikakausi. Tietoturva-auditoinnit, syötteiden validointi, injektiosuojaukset, hallittu virheenkäsittely ja vikasietoisuutta parantavat ratkaisut läpi koko järjestelmän. Juuri ne asiat, jotka erottavat itse käytettävän työkalun sellaisesta, johon voi luottaa tuotannossa.
47 palvelinjulkaisua. 33 asiakasversiota. 6 tietokantaskeeman versiota. Yksi REST-rajapinta, jota ei aluksi ollut lainkaan ja jossa on nyt enemmän rajapintapisteitä kuin pystymme laskemaan ilman vierittämistä.
Ja rehellisesti sanottuna? Tapamme tehdä töitä on muuttunut täysin.
Se, mikä ennen tarkoitti toimittajien hallintapaneelien jongleerausta, tukipyyntöjen odottelua ja seuraavan laskun uusimisen pelkäämistä, on nyt nopeaa, hauskaa ja täysin omissa käsissämme. Käynnistämme testejä omilla kuormitusmoottoreillamme juuri niin kuin haluamme, näemme tulokset Grafanassa juuri niin kuin haluamme ja kehitämme eteenpäin kysymättä keneltäkään lupaa.
Joskus paras ohjelmisto on sellainen, jonka rakennat itse, koska mikään olemassa oleva työkalu ei tee juuri sitä mitä tarvitset. Eikä yhdenkään toimittajan hinnastosivu saa sinua tuntemaan oloasi hyväksi sopimusta uusiessa.