Qalmari tekkilonkerot blogisarja_chatbotin kehittämisen keveys Google Cloud Platformin avulla case Jalmari-botti

Tekkilonkerot-blogisarjassa tällä kertaa pilvilinnojen rakentaja ja arkkitehti, Lauri Mukkala.

Chatbotin kehittämisen keveys google cloud platformin avulla

Case: Jalmari-botti

Tekkilonkerot-blogisarjan toisessa osassa keskitytään pilvipohjaiseen arkkitehtisuunnitteluun ja erityisesti Google Cloud Platformiin. Erilaiset pilvipalvelut ovat olleet jo jonkin aikaa kovassa nosteessa ja erityisesti Googlen Cloud Platform on tämän hetken vaihtoehdoista yksi monipuolisimmista ja käyttäjäystävällisimmistä.

Mikä on Google Cloud Platform?

Google Cloud Platform on Googlen kehittämä helposti skaalautuva pilvipalvelualusta, joka sopii monenlaisiin tarpeisiin. Alusta sisältää työkaluja muun muassa palveluiden hallintaan, datan varastoimiseen, datan analysointiin sekä esimerkiksi koneoppimiseen. Google Cloud Platform tarjoaa IAAS- ja PAAS-palveluita, mutta mahdollistaa myös muun muassa serverless-ympäristöjen rakentamisen. Erilaisia tuotteita Google Cloud Platformissa on jo yli yhdeksänkymmentä.

Miksi Google Cloud Platform ja mitä sertifioituminen vaatii?

Erilaisia pilvipalveluita on monenlaisia ja jokainen niistä vaatii melkoista perehtymistä ennen kuin valitusta alustasta saa täyden hyödyn. Joten miksi Jalmari-botin kehitykseen valittiin juuri Google Cloud Platform?

Qalmarilla on entuudestaan vahvaa osaamista muun muassa Azuresta, joten ensisijaisesti tarkoituksena oli lähteä laajentamaan osaamista myös muista pilviympäristöistä. Googlen tarjoamat selkeät opintopolut kuulostivat hyvältä vaihtoehdolta Azuren rinnalle. Google kannustaa kokeilemista tarjoamalla kolmesataa dollaria alustan ilmaista kokeilua varten. Summa riittää helposti pitkäksi aikaa, vaikka käyttäisikin Cloud Platformin eri tuotteita tehokkaasti.

Google Cloud Platform, kuten muutkin vastaavat isot pilvialustat, voi olla aluksi melko häkellyttävä kokemus erilaisten tuotteiden suuren määrän vuoksi. Tähän avuksi Google tarjoaa monenlaisia sertifikaattiopintoja, jotka on jaoteltu selkeästi erilaisten käyttäjien tarpeisiin sopivaksi. Esimerkiksi Cloud Architect tarjoaa polun arkkitehtuurista kiinnostuneille, Cloud Developer palveluiden kehittämisestä kiinnostuneille ja Data Engineering datan käsittelemisestä ja analysoimisesta kiinnostuneille. Sertifikaatit ovat tasoltaan melko haastavia ja vaativat omistautumista, mutta hyviä kursseja niiden suorittamiseksi on tarjolla muun muassa Courserassa. Itselläni meni suurin piirtein kaksi kuukautta Cloud Architect -sertifikaatin suorittamiseen ilman aikaisempaa kokemusta Googlen pilvipalveluista.

Miten Jalmari-botin pilviarkkitehtuuri rakentui?

Kun lähdetään toteuttamaan uutta projektia, tulee melko pian vastaan kysymys, missä palvelua pyöritetään. Yksi vaihtoehto olisi ollut lähteä liikenteeseen perinteisellä mallilla ja laittaa pystyy joko tavallinen tai virtuaalinen palvelin ja pystyttää siihen tarvittavat ympäristöt. Pienenä sivuprojektina liikkeelle lähteneessä ideassa tämä olisi kuitenkin tarkoittanut melko isoja kustannuksia sekä huomattavaa ylläpidollista kuormaa. Google Cloud Platform tarjosi meille erilaisen lähestymistavan chatbotin kehittämiseen.

Totesimme hyvin nopeasti projektin alkuvaiheessa, että serverless-arkkitehtuuri soveltuu bottiprojektiimme täydellisesti. Kun palvelua ei käytetä, se voidaan sulkea automaattisesti. Tämä mahdollistaa erittäin kustannustehokkaan kehittämisen erityisesti projektin alkuvaiheessa.

Toisaalta, jos palvelun suosio kasvaa yllättäen, arkkitehtuuri pystyy skaalautumaan saumattomasti tarpeen mukaan. Tähän tarkoitukseen Google tarjoaa palvelua nimeltä Cloud Run. Cloud Runista erityisen hyvän tekee se, että palveluun on suoraa integroitavissa versionhallinta ja DevOps-työkalut. Käytännössä Jalmari-botin tapauksessa tämä tarkoittaa sitä, että kun versionhallintaan tulee muutoksia, muutokset viedään ensin testiympäristöön ja lopulta tuotantoympäristöön täysin automaattisesti ilman tarvetta kääntää mitään itse.

Cloud Run hyödyntää toimiakseen Docker-kontteja. Tämä tarkoittaa muun muassa sitä, että vaikka projekti aloitettaisiin käyttämällä Googlen tuotteita, mikään ei estä siirtämästä kehitettyä tuotetta johonkin toiseen Dockeria tukevaan ympäristöön. Pystymme siten hyödyntämään Google Cloud Platformin ketteryyden sekä mukauttamaan kehittämämme palvelut asiakkaiden tarpeisiin.

Retrospektiivi

Google Cloud Platform on tarjonnut Jalmari-botille erittäin hyvän kodin. Ympäristö saatiin pystyyn kokonaisuudessaan muutamassa tunnissa eikä aikaa mene käytännössä yhtään ympäristön ylläpitämiseen tai esimerkiksi uusien versioiden julkaisemiseen.

Alusta on tarjonnut helpon tavan ylläpitää projektiin osallistuvien oikeuksia ilman erillisiä palveluita tai turhaa säätämistä. Lisäksi johdolle on ollut tarjolla jatkuvasti selkeitä ennusteita kustannuksista ja käyttöasteista. Kun kerran on vauhtiin päässyt, ei kovin mielellään vaihda takaisin perinteiseen malliin, jossa kehittämistä hidastavat virtuaalipalvelinten kanssa temppuilu ja julkaisuprosessin monimutkaisuus.

Lauri Mukkala Senior Software Developer, Google Cloud Platform Architect_Qalmari

LAURI MUKKALA
Senior Software Developer,
Certified Google Cloud Architect
Työkokemus: 8+ vuotta
Teknologioita: Google Cloud Platform, Node.js, HTML, XML, CSS, Javascript, Typescript, Angular, Bootstrap, React, Material UI, NodeJS, Express, Linux, Windows, Java, JSF, Spring, Hibernate, Maven, Python, C#, Git, Visual Studio, Eclipse, IntelliJ IDEA, IntelliJ WebStorm, Postgresql, MySql, MongoDB, Docker, NPM, Ant, LaTEX, Jenkins, DevOps, Scrum, Kanban, REST API, Continuous Integration, Selenium, JUnit

JAA KIRJOITUS