AutomÄtiskas sistÄmas izveide, lai apkarotu iebrucÄjus vietnÄ (krÄpÅ”ana)
ApmÄram pÄdÄjos seÅ”us mÄneÅ”us esmu veidojis sistÄmu cÄ«Åai pret krÄpÅ”anu (krÄpnieciska darbÄ«ba, krÄpÅ”ana utt.) bez tam nekÄdas sÄkotnÄjÄs infrastruktÅ«ras. Å odienas idejas, ko atradÄm un ieviesÄm savÄ sistÄmÄ, palÄ«dz mums atklÄt un analizÄt daudzas krÄpnieciskas darbÄ«bas. Å ajÄ rakstÄ es vÄlos runÄt par principiem, kurus mÄs ievÄrojÄm un ko mÄs darÄ«jÄm, lai sasniegtu mÅ«su sistÄmas paÅ”reizÄjo stÄvokli, neiedziļinoties tehniskajÄ daļÄ.
MÅ«su sistÄmas principi
Kad dzirdat tÄdus terminus kÄ āautomÄtisksā un ākrÄpÅ”anaā, jÅ«s, visticamÄk, sÄkat domÄt par maŔīnmÄcÄ«Å”anos, Apache Spark, Hadoop, Python, Airflow un citÄm tehnoloÄ£ijÄm Apache Foundation ekosistÄmÄ un datu zinÄtnes jomÄ. ManuprÄt, ir viens Å”o rÄ«ku izmantoÅ”anas aspekts, kas parasti netiek pieminÄts: pirms to izmantoÅ”anas jÅ«su uzÅÄmuma sistÄmÄ ir jÄbÅ«t noteiktiem priekÅ”nosacÄ«jumiem. ÄŖsÄk sakot, jums ir nepiecieÅ”ama uzÅÄmuma datu platforma, kas ietver datu ezeru un krÄtuvi. Bet ko darÄ«t, ja jums nav Å”Ädas platformas un jums joprojÄm ir jÄattÄ«sta Ŕī prakse? TÄlÄk minÄtie principi, kurus es aprakstu tÄlÄk, ir palÄ«dzÄjuÅ”i mums sasniegt punktu, kurÄ varam koncentrÄties uz savu ideju uzlaboÅ”anu, nevis uz funkcionÄjoÅ”as idejas atraÅ”anu. TomÄr tas nav projekta "plato". PlÄnÄ ir daudz vairÄk lietu no tehnoloÄ£iskÄ un produktu viedokļa.
1. princips. PirmkÄrt, biznesa vÄrtÄ«ba
MÄs visu savu centienu priekÅ”galÄ izvirzÄm ābiznesa vÄrtÄ«buā. KopumÄ jebkura automÄtiskÄs analÄ«zes sistÄma pieder kompleksu sistÄmu grupai ar augstu automatizÄcijas un tehniskÄs sarežģītÄ«bas lÄ«meni. Pilna risinÄjuma izveide prasÄ«s daudz laika, ja izveidosit to no nulles. MÄs nolÄmÄm biznesa vÄrtÄ«bu likt pirmajÄ vietÄ un tehnoloÄ£isko briedumu otrajÄ vietÄ. ReÄlajÄ dzÄ«vÄ tas nozÄ«mÄ, ka mÄs nepieÅemam progresÄ«vÄs tehnoloÄ£ijas kÄ dogmu. MÄs izvÄlamies to tehnoloÄ£iju, kas mums Å”obrÄ«d ir vispiemÄrotÄkÄ. Laika gaitÄ var Ŕķist, ka daži moduļi mums bÅ«s jÄievieÅ” no jauna. Å is ir kompromiss, kuru mÄs pieÅÄmÄm.
2. princips: PapildinÄts intelekts
Varu derÄt, ka lielÄkÄ daļa cilvÄku, kuri nav dziļi iesaistÄ«ti maŔīnmÄcÄ«Å”anÄs risinÄjumu izstrÄdÄ, varÄtu domÄt, ka mÄrÄ·is ir cilvÄku aizstÄÅ”ana. Faktiski maŔīnmÄcÄ«Å”anÄs risinÄjumi nebÅ«t nav perfekti, un tikai noteiktÄs jomÄs ir iespÄjama nomaiÅa. MÄs no paÅ”a sÄkuma atteicÄmies no Ŕīs idejas vairÄku iemeslu dÄļ: nesabalansÄti dati par krÄpnieciskÄm darbÄ«bÄm un nespÄja nodroÅ”inÄt izsmeļoÅ”u maŔīnmÄcÄ«Å”anÄs modeļu funkciju sarakstu. Turpretim mÄs izvÄlÄjÄmies paplaÅ”inÄtÄs izlÅ«koÅ”anas iespÄju. Å Ä« ir alternatÄ«va mÄkslÄ«gÄ intelekta koncepcija, kas koncentrÄjas uz AI atbalsta lomu, uzsverot faktu, ka kognitÄ«vÄs tehnoloÄ£ijas ir izstrÄdÄtas, lai uzlabotu cilvÄka intelektu, nevis to aizstÄtu. [1]
Paturot to prÄtÄ, pilnÄ«ga maŔīnmÄcÄ«Å”anÄs risinÄjuma izstrÄde no paÅ”a sÄkuma prasÄ«tu milzÄ«gu piepÅ«li, kas aizkavÄtu mÅ«su biznesa vÄrtÄ«bas radÄ«Å”anu. MÄs nolÄmÄm izveidot sistÄmu ar iteratÄ«vi augoÅ”u maŔīnmÄcÄ«bas aspektu mÅ«su domÄna ekspertu vadÄ«bÄ. Å Ädas sistÄmas izstrÄdes sarežģītÄkÄ daļa ir tÄda, ka tai ir jÄsniedz mÅ«su analÄ«tiÄ·iem gadÄ«jumu izpÄte ne tikai attiecÄ«bÄ uz to, vai tÄ ir krÄpnieciska darbÄ«ba. KopumÄ jebkura anomÄlija klientu uzvedÄ«bÄ ir aizdomÄ«gs gadÄ«jums, kas speciÄlistiem ir jÄizmeklÄ un kaut kÄ jÄreaÄ£Ä. Tikai dažus no Å”iem reÄ£istrÄtajiem gadÄ«jumiem tieÅ”Äm var klasificÄt kÄ krÄpÅ”anu.
3. princips. Rich Insights platforma
MÅ«su sistÄmas sarežģītÄkÄ daļa ir sistÄmas darbplÅ«smas pilnÄ«ga pÄrbaude. AnalÄ«tiÄ·iem un izstrÄdÄtÄjiem vajadzÄtu viegli iegÅ«t vÄsturiskÄs datu kopas ar visiem analÄ«zei izmantotajiem rÄdÄ«tÄjiem. TurklÄt datu platformai ir jÄnodroÅ”ina vienkÄrÅ”s veids, kÄ papildinÄt esoÅ”o rÄdÄ«tÄju kopumu ar jaunu. MÅ«su izveidotajiem procesiem, kas nav tikai programmatÅ«ras procesi, vajadzÄtu atvieglot iepriekÅ”Äjo periodu pÄrrÄÄ·inu, jaunu metrikas pievienoÅ”anu un datu prognozes mainÄ«Å”anu. MÄs to varÄtu sasniegt, uzkrÄjot visus datus, ko Ä£enerÄ mÅ«su ražoÅ”anas sistÄma. Å ÄdÄ gadÄ«jumÄ dati pakÄpeniski kļūtu par ŔķÄrsli. Mums bÅ«tu jÄsaglabÄ pieaugoÅ”ais datu apjoms, ko neizmantojam, un tie jÄaizsargÄ. Å ÄdÄ scenÄrijÄ dati laika gaitÄ kļūs arvien nenozÄ«mÄ«gÄki, taÄu joprojÄm ir jÄpieliek pÅ«les, lai tos pÄrvaldÄ«tu. Mums nebija jÄgas datu uzkrÄÅ”anai, un mÄs nolÄmÄm izmantot citu pieeju. MÄs nolÄmÄm organizÄt reÄllaika datu noliktavas ap mÄrÄ·a entÄ«tijÄm, kuras vÄlamies klasificÄt, un glabÄt tikai tos datus, kas ļauj pÄrbaudÄ«t jaunÄkos un jaunÄkos periodus. Å o centienu izaicinÄjums ir tÄds, ka mÅ«su sistÄma ir neviendabÄ«ga ar vairÄkiem datu krÄtuvÄm un programmatÅ«ras moduļiem, kuru konsekventai darbÄ«bai nepiecieÅ”ama rÅ«pÄ«ga plÄnoÅ”ana.
MÅ«su sistÄmas dizaina koncepcijas
MÅ«su sistÄmÄ ir Äetri galvenie komponenti: uzÅemÅ”anas sistÄma, skaitļoÅ”anas sistÄma, BI analÄ«ze un izsekoÅ”anas sistÄma. Tie kalpo konkrÄtiem izolÄtiem mÄrÄ·iem, un mÄs tos turam izolÄti, ievÄrojot noteiktas attÄ«stÄ«bas pieejas.
Uz līgumu balstīts dizains
PirmkÄrt, mÄs vienojÄmies, ka komponentiem ir jÄpaļaujas tikai uz noteiktÄm datu struktÅ«rÄm (lÄ«gumiem), kas tiek nodoti starp tiem. Tas ļauj viegli integrÄt tos un neuzlikt noteiktu sastÄvdaļu sastÄvu (un secÄ«bu). PiemÄram, dažos gadÄ«jumos tas ļauj mums tieÅ”i integrÄt saÅemÅ”anas sistÄmu ar brÄ«dinÄjumu izsekoÅ”anas sistÄmu. Å ÄdÄ gadÄ«jumÄ tas tiks darÄ«ts saskaÅÄ ar saskaÅoto paziÅoÅ”anas lÄ«gumu. Tas nozÄ«mÄ, ka abas sastÄvdaļas tiks integrÄtas, izmantojot lÄ«gumu, ko var izmantot jebkura cita sastÄvdaļa. MÄs nepievienosim papildu lÄ«gumu par brÄ«dinÄjumu pievienoÅ”anu izsekoÅ”anas sistÄmai no ievades sistÄmas. Å Ä« pieeja prasa izmantot iepriekÅ” noteiktu minimÄlo lÄ«gumu skaitu un vienkÄrÅ”o sistÄmu un sakarus. BÅ«tÄ«bÄ mÄs izmantojam pieeju, ko sauc par āLÄ«guma pirmÄ noformÄÅ”anaā, un piemÄrojam to straumÄÅ”anas lÄ«gumiem. [2]
StraumÄÅ”ana visur
Valsts glÄbÅ”ana un vadÄ«Å”ana sistÄmÄ neizbÄgami radÄ«s sarežģījumus tÄs ievieÅ”anÄ. Parasti stÄvoklim ir jÄbÅ«t pieejamam no jebkura komponenta, tam jÄbÅ«t konsekventam un jÄnodroÅ”ina visjaunÄkÄ vÄrtÄ«ba visos komponentos, kÄ arÄ« jÄbÅ«t uzticamam ar pareizajÄm vÄrtÄ«bÄm. TurklÄt izsaukumi uz pastÄvÄ«go krÄtuvi, lai iegÅ«tu jaunÄko stÄvokli, palielinÄs I/O apjomu un mÅ«su reÄllaika konveijeros izmantoto algoritmu sarežģītÄ«bu. Å Ä« iemesla dÄļ mÄs nolÄmÄm pilnÄ«bÄ noÅemt stÄvokļa krÄtuvi, ja iespÄjams, no mÅ«su sistÄmas. Å Ä« pieeja prasa, lai visi nepiecieÅ”amie dati tiktu iekļauti pÄrsÅ«tÄ«tajÄ datu vienÄ«bÄ (ziÅojumÄ). PiemÄram, ja mums ir jÄaprÄÄ·ina dažu novÄrojumu kopÄjais skaits (operÄciju vai gadÄ«jumu skaits ar noteiktiem raksturlielumiem), mÄs to aprÄÄ·inÄm atmiÅÄ un Ä£enerÄjam Å”Ädu vÄrtÄ«bu plÅ«smu. AtkarÄ«gie moduļi izmantos sadalÄ«Å”anu un pakeÅ”u veidoÅ”anu, lai sadalÄ«tu straumi pa entÄ«tijÄm un darbotos ar jaunÄkajÄm vÄrtÄ«bÄm. Å Ä« pieeja novÄrÅ” nepiecieÅ”amÄ«bu pÄc pastÄvÄ«gas diska uzglabÄÅ”anas Å”Ädiem datiem. MÅ«su sistÄma izmanto Kafka kÄ ziÅojumu brokeri, un to var izmantot kÄ datu bÄzi ar KSQL. [3] TaÄu tÄ izmantoÅ”ana mÅ«su risinÄjumu cieÅ”i sasaistÄ«tu ar Kafku, un mÄs nolÄmÄm to neizmantot. MÅ«su izvÄlÄtÄ pieeja ļauj aizstÄt Kafku ar citu ziÅojumu brokeri bez bÅ«tiskÄm iekÅ”ÄjÄm izmaiÅÄm sistÄmÄ.
Å is jÄdziens nenozÄ«mÄ, ka mÄs neizmantojam diska krÄtuvi un datu bÄzes. Lai pÄrbaudÄ«tu un analizÄtu sistÄmas veiktspÄju, mums diskÄ jÄsaglabÄ ievÄrojams datu apjoms, kas atspoguļo dažÄdus rÄdÄ«tÄjus un stÄvokļus. SvarÄ«gi ir tas, ka reÄllaika algoritmi nav atkarÄ«gi no Å”Ädiem datiem. VairumÄ gadÄ«jumu mÄs izmantojam saglabÄtos datus bezsaistes analÄ«zei, atkļūdoÅ”anai un konkrÄtu gadÄ«jumu un sistÄmas radÄ«to rezultÄtu izsekoÅ”anai.
MÅ«su sistÄmas problÄmas
Ir noteiktas problÄmas, kuras esam atrisinÄjuÅ”i lÄ«dz noteiktam lÄ«menim, taÄu tÄm ir nepiecieÅ”ami pÄrdomÄtÄki risinÄjumi. PagaidÄm es gribÄtu tos Å”eit tikai pieminÄt, jo katrs priekÅ”mets ir sava raksta vÄrts.
Mums joprojÄm ir jÄdefinÄ procesi un politikas, kas palÄ«dz Ä£enerÄt nozÄ«mÄ«gus un atbilstoÅ”us datus mÅ«su automatizÄtai datu analÄ«zei, atklÄÅ”anai un izpÄtei.
Personas analÄ«zes rezultÄtu ievieÅ”ana sistÄmas automÄtiskÄs noregulÄÅ”anas procesÄ, lai atjauninÄtu to ar jaunÄkajiem datiem. Å is ir ne tikai mÅ«su modeļa atjauninÄjums, bet arÄ« mÅ«su procesu atjauninÄjums un labÄka izpratne par mÅ«su datiem.
LÄ«dzsvara atraÅ”ana starp IF-ELSE un ML deterministisko pieeju. KÄds teica: "ML ir lÄ«dzeklis izmisuÅ”ajiem." Tas nozÄ«mÄ, ka jÅ«s vÄlÄsities izmantot ML, kad vairs nesaprotat, kÄ optimizÄt un uzlabot savus algoritmus. No otras puses, deterministiskÄ pieeja neļauj atklÄt anomÄlijas, kas nebija paredzÄtas.
Mums ir nepiecieÅ”ams vienkÄrÅ”s veids, kÄ pÄrbaudÄ«t savas hipotÄzes vai korelÄcijas starp datu metriku.
SistÄmai ir jÄbÅ«t vairÄkiem patiesi pozitÄ«vu rezultÄtu lÄ«meÅiem. KrÄpÅ”anas gadÄ«jumi ir tikai daļa no visiem gadÄ«jumiem, kurus var uzskatÄ«t par pozitÄ«viem sistÄmai. PiemÄram, analÄ«tiÄ·i vÄlas saÅemt visus aizdomÄ«gos gadÄ«jumus izskatÄ«Å”anai, un tikai neliela daļa no tiem ir krÄpnieciski. SistÄmai ir efektÄ«vi jÄnodroÅ”ina analÄ«tiÄ·i ar visiem gadÄ«jumiem neatkarÄ«gi no tÄ, vai tÄ ir Ä«sta krÄpÅ”ana vai tikai aizdomÄ«ga rÄ«cÄ«ba.
Datu platformai jÄspÄj izgÅ«t vÄsturiskÄs datu kopas ar aprÄÄ·iniem, kas izveidoti un aprÄÄ·inÄti lidojuma laikÄ.
VienkÄrÅ”a un automÄtiska jebkura sistÄmas komponenta izvietoÅ”ana vismaz trÄ«s dažÄdÄs vidÄs: ražoÅ”anas, eksperimentÄlÄ (beta) un izstrÄdÄtÄjiem.
Un visbeidzot, bet ne mazÄk svarÄ«gi. Mums ir jÄizveido plaÅ”a salÄ«dzinoÅ”Äs novÄrtÄÅ”anas platforma, kurÄ mÄs varam analizÄt savus modeļus. [4]