Uuden Metsähallituksen Retkikartta.fi -palvelun julkaisu osui nappiin samaan aikaan kotimaisen luontomatkailun huippuvuotena 2020. Palvelun käyttöaste nousi huimat 44 prosenttia ja moderni pilviympäristö mahdollisti käyttökapasiteetin automaattisen skaalaamisen kysynnän mukaan. Karttapalvelua on hiottu kuluneen vuoden aikana timanttiseen kuntoon ja DevOps toimintamallin ansiosta jatkokehitys on ollut erittäin ketterää ja asiakaslähtöistä.
Retkikartta.fi -palvelu päivitettiin kokonaan kesällä 2020
Edellisestä retkikartasta oli synnytetty melkoinen joukko versioita eri verkkopalvelujen tarpeisiin, kuten myös erillinen mobiilioptimoitu versio. Tärkeimpiä kehityskohteita oli päästä tästä ylläpidollisesti työläästä ja hankalasta käyttöliittymien kirjosta eroon niin, että yksi ja sama Retkikartta skaalautuu käyttäjien kaikkiin eri päätelaitteisiin.
Palvelun uudistuksessa Anders halusi säilyttää suositun karttapalvelun pitkän historian kautta hyväksi havaitut piirteet, mutta luoda myös uusia ajanmukaisia ominaisuuksia, jotka parantavat karttapalvelua entisestään.
Uusi Retkikartta tehtiin tarkoitukseen soveltuvia, ajanmukaisia ja versioiltaan ajantasaisia ohjelmistotuotteita käyttäen. Erityistä painoarvoa annettiin karttapalvelun mobiilikäytettävyyden parantamiselle.
Uudistettu verkkokarttapalvelu julkaistiin kesällä 2020 ja käyttö nousi 44 prosenttia edellisestä vuodesta. Jo pelkästään ensimmäisenä seitsemänä viikkona palvelua käytettiin yli miljoona kertaa.
Moderni pilviympäristö tukee laadukkaan verkkopalvelun ylläpitoa
Anders otti hoitaakseen myös Retkikartta.fi:n järjestelmäylläpidon. Retkikartta rakennettiin alusta alkaen Kubernetes pilviympäristöön, jotta järjestelmän ylläpito ja jatkokehitys olisi mahdollisimman mutkatonta.
Pilvipalvelun avulla Retkikartan käyttökapasiteetti skaalautuu automaattisesti käytön mukaan. Esimerkiksi kesällä, kun Retkikarttaa käytetään ahkerammin, käyttökapasiteettia kasvatetaan automaattisesti sesongin mukaan.
Hyödynnämme järjestelmän ylläpidossa omia DevOps-käytäntöjämme. Kaikki rakentamamme testit ja käyttöönotot tehdään Kólga-työkalumme avulla, joka on avoimen lähdekoodin CI/CD (jatkuva integrointi/jatkuva julkaisu) -työkalu.
Pilvipalvelun avulla myös versionhallinta sujuu turvallisesti, sillä uusi versio voidaan päivittää ilman käyttökatkoja. Edelliset versiot säilyvät ja ne voidaan palauttaa takaisin käyttöön, mikäli uuteen versioon oli jäänyt virhe ja se vaatii päivitystä.
Palvelussa otettiin käyttöön myös CDN (Content Delivery Network), jonka avulla voidaan rajoittaa taustajärjestelmiin kohdistuvaa kuormaa. CDN tallentaa, ensimmäisen hakukerran yhteydessä, karttatiilet välimuistiin, josta karttatiilet seuraavan kerran haetaan, ellei alkuperäinen karttatiili ole päivittynyt uudempaan versioon.
Retkikartta koostuu monesta eri komponentista, mikä tekee järjestelmän ylläpidosta monimutkaisen kokonaisuuden. Olemme kuitenkin todella tyytyväisiä saadessamme toteuttaa Metsähallitukselle hyvin modernin jatkuvien palveluiden kokonaisuuden, mikä tekee tästä asiakkuudesta todella mielekkään ja mielenkiintoisen.
DevOps on asiakaskeskeinen lähestymistapa
Ylläpitämäämme Kubernetes klusteriin saadaan tuotettua testiympäristöt automaattisesti, jokaisesta muutoksesta. Testiympäristöstä asiakas pystyy heti katsomaan sekä testaamaan haluamiensa muutosten lopputuloksen ja pyytämään tarvittaessa viilauksia. Kun asiakas on hyväksynyt muutoksen, se voidaan viedä vaivattomasti tuotantoon.
Automaattisesti luotujen testiympäristöjen hyödyntäminen luo kiistatonta lisäarvoa asiakkaalle, sillä hän on jatkuvasti oman järjestelmänsä muutoksien päällä. Vastakohta tälle kehitysmallille on vesiputoustyyli, jossa aluksi päätetään järjestelmän vaatimusmäärittely, ja asiakas pääsee vasta loppuvaiheessa testaamaan järjestelmänsä toiminnallisuuksia.
DevOps-toimintamalli ja sen ruokkima kulttuuri ylipäätään on hyvin asiakaslähtöinen. Erityisesti olemme kokeneet pilviympäristön ja DevOps-työkalut kätevinä Retkikartan jatkokehityksessä, kun olemme voineet viedä tuotantoon jatkuvasti pieniä muutoksia, jotka parantavat palvelun käyttäjien käyttökokemusta entisestään.
Ja vaikka olemme tässä yleisesti ottaen puhuneet DevOpsista, pitääksemme terminologian mahdollisimman selkeänä, niin käytännössä kuitenkin Andersin toteutukset ovat aina DevSecOps mallin mukaisia. Koko tuotantoketjun matkan huolehditaan myös hyvästä tietoturvasta. Huolehdimme niin kehittämisen hyvistä käytännöistä ja koodin skannauksesta, kuin salaisuuksien hallinnasta CI/CD:n aikana. Myös Kubernetes ympäristöä valvotaan aktiivisesti tietoturvaloukkausten varalta ja ylläpitotiimimme on jatkuvasti valmiina reagoimaan mahdollisiin palveluun kohdistuviin uhkiin.
Palvelun kehityksessä on tehty tiivistä yhteistyötä Metsähallituksen Retkikartan vastaavan suunnittelijan Tapani Mikkolan kanssa.
Hän kuvailee kulunutta vuotta näin:
“Suomalaisen luontomatkailun kysynnän huippuvuosi 2020 ja pandemia matkustusrajoituksineen laittoi karttapalvelumme todelliseen kuormitustestiin. Suorituskykyä nostettiinkin kesän aikana pariinkin otteeseen, jotta kysyntähuiputkin pystyttiin hoitamaan. Vuosi on ollut työntäyteinen ja tiiviisti yhdessä Andersin kanssa toteutettujen pienten parannusten vuosi, jolla karttapalveluamme on edelleen viilattu käyttäjien antaman palautteen pohjalta paremmaksi.
Tulemme julkaisemaan kesälle 2021 koko joukon uusia ominaisuuksia, jotka tulevat pitämään Retkikartan yhä nousukierteessä ja suosittuna kaikkien upeassa kotimaan luonnossamme virkistäytyvien keskuudessa. Uudelleen toteutetun Retkikarttamme ensimmäistä tuotantovuotta on auttanut merkittävästi, että yhteistyö Andersin väen kanssa on ollut edelleenkin mutkatonta ja tarvittava asiantuntemus on erittäin hyvää.”
Kiinnostuitko Andersin jatkuvien palveluiden tarjoamista mahdollisuuksista? Kauttamme on mahdollista saada järjestelmillesi räätälöityjä ylläpitopalveluita jopa vuorokauden ympäri sekä modernit DevOps käytäntömme. Lue lisää monipuolisista jatkuvuuspalveluistamme! Tarjoamme mielellämme sinulle huipputason järjestelmäylläpitoa!
Kirjoittaja:
Paul Nylund
Chief Information Officer
paul@anders.com
Anders Innovations Oy