SMITis kasutatav pilvelahendus võimaldab paindlikku arendust

Mart Järvi
Mart Järvi

SMITi kogemusest mikroteenuste põhiste lahenduste rakendamisest ja pilveplatvormi Cloud Foundry kasutuselevõtmisest kirjutab SMITi tehnoloogiavaldkonna süsteemiarhitekt Mart Järvi.

Mõne aasta eest alustasime Siseministeeriumi infotehnoloogia- ja arenduskeskuses (SMIT) üleminekut mikroteenuste põhistele lahendustele, kus ühe suure tarkvaralahenduse asemel luuakse palju väiksemaid komponente. Sellist arendust toetab omakorda pilveplatvorm Cloud Foundry.

Teine oluline muudatus tarkvarade arhitektuuris oli kasutajaliideste lahutamine eraldiseisvateks rakendusteks. See kõik tõi kaasa hallatavate komponentide arvu olulise kasvu, mistõttu hakkasime otsima platvorme, mis seda tööd lihtsustaks. Saime aru, et iga väikese rakenduse instantsi jaoks virtuaalserveri eraldamine oleks ebaefektiivne nii ajas kui rahas. Siia võib lisada ka detaili, et rakenduste arv kasvab oluliselt, kui käideldavus- ja jõudlusnõuete tõttu peab igat komponenti paigaldama vähemalt kaks kuni kolm instantsi.

Kuna kasutasime SMITi arendustes pikalt Spring raamistikku, jäi aastaid tagasi silma sama firma pakutav pilveplatvorm Cloud Foundry, mis jooksutab rakendusi konteinerites. Pärast aastast prooviversioonidega testimist ja katsetamist tekkis arusaamine, et see platvorm katab meie vajadused ning lahendab probleemid, mis tekivad suure hulga väikeste rakenduste haldamisel.

Sellele järgnes pikem turu-uuring, kus tutvusime erinevate haldust lihtsustavate Cloud Foundry kommertslahendustega. Peagi selgus tõsiasi, et kõik litsentseeritud platvormid töötavad konteinerite hulga või mälu kasutamise hinnastamismudeli alusel. Kui kasutada konteinereid suures mahus üle mitmete keskkondade, muutub aga platvorm väga kalliks.

Seega sundisid valmislahenduste litsentsitingimused meid alternatiive otsima ning jõudsime järelduseni, et parim variant on Cloud Foundry vabavaraline versioon. See ei olnud alguses küll nii lihtsasti paigaldatav ja hallatav, samuti puudusid mõned valmislahenduste mugavusvõimalused. Vabavaraline versioon nõudis rohkem õppimist, tööd ja aega, kuid olime valmis märkimisväärse rahalise kokkuhoiu nimel erialase teadmise SMITi looma. Detailsemat abi saime küsida Cloud Foundry sihtasutusse kuuluva arenduspartneri käest.

Cloud Foundryt on lihtne rakendada asutuses, kus on juba kasutusel mõni virtualiseerimisplatvorm. Olgu selleks siis majasisesed lahendused nagu Vmware, Openstack või avalik teenusepakkuja, näiteks AWS või Azure. Pilveplatvorm installeeritakse nende lahenduste peale, mis loob paigalduse käigus automaatselt rakenduste haldamiseks ja majutamiseks vajalikud virtuaalmasinad.

2017. aasta kevadel olid SMITis esimesed reaalsed keskkonnad püsti ning rakendused platvormile paigaldatud. Lisaks Java rakendustele võimaldab platvorm edukalt jooksutada ka NodeJS, PHP, Python, Go jpt tehnoloogiaid. Seega on hea tõdeda, et efektiivne haldus ei sea valitavatele tehnoloogiatele jäiku piiranguid ning võimaldab arendajatel kasutades just neid lahendusi, mis neile arendusülesande lahendamiseks kõige paremini sobivad.

SMITis platvormi juurutamise käigus selgus, et ka Inglismaa ning USA on kasutusele võtnud riigi tarkvaralahenduste majutamiseks Cloud Foundry platvormi vabavaralise versiooni. Inglismaa pilveteenuse ülevaate leiab siit: https://www.cloud.service.gov.uk/features. USA läks sammukese veel kaugemal ja otsustas oma platvormi ametlikult sertifitseerida, et anda kindlust potentsiaalsetele klientidele, kes tunnevad huvi kas see platvorm ühildub kasutatavuselt kommertsversioonidega nii haldamise kui ka kasutatavuse kontekstis. Mõlemad haldusüksused jagavad oma teadmisi ja tulemeid ka githubis, kust huvilised võivad lisainfot leida - https://github.com/18F/cg-site ja https://github.com/alphagov.

Nagu varem öeldud, reaalselt toodangusse jõudsime esimeste rakendustega 2017. aasta sügisel. Hetkel on SMIT-is üle erinevate keskkondade käigus üle 500 konteineri (rakenduse instantsi) ja see number kasvab pidevalt. Oleme automatiseerinud osa rakenduste paigaldusi ka nii, et uuendused toimuvad ilma teenuse katkestusteta.

Arendajate tagasiside on platvormile rakenduste paigaldamise ja halduse vaates väga positiivne. Tänu oma lihtsusele võimaldab see neil keskenduda põhitööle ehk tarkvaralahenduste loomisele ja annab võimaluse valida sobivaid tehnoloogiaid.

Mis kasu me siis veel Cloud Foundryst saame?

Kui näiteks kolme instantsiga rakenduse jaoks vajaliku keskkonna loomiseks võib erineva automatiseerimisvõimekusega asutustes minna ühest päevast kuni mõne nädalani, saab arendaja Cloud Foundry peal oma komponendid jooksma panna paari minutiga. Kui vastavalt kasutatavusele selgub, et jõudlust on vaja juurde, saab instantse lisada ühe klikiga. Platvormikeskse juurutamise järel pole suurt vahet, kas majutatakse kümmet või tuhandet rakendust, halduskoormus sellest ei suurene. Oluline nüanss on automaatne rakenduste järelevalve, mis erinevate tõrgete puhul, olgu selleks siis riistvara rike või mäluleke, käivitab rakendused haldaja sekkumiseta.

Cloud Foundry avatud lähtekoodiga versioon on erinevate muudatuste ja vajaduste suhtes väga paindlik. Meil on võimalik platvormi kohandada vastavalt SMITi keskkondade poliitikatele, piirangutele ja ühildada juba teiste olemasolevate lahendustega. Olgu selleks siis automatiseerimisvahendid või näiteks monitooring. Lisaks saame kasutusele võtta ja integreerida platvormiga erinevaid teenuseid, kasutades selleks valmislahendusi või arendada endale sobilikud. Litsentside puudumine võimaldab meil luua nii palju erinevaid keskkondi ja rakenduste instantse, kui reaalselt meie vajadus on.

Kui kellegi tekkis platvormi vastu huvi ja sooviks sellega lähemalt tutvuda, leiab selle aadressilt https://github.com/cloudfoundry/cf-deployment. Kui aga ei soovi kohe hakata suurt keskkonda looma, siis on võimalik endale kiiresti arvutisse paigaldada minimalistlik versioon: https://github.com/cloudfoundry-incubator/cfdev.

Mart Järvi, SMITi tehnoloogiavaldkonna süsteemiarhitekt

Osale arutelus

Toetajad

Raadio ettevõtlikule inimesele

Hetkel eetris

Jälgi ITuudiseid sotsiaalmeedias

RSS

Toetajad

Valdkonna töökuulutused

Arvamused

Teabevara