„Meie pisike virtuaalmasin suudab ära teenindada kümneid miljoneid kirjeid päevas. Ja see kõik maksab mõnisada dollarit kuus kogu ettevõtte peale,“ ütleb Riivo Lepp, kes Microsoftis insenerina arendajate tiimi juhib.
Vahel arvatakse, et suurte andmemahtude töötlemine on kallis lõbu, eriti kui töötlemine käib reaalajas. See ei pea aga paika: kui asjad nutikalt läbi mõelda, siis võib tulemuse saada vägagi soodsalt.
Lepa tiimi üheks ülesandeks on luua süsteem, mis Microsoftis Teamsi kõnede andmed vastavalt klientide vajadustele reaalajas kättesaadavateks raportiteks vormistab. Selle aluseks on programmijuhi kokkupandud nõudmised, millele lahendus vastama peab.
Klient soovib andmeid reaalajas
Vanasti tuli mobiiltelefoniarve kord kuus ja vajadusel sai tellida kõneandmete väljavõtte. Täna tahavad inimesed näha andmeid kusagil kokkuvõetuna kohe pärast kõne lõppemist. Ja mitte ainult: ka seadused nõuavad, et firmades oleks kõneandmetest ülevaade olemas.
Kuid raporteid on vaja ka Microsoftil endal, et näiteks sideoperaatoritega koostöös tehtud kõnede eest arve esitamisel oleks mõlema ettevõtte andmeid võimalik omavahel võrrelda.
Peamiseks küsimuseks on, kuidas andmeid kiirelt koguda ja need ära töödelda. Varasemalt tuli selleks kood kirjutada, mis võttis palju aega. Eriti kulus aega koodi toodangusse panekule, sest turvanõuded on ranged ja toodanguküpse komponendi ülessättimine ja seadistamine suur töö.
„Kümmekonna aasta eest oli raporterid paar tükki, aga aja jooksul tuli neid aina juurde,“ meenutab Lepp. „Sealjuures oli neil palju keerulisi nõudeid. Kuna raportid lisandusid ükshaaval, siis iga kord oli kiirem lahendus teha nii-öelda rätsepaülikond, mis lahendas täpselt selle raporti vajadused. Selle tulemusel tekkis mitmeid sarnaseid lahendusi, mille ülalpidamine ja kaasaegsena hoidmine on kulukas.“
Leida raportites ühisosa
Nii hakkas tiim otsima raportites sarnaseid mustreid, ühisosa. Seda saab teha universaalsete moodulitena. Nüüdseks on nad jõudnud platvormini, kus tuleb kirjutada lihtsalt üks konfiguratsioon: kust andmed tulevad, kuhu peavad jõudma ja mis nendega vahepeal tehakse.
Tegemist on täiesti inimloetava sammsammulise protsessijuhendiga. Kui asi käpas on, siis võtab see aega tund või paar. Varem kulus protsessile aga mitu nädalat, nii et efektiivsuse tõus on väga suur.
„Sisuliselt ehitasime väikese masina, mis on võimeline töötlema igasuguseid andmevoogusid,“ selgitab Lepp. „See tuleb lihtsalt vajalike andmete töötlemiseks ära seadistada. Nii et tõime äriloogika seadistuse kihti.“
Millised on lahendused?
Tehniliselt on võtmekoht see, et andmetöötlus toimub mälus kirje kaupa ja vajalikud lisaandmed küsitakse APIde kaudu kiirelt juurde. Kirjed kirjutatakse maha alles siis, kui kõik andmed on olemas. Nii on andmetöötluseks kuluv aeg mõõdetav sekundites või isegi millisekundites. Muuseas, ka turvanõuded on sellisel juhul, kui töö toimub arvuti mälus, märksa lihtsamad.
Omaette väljakutse seisneb selle, et Microsoftis on sadu tuhandeid töötajaid ja tuhandeid tiime. Kui raportisse peab koguma andmeid paljudest kohtadest, mis kuuluvad erinevatele tiimidele, siis nõuab protsess suurt kooskõlastamist ja läbirääkimist.
Asja teeb keerukaks see, et telefoniteenusel on palju riiklikke regulatsioone: kus andmeid hoida, kui kaua, millisel kujul. Sealjuures on ka riikides sees erinevad nõudmised lähtuvalt ettevõtte spetsiifikast. Näiteks valitsusasutustega suheldes võivad nõudmised olla teistsugused kui eraisikutega suhtlemisel.
Igal riigil on omad reeglid. Microsoft töötab aga kogu maailmas ja sisuliselt peab ettevõttel olema teadmised kõigis riikides kehtestatud nõudmiste kohta. Selleks on ettevõttes juristid, kes end asjadega kursis hoiavad ja aeg-ajalt uuendusi teevad. Seejärel saab tehniline meeskond süsteemides vajalikud kohandused ära teha.