Eräs asiakkaistamme halusi kuulla näkemykseni Apache DevLakesta (Incubating). He harkitsivat sen lisäämistä Eficode ROOT -kokonaisuuteensa.
Kalle Sirkesalo
Field CTO
Kalle sits at the intersection of executive strategy and engineering reality. He works directly with CTOs and engineering leaders to translate business pressures — speed, compliance, ROI — into technical decisions that actually hold. His job is to make sure what we recommend is something your organization can actually execute.
Kyseessä on uusi ja innostava työkalu, jota moni odottaa vuonna 2023. Päätin kirjoittaa siitä lyhyen esittelyn, käydä läpi sen hyviä ja huonoja puolia sekä jakaa sen täällä blogissa tyydyttääkseni monien uteliaisuuden. Joten aloitetaan.
Aluksi on hyvä todeta, että Apache DevLake ei ole vielä valmis tuotantokäyttöön. Projekti on data pipelinejen osalta selvästi vielä kehityksensä alkuvaiheessa. Työkalutuki on kuitenkin jo erinomainen, ja näkemäni perusteella siitä tulee tulevaisuudessa loistava työkalu.
Ensimmäiseksi:
Mikä on Apache DevLake (Incubating)?
Pohjimmiltaan se on:
kokoelma datankerääjiä
datan muunnostyökaluja
DevOps-mittareiden datamallinnus
Analytiikka tuotetaan tällä hetkellä Grafanalla. Apache DevLake (Incubating) sisältää perusdashboardit, mutta suosittelen toistaiseksi käyttämään tietokannan dataa nykyisessä analytiikkatyökalussasi.
Apache DevLake -kerääjien ajojen nykyinen konfiguraatio tätä blogikirjoitusta varten
Datamalli on hyvin dokumentoitu, joten omien kyselyiden kirjoittaminen on helppo aloittaa.
Nykyinen tietokantaskeema Lähde: https://devlake.apache.org/assets/images/schema-diagram-320b5e63de6fabd77794a3043a18fa98.png
Tämä mahdollistaa tietokanta-analytiikan sekä Grafanalla että muilla ulkoisilla työkaluilla. Tietokanta on tällä hetkellä MySQL. Suurin haaste on se, ettei ratkaisua voi helposti käyttää useille instansseille, ja datan hakeminen vaatii melko paljon automaatiota, jos haluat analysoida dataa laajassa mittakaavassa yksittäisen projektin sijaan.
Apache DevLake (Incubating) ei itsessään ole mitään uutta, sillä voit rakentaa samat integraatiot jo itse esimerkiksi yhdistämällä PowerBI:n suoraan Jiraan.
Työkalussa hienoa on se, että voit yhdistää Gitin, CI/CD:n ja tiketit toisiinsa, jolloin voit analysoida kaikkea tätä dataa. Kun voit yhdistää ominaisuuden commitiin, näet selkeämmin, mitä ominaisuuden vieminen tuotantoon vaati tai mitä ongelmia se on voinut aiheuttaa.
Apache DataLaken (Incubating) hyvät ja huonot puolet
Hyvät puolet:
Se integroituu tärkeimpiin Git- ja issue trackereihin: GitHubiin, GitLabiin, Bitbucketiin (toistaiseksi API:n kautta) ja Jiraan
Analytiikka perustuu oletusarvoisesti Grafanaan — sitä on helppo käyttää ja sen kanssa pääsee nopeasti alkuun
Aktiivinen yhteisö kehittää uusia ominaisuuksia
Kaikki on kontteina, joten alkuun pääsee helposti
Kirjoitettu Go-kielellä, joten datan haku on erittäin tehokasta
Konfiguraatiot voidaan määritellä JSON-muodossa
Erinomainen tiimien projekti-analytiikkaan
REST API -analytiikan ansiosta kenen tahansa on erittäin helppo päästä alkuun
Näet selkeältä ja helposti hahmotettavalta roadmapilta, mitä työn alla on
Miinukset:
Koska analytiikka perustuu Grafanaan, syvällisempää analytiikkaa ei voi tehdä oletuksena
Tietokannan määrittäminen ja käyttöönotto Cloud Native -periaatteiden mukaisesti puuttuu edelleen
Ei vielä tarjoa tietoa, jota et voisi saada muilla keinoin
Projektit on lisättävä yksi kerrallaan käyttöliittymässä tai API-kutsuilla
Tiedonhaun kenttiä ei ole vielä dokumentoitu, eivätkä ne tue kaikkia työkalujen ominaisuuksia (esimerkiksi Jiraa ja Personal access tokeneita)
Jenkins-pipelinejen määrittely edellyttää tiettyjen mallien noudattamista, eli Jenkins-jobien on toimittava tietyllä tavalla
Projektitason yläpuolisia tasoja ei voi määrittää, joten esimerkiksi Blueprintia ei voi määrittää
Personal access tokenien käyttöoikeustasoja ei ole dokumentoitu, eikä tämä ole oletusmenetelmä
Sonarqubelle ei ole (vielä) tukea
OpsGenie-tukea ei ole tulossa, mutta PagerDuty-tuki on (en voi itse käyttää sitä, sillä Eficodella käytämme OpsGenietä)
Autentikointi puuttuu edelleen collectoreilta (tai en ainakaan löytänyt sen määrityksiä)
Monet ominaisuudet luodaan piilotetusti, joten API-dokumentaatiota on luettava paljon (tämä on myös positiivista, sillä ominaisuuksia toteutetaan aktiivisesti ja niitä voi testata ennen kuin ne julkaistaan virallisesti)
Esimerkki Git-analytiikasta Grafanassa
Yhteenveto
Nämä ovat tämänhetkiset kokemukseni Apache DevLakesta (Incubating). Seuraan projektia varmasti jatkossakin, ja tutkimme myös mahdollisuutta beta-käyttöön managed services -asiakkaidemme kanssa tulevaisuudessa.
Se ei ole aivan valmis tarjottavaksi palveluna asiakkaillemme. Projekti on kuitenkin erittäin kiinnostava, ja odotamme innolla, mitä tiimi saa siinä aikaan.
Vaikka se ei ehkä vielä ole valmis laajamittaiseen tuotantokäyttöön, sitä kannattaa ehdottomasti testata tiimitasolla, jotta näet, miten metriikkasi kehittyvät. Älä vain lupaa käytettävyyttä tai sitä, että data säilyy muuttumattomana.
- DevOps
- Eficode ROOT
- CI/CD
Subscribe to our newsletter
Related blogs