FallstudieSpelbransch

Ny CI-plattform för ett 20-tal team.

Delivery Engineering på ATG driver CI/CD-flödena för ett 20-tal utvecklingsteam som levererar produkter till en av Sveriges största spelaktörer. Uppdraget: införa Drone och Harness CI tillsammans med GitHub som ny CI-plattform — och göra det enkelt för andra team att lyfta sina projekt till AWS själva.

KundATG
Periodmaj 2019 – feb 2021
RollerDevOps, Delivery Engineer
01 / Problem

Leveranskedjan blev flaskhalsen, inte koden.

Ett 20-tal team levererar mot en reglerad spelplattform där driftstopp och felaktiga releaser inte är en olägenhet utan en affärsrisk. När varje team bygger sin egen väg till produktion blir summan svår att överblicka: olika verktyg, olika kvalitetsnivå, och en central funktion som blir beroende i varje leverans.

Att bara centralisera hade flyttat flaskhalsen, inte tagit bort den. Uppdraget formulerades därför som självbetjäning: teamen ska kunna lyfta sina projekt till AWS på egen hand, på en gemensam CI-plattform, utan att stå i kö hos någon annan.

BegränsningReglerad marknad: spårbarhet och kontroll i varje release.
BegränsningEtt 20-tal team med olika stackar och olika mognad i molnet.
BegränsningIngen central funktion får bli obligatorisk mellanhand i varje deploy.
BegränsningIncidenter i plattformen träffar alla team samtidigt.
02 / Angreppssätt

Gemensam väg, egna händer.

Drone och senare Harness CI tillsammans med GitHub blev den gemensamma CI-plattformen. Runt den byggdes det som gör självbetjäning möjlig: Terraform och Ansible för miljöer, Nexus som artefaktrepo, SonarQube som kvalitetsgrind — och monitorering som upptäcker problem innan utvecklarna gör det.

maj 2019In i Delivery EngineeringUppdraget startade i det team som driver CI/CD-flödena för ett 20-tal utvecklingsteam — med ansvar för vägen till produktion, inte för produkterna.
2019Drone CI med GitHubDrone CI infördes tillsammans med GitHub som ny CI-plattform: en gemensam väg som team kunde ta i bruk utan att bygga egen infrastruktur.
2019 – 2020Väg till AWSTerraform och Ansible gjorde det enkelt för andra team att lyfta sina projekt till AWS — ECS och senare EKS som körmiljö.
2020Metrik och monitoreringWebbtjänster i Python och Go exporterar nyckelmetrik till Prometheus, monitorerat i Grafana för att fånga incidenter proaktivt.
2020 – 2021Harness CI och mentorskapHarness CI kompletterade plattformen, och team mentorerades i Nexus som artefaktrepo och SonarQube för kodkvalitet.
Principen
Målet var en moln-mogen organisation som kan stå på egna ben — inte ett team som alla måste fråga.
03 / Plattform

Fem beslut som bar resten.

BeslutVarförKonsekvens
Drone/Harness + GitHubEn gemensam CI-väg var förutsättningen för att kunna standardisera kvalitet och spårbarhet.Team slutade bygga egna pipelines; plattformen blev något man använder, inte något man snickrar.
ECS, sedan EKSBehovet växte från enkla containers till team som ville styra sina egna arbetslaster.Mer kontroll för teamen, men ett större plattformsansvar att förvalta.
Terraform + AnsibleSjälvbetjäning kräver att en miljö kan resas av den som behöver den — inte beställas.Vägen till AWS blev kod som team kunde återanvända istället för en supportärendekö.
Nexus som artefaktrepoArtefakter behöver en gemensam källa för att releaser ska kunna spåras i en reglerad miljö.Byggen refererar samma artefakter genom hela kedjan.
SonarQube som grindKodkvalitet måste vara mätbar när tjugo team levererar mot samma plattform.Kvalitet blev en synlig tröskel i pipelinen istället för en åsikt vid review.

Monitorering före incident

Webbtjänster exporterar nyckelmetrik till Prometheus, som visualiseras i Grafana. Poängen är riktningen: plattformsteamet ser avvikelsen först och åtgärdar den proaktivt — istället för att få veta via ett team vars bygge redan står still.

Steg 01Metrik exporterasWebbtjänster exponerar nyckelmetrik från plattformens delar till Prometheus.
Steg 02Samlas i PrometheusTidsserier per pipeline, körning och miljö istället för punktvisa larm.
Steg 03Visualiseras i GrafanaPlattformsteamet ser avvikelser och trender i samma vy.
Steg 04Åtgärdas proaktivtIncidenten hanteras innan den drabbar utvecklarnas byggen.
04 / Mentorskap

Plattformen är halva jobbet. Vanan är den andra.

Verktyg som ingen använder rätt skapar bara en ny sorts flaskhals. Därför ingick mentorskap i uppdraget: team lärdes upp i Nexus som artefaktrepo och SonarQube för kodkvalitet, och i att ta sina egna projekt till AWS.

ArtefakterTeam lärdes upp i Nexus: var artefakter bor, hur versioner refereras och varför det spelar roll för spårbarhet.
KodkvalitetSonarQube introducerades som en del av pipelinen — mätvärden teamen själva följer, inte en rapport någon annan läser.
MolnmognadMålet var team som lyfter sina egna projekt till AWS och kan stå på egna ben efter att uppdraget avslutats.
05 / Utfall

Snabbare leveranser, färre flaskhalsar.

Team på plattformen~20Utvecklingsteam som levererar produkter till en av Sveriges största spelaktörer.
Deploys per vecka— per vecka —Releasetakt före respektive efter den nya CI-plattformen.
Lead time— commit → prod —Tiden från commit till produktion, mätt över perioden.
Team migrerade till AWS— antal —Projekt som teamen själva lyfte till AWS under uppdraget.
Streckade rutor saknar verifierad siffra — inga uppskattningar publiceras.

Kvalitativt var resultatet en moln-mogen organisation: snabbare leveranser, färre flaskhalsar och team som tar sina egna projekt till AWS utan central handpåläggning. Att uppdraget kunde avslutas är i sig en del av utfallet — plattformen stod kvar utan sin byggare.

06 / Teknik

Tolv tekniker, grupperade.

Moln & körningAWS ECSAWS EKS
InfrastrukturTerraformAnsible
CI/CDDrone CIHarness CI
SpråkPythonGo
Kvalitet & observabilityNexusSonarQubePrometheusGrafana
Säg hej

Har du ett problem värt att lösa?

Chatta med oss på WhatsApp. Vi svarar inom 48 timmar.