Blog

En förhandstitt på Apache DevLake (Incubating): vad det är samt några för- och nackdelar

FEB 9, 2023

En av våra kunder ville höra vad jag tycker om Apache DevLake (Incubating). De övervägde att lägga till det i sin Eficode ROOT-stack.

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.

Det är ett nytt och spännande verktyg som många ser fram emot under 2023. Jag bestämde mig för att skriva en kort introduktion till verktyget, med några för- och nackdelar, och dela den här på bloggen för att stilla mångas nyfikenhet. Så nu kör vi.

Låt mig börja med att säga att Apache DevLake inte är redo för produktion. Projektet befinner sig tydligt i ett tidigt utvecklingsskede när det gäller datapipelines. Men stödet för verktyg är redan mycket bra, och utifrån vad jag har sett kommer det att bli ett fantastiskt verktyg i framtiden.

Först och främst:

Vad är Apache DevLake (Incubating)?

I grund och botten är det:

  • en samling av insamlare för data

  • verktyg för datatransformation

  • datamodellering för DevOps-mått

Analysen kommer för närvarande från Grafana. Apache DevLake (Incubating) innehåller grundläggande dashboards, men jag rekommenderar att du tills vidare använder data från databasen i ditt befintliga analysverktyg.

Screenshot 2022-12-23 at 13.18.14

Nuvarande konfiguration av Apache DevLake-insamlingar för det här blogginlägget

Datamodellen är väl dokumenterad, så du kan enkelt komma igång med att skriva egna frågor.

schema-diagram-320b5e63de6fabd77794a3043a18fa98

Det aktuella databasschemat Källa: https://devlake.apache.org/assets/images/schema-diagram-320b5e63de6fabd77794a3043a18fa98.png

Detta möjliggör analys från databasen, som för närvarande är MySQL, med både Grafana och andra externa verktyg. Det största problemet är att du inte enkelt kan använda detta för flera instanser, och att hämta data kräver en hel del automatisering om du vill göra analyser i stor skala i stället för för ett enskilt projekt.

Apache DevLake (Incubating) är i sig inget nytt, eftersom du redan kan bygga samma integrationer själv, till exempel direkt mellan PowerBI och Jira.

Det som är bra med verktyget är att du kopplar samman Git, CI/CD och ärenden, så att du kan analysera all den datan. När du kan koppla en funktion till en commit ser du tydligare vad som krävdes för att få funktionen till produktion, eller vilka problem funktionen kan ha orsakat.

För- och nackdelar med Apache DataLake (Incubating)

Fördelar:

  • Det integreras med de främsta Git- och ärendehanteringsverktygen: GitHub, GitLab, Bitbucket (hittills via API) och Jira

  • Analysen bygger som standard på Grafana – lätt att använda och snabbt att komma igång med

  • Det finns en aktiv community som utvecklar nya funktioner

  • Allt är containerbaserat, så det är enkelt att komma igång

  • Skrivet i Go, vilket ger mycket effektiva datahämtningar

  • Konfigurationer kan definieras i JSON

  • Utmärkt för analys av teamprojekt

  • Analys med REST API gör det mycket enkelt för vem som helst att komma igång

  • Det finns en tydlig och synlig roadmap där du kan se vad som utvecklas

Nackdelar:

  • Eftersom analyserna bygger på Grafana kan du inte göra mer djupgående analyser som standard

  • Det saknas fortfarande stöd för att konfigurera och veta hur man sätter upp databasen på ett Cloud Native-sätt

  • Ger ännu ingen information som du inte kan få på andra sätt

  • Du måste lägga till projekt ett i taget via gränssnittet eller API-anrop

  • Fälten för datahämtning är ännu inte dokumenterade och har inte stöd för alla funktioner i verktygen (till exempel Jira och Personal access tokens)

  • För att definiera Jenkins-pipelines måste du mappa till vissa mönster, vilket innebär att Jenkins-jobb måste fungera på ett visst sätt

  • Du kan inte definiera nivåer över projektnivå, så du kan till exempel inte definiera med Blueprint

  • Behörighetsnivåerna för Personal access tokens är inte dokumenterade, och detta är inte standardmetoden

  • Det finns ännu inget stöd för SonarQube

  • OpsGenie kommer inte, men PagerDuty gör det (jag kan inte använda det själv eftersom vi använder OpsGenie på Eficode)

  • Autentisering saknas fortfarande för collectors (eller så kunde jag åtminstone inte hitta konfigurationen)

  • Många funktioner skapas i bakgrunden, så du behöver läsa igenom mycket API-dokumentation (detta är också positivt eftersom de aktivt implementerar funktioner som du kan testa innan de blir faktiska releaser)

Exempel på Git-analys från Grafana

Screenshot 2022-12-23 at 13.49.23

Sammanfattningsvis

Detta var mina nuvarande erfarenheter av Apache DevLake (Incubating). Jag kommer definitivt att följa projektet, och vi undersöker också möjligheten att erbjuda betaanvändning till våra kunder inom managed services framöver.

Det är inte riktigt redo för att vi ska kunna erbjuda det som en tjänst till våra kunder. Men det är ett mycket intressant projekt, och vi ser fram emot att se vad teamet kan göra med det.

Även om det kanske ännu inte är redo för produktionsanvändning i stor skala är det definitivt något du kan testa på teamnivå för att se hur dina mätvärden utvecklas. Lova bara inte någon tillgänglighet eller att datan förblir oförändrad.

  • DevOps
  • Eficode ROOT
  • CI/CD

Subscribe to our newsletter