Softakehityksen ihmeellinen maailma

Tomi Terentjeff // Aikataulut usein pettävät softaprojekteissa, vaikka kuinka yritetään viimeisen päälle miettiä aikataulu kuntoon ennakkoon. Jostain kumman syystä projektipakettiin tällätyt ilma-aukot kuitenkin tukkiutuvat ja lopussa tulee kiire. 24päivää ei ollut poikkeus. Kiire astui mukaan kuvioihin alusta alkaen. Hoppu oli tiedossa jo siksikin, että idea yhteisöllisestä joulukalenterista tuli vasta kesän 2007 lopulla, kun mietimme, miten oma yrityksemme voisi lähettää joulumieltä jollain ihan muulla kuin tylsällä virtuaalikortilla.

Idea yhteisöllisestä joulukalenterista tuntui hyvältä. Oli pienoinen ihme huomata, että Internetistä ei löytynyt vastavaaa palvelua. Koska päätavoite oli testata konseptia, päätettiin sovelluksesta saada beta-versio ulos jo jouluksi 2007. Projekti päästiin aloittamaan kuukausi suunniteltua myöhemmin ja toiminnallisuuksia priorisoitiin jatkuvasti. Bugien korjaus ja asiakkailta tulleet toiveet ryntäsivät tikettilistan kärkeen.

Kun kaikki alkoi näyttää hyvältä, ilmestyi suljetussa beta-testissä paha ongelma: Palvelin-sovellus ei pystynyt käsittelemään isoja tiedostonsiirtoja. Käytössä ollut Pylonsin mukana tuleva Paster-palvelin yritettiin aluksi korjata Apachella, mutta hyvin pian paljastautui, ettei tästä olisi mitään apua. Isojen tiedostojen siirrossa olisi edelleen ongelmia. Jokainen tiedostoa lataava käyttäjä (joko palveluun siirtävä tai palvelusta lataava) varasi palvelimelta yhden threadin. Jos käyttäjän tiedosto oli suuri ja käyttäjän yhteysnopeus hidas, pysyi thread varattuna hyvin pitkään. Kun käytössä olleiden threadien lukumäärä tuli täyteen, kaatui palvelin mystisesti eikä se välillä suostunut enää edes käynnistymään uudelleen.

Pikainen juttutuokio Pylonsin pääkehittäjän kanssa antoi ongelman ratkaisemiseksi uusia ideoita, joista yksi oli nginx. Kyseessä on venäläisvoimin kehitetty http-serveri, joka hoitaa palvelimella tiedostojensiirron auttaen palvelinta selviämään suuremmista lataajamääristä.

Jotta tilanne ei helpottuisi liian nopeasti, paljastui että suuri osa nginxin dokumentoinneista oli venäjäksi. Ei muuta kuin babelfish ja common sense laulamaan. Päivän parin kuluttua nginx oli ajossa. Pikatestien jälkeen sovellus todettiin toimivaksi ja se siirrettiin tuotantopalvelimelle. Tiedostonsiirto-ongelma poistui ja palvelukin tuntui hieman nopeutuneen. Tämän jälkeen palvelu oli vihdoin täysin toimivassa tilassa. Pystyimme julkaisemaan ensimmäisen julkisen version.

Tätä tekstiä kirjoittaessani olemme tekemässä jo kolmatta julkista releasea, jossa tulee pienten käyttöliittymä-bugien korjauksien lisäksi myös käyttäjää auttavia toimintoja. Käyttöliittymää parannellaan koko ajan. Tavoite on saada kalenterin luonnista entistä helpompaa, nopeampaa - ja myös hauskaa. Ensi jouluksi käyttäjille on luvassa kevyet kuvankäsittely- ja koristelu-työkalut. Javascript-kikkareita tullaan istuttamaan käyttöliittymään, jotta käyttäjä pääsisi mahdollisimman lähelle windowsmaista käyttökokemusta.

comments powered by Disqus