Blog
Juli 15, 2020
Alle
Kontinuerlig integration og levering
Kvalitetsteknik

En DevOps-transformation til en større indkøbsplatform

DevOps har gjort det muligt for virksomheder verden over at strømline og styrke softwareudvikling og IT-operationer. Gennem en kooperativ tilgang, der forenkler fælles processer i en organisation, gør DevOps-metoden det muligt at øge leveringskapaciteten, give lavere omkostninger og reducere tiden til at bringe det på markedet og samtidig forbedre applikationskvaliteten.

En shoppingportal, der bruges af mere end 10% af den danske befolkning, er en populær destination for specielle shoppingtilbud og cashback-belønninger. Virksomheden arbejdede med reklame og markedsundersøgelser og er blevet det største cashback-firma i regionen. Webstedets oprindelige lancering i 2012 var blevet en flaskehals i 2017, og organisationen søgte en udviklingspartner til at forbedre portalens infrastruktur. Ved at søge en partner, der bedre ville være i stand til at implementere DevOps-principper og -praksis i hele virksomheden, havde klienten et presserende behov for teknologisk vejledning for at hjælpe med at bevare sit brands’ konkurrenceevne.

UDFORDRINGER, DER SKAL LØSES:

For lang tid til at komme på markedet

  • Begyndte som mere end 50 dage
  • Klienten mistede markedsandel

Uforudsigelig levering

  • Konstante serviceanmodninger fra brugere
  • Kompleks, ineffektiv test

Langsom og uforudsigelig idriftsættelse

  • Ingen implementeringsautomatisering
  • To dage fra implementering til produktion

Dårlig kvalitet

  • Massiv fejllog
  •  Ingen testautomatisering

Klienten identificerede en række tekniske udfordringer, der markant forringede shoppingportalens ydelse. Tiden til at komme på markedet tog alt for lang tid, varede mindst 50 dage og fik brandet til at miste markedsandel. Langsomme og uforudsigelige implementeringer havde automatiserede implementeringsfunktioner, men det tog mindst to dage fra implementering til produktion, hvilket resulterede i uforudsigelige leveringsdatoer. Uforudsigelig levering, som krævede kompleks og ineffektiv test, resulterede i en konstant strøm af serviceanmodninger fra platformens brugere. Den samlede dårlige softwarekvalitet og mangel på testautomatisering bidrog også til en massiv bunke af softwarebugs.

Klienten indrullerede Ciklum til at overtage leveringsmuligheder, inddrive teknisk gæld og forbedre portalens eksisterende teknologistakke ved at omdanne stedets komplekse live-tjeneste og DevOps-muligheder. Et komplet udviklingshold blev samlet, sammensat af i gennemsnit 20 udviklere og ingeniører – med et højeste antal medarbejdere på 50. Ved at tage ejerskab af hele produktet forsøgte teamet af mobile appudviklere, webudviklere, back-end- og integrationsudviklere, DevOps-ingeniører og testingeniører at identificere og løse udfordringer inden for kundens CI/CD-pipeline og finde måder at fortsætte med at implementere serviceforbedringer på.

LEVERING AF INGENIØRYDELSER ÆNDREDES INKREMENTELT

Ciklums udviklere og ingeniører identificerede et betydeligt antal nødvendige tekniske forbedringer, mens kundens kerneproduktion blev opretholdt. Først blev Gitflow-kodeforgrening flyttet til trunkbaseret udvikling, hvilket gav et bedre grundlag for kontinuerlig levering og gjorde det lettere hurtigt at identificere fejl. Dernæst blev automatisering af CI/CD-pipelinen implementeret ved hjælp af TeamCity som en orkestrator, klientens foretrukne valg, og inkorporeret fuldautomatisk test i en hukommelse(-senhed), hvilket eliminerede manuelle fejl og reducerede fejlfrekvensen. Endelig blev Azure-tjenester brugt til at reducere den tid, der var nødvendig til at indføre forbedringer. Azures sundhedsovervågning og alarmering reducerede også introduktionstiderne markant.

For at levere disse tekniske ændringer trinvist implementerede Ciklum den fulde vifte af forbedringer så hurtigt som muligt. På det tidspunkt tog en vellykket cyklus to dage, fejlfrekvensen pr. cyklus var mindre end 50%, og et tidsinterval på to uger blev tildelt i skemaet.

Udrulningen af hvert trin i de tekniske forbedringer blev omhyggeligt orkestreret over flere uger og måneder. Før udrulningen startede brugte Ciklums team to til fire uger på at udforske mulige løsninger med kunden gennem møder, aktiviteter og detaljeret dokumentation på stedet. Når de rette løsninger var blevet identificeret, blev der udarbejdet en grundig plan for at gennemføre ændringerne i løbet af de næste to uger, herunder en teamreorganisering, der skabte et nyt DevOps-team bestående af fem ingeniører, en arkitekt og en leveringschef.

  1. Flyttede fra Gitflow-kodeforgrening til trunkbaseret udvikling. Reducerede forsinkelser med at identificere fejl. Fundament for kontinuerlig levering
  2. Automatiseret CI/CD-pipeline ved hjælp af TeamCity. Automatiseret i hukommelses(-enheds-)test. Eliminerede manuelle fejl og reducerede fejl.
  3. Azuretjenester til at reducere tiden til introduktion af forbedringer. Azures sundhedsovervågning og alarmering reducerede også introduktionstiderne markant.
  4. Fuld testautomatisering introduceret.

I det første trin, der varede i to måneder, oprettede Ciklum og DevOps-teamet en pilotversion af løsningen, herunder kundens anmodede forbedringer af TeamCity-pipelinen. I hele denne periode blev automatisering til build- og enhedsafprøvning inkorporeret for at eliminere trin med en høj fejlfrekvens. Cyklustiden for en vellykket cyklus faldt til en dag, fejlfrekvensen pr. cyklus faldt til ca. 20%, og forsinkelsen, der blev tildelt i skemaet for at frigive build shrunk faldt til en uge.

Som den anden fase, der varede en måned, implementerede Ciklum automatiseret implementering, miljøer skabt af scripts og automatisering af end-to-end-test. I de næste to måneder arbejdede teamene også med at opdatere TeamCity-pipelinen og implementere Azures overvågnings- og alarmsystem. Slutresultatet var en cyklustid for en vellykket cyklus på kun 40 minutter, en fejlrate pr. cyklus på mindre end 10% og en forsinkelse tildelt i skemaet til frigivelse af build på kun 0,5 dage. I de sidste tre måneder af projektet arbejdede holdene med at migrere applikationen til containere og tilføje lag af Docker og Kubernetes.

Ciklum leverede i sidste ende tre specifikke tekniske forbedringer til det danske virksomheds webportal. Produktets visningskatalog havde nu evnen til at eksperimentere, hvilket gjorde det muligt for teamet at skabe innovation og i sidste ende øge antallet af besøgende på webstedet. Ydelsesforbedringer på sider med produktdetaljer gjorde det muligt at levere et forbedret design, hvilket reducerede det samlede antal frafald. Hurtigere cyklustider gjorde det også muligt for teamet at indføre yderligere økonomiske muligheder før end forventet, hvilket resulterede i en fantastisk kundeoplevelse og en stigning i gentagne køb.

SEKS MÅNEDER EFTER TRANSFORMATIONEN

  • Dobbelt så højt antal besøgende
  • Dobbelt så høj omsætning
  • Reducerede cloud-omkostninger

Disse resultater blev opnået gennem fjernelse af teknisk gæld, forbedring af den overordnede tilgang til softwareteknik og dramatisk forbedring af sideindlæsningstider. Tilføjelsen af nye betalingstjenester og forbedring af brugerrejsen bidrog også til en bedre kundeoplevelse, der resulterede i højt brugerengagement.

Efter det vellykkede partnerskab nyder kunden nu godt af et fuldt implementeret DevOps-miljø, der har reduceret omkostningerne, forbedret ydelsen og øget trafikken. Ved at samarbejde med Ciklum om at implementere en løbende proces til kontinuerlig forbedring og support, har kunden værktøjer og IT-kultur på plads til at understøtte softwareudvikling og operationer i en overskuelig fremtid på sin platform.

Oleksandr Maidaniuk
Ciklum-teamet konverterede med succes lokale opdagelser til globale forbedringer. Teamet aktiverede hyppig feedback, så ingeniør- og driftshold sikkert kunne anvende kode. Vores kontinuerlige ingeniørtjenester og DevOps-tilgang fokuseret på kvaliteten af leverancerne, har optimeret tiden til at komme på markedet, øget hyppigheden af idriftsættelser og leveringskapacitet, sænket omkostninger og samtidig forbedret applikationskvaliteten.
Oleksandr Maidaniuk, Leder for globale løsninger, Direktør for Quality Engineering hos Ciklum

Oplever du nogen udfordringer med DevOps, CI/CD pipeline eller softwareudgivelser generelt? Bare send os en note, så vores ingeniøreksperter kommer i kontakt med dig inden for de næste 24 timer.