Bokbasen CI/CD Pipeline

Bokbasen erbjuder en mängd tjänster till hela Norges förlagsvärld. Företaget bygger och underhåller katalogen “Den norske Bokdatabasen” som innehåller uppgifter om alla norska förlag. Genom att utnyttja detta centraliserade register kan branschen enkelt dra nytta av datan – i nätbutiker, bokhandlare, bibliotek och skolor – istället för att lägga tid på att samla in den, vilket är fallet i många andra länder.

En central utmaning var att lansera dessa nya produkter med endast fem anställda på IT-avdelningen. Lösningen blev att använda en kombination av flexibla managerade tjänster från AWS tillsammans med erfarna experter inom ämnesområdet från Orange Business.

Bokbasen valde att använda en container-baserad mikrotjänstarkitektur för att göra det enklare och smidigare att utöka deras nya tjänster med ny funktionalitet. Detta samtidigt som det tillät de enskilda tjänsterna att skala oberoende av varandra. Orange Business samarbetade med Bokbasen för att distribuera och hantera DevOps Pipelines, som smidigt automatiserar processen att släppa uppdateringar och ny funktionalitet.

DevOps representerar en kulturförskjutning som integrerar teamet som skriver koden med teamet som hanterar den, vilket bildar ett enda team. Istället för att varje programvaruutgåva innehåller många, potentiellt störande förändringar som släpps på en och samma gång, uppmuntras teamen att släppa mindre förändringar oftare. Detta minskar påverkan av förändringen och gör det lättare att testa och lansera.

Orange Business samarbetar med kunder för att stödja deras DevOps-affärs- och teknikomvandlingar.

Kunden valde att använda en implementeringsstrategi som innefattade:

  • Byggandet av en enda artefakt för alla miljöer
  • Släpp tidigt, släpp ofta
  • Använd en stegvis utrullning för att gradvis byta ut eller uppgradera tjänster
  • Åtgärda alltid brister genom att rulla framåt till en ny release

Det var viktigt för Bokbasen att deras egna DevOps-team hade möjligheten att konsekvent implementera i alla miljöer, inklusive produktion.

Infrastruktur som kod

Genom att använda Infrastructure as Code-teknik (IaC), kan Orange Business och Bokbasen automatisera utrullningen av infrastruktur, applikationstjänster och CD/CD-pipelines över olika miljöer.

HashiCorp Terraform används för att rulla ut Bokbasens infrastruktur. Självbetjänande terraform-mallar används för att snabbt och enkelt skapa nya pipelines.

Många utmärkta IaC-moduler från Hashicorp Terraforms register, och från Orange Business, har förenklat övergången. Användningen av IaC säkerställer en konsekvent och upprepningsbar metod för att rulla ut och hantera infrastruktur över olika miljöer.

Spring Cloud Config och AWS Systems Manager Parameter Store används för att lagra konfiguration och hålla hemligheter, såsom säkerhetsuppgifter, krypterade och granskade.

Distributionspipelines

Orange Business Professional Services samarbetade med Bokbasen för att utveckla pipelines för att bygga applikationsartefakter och distribuera mikrotjänster över Bokbasens Test-, Stage- och Produktionskonton, med integrering till följande huvudsakliga AWS-tjänster:

  • Lambda
  • Fargate
  • Batch
  • API-Gateway
  • Statiska webbplatser på S3 (använda CloudFront CDN)

När en medlem i DevOps-teamet initierar en specifik gren, triggas pipelinen, vilket bygger artefakter, såsom docker-bilder som är en del av tjänsten, och skickar dessa bilder till containerregistret. Pipelinen distribuerar sedan containern till testmiljön. Ett rökktest (smoke test) med RunScope startas och testresultaten verifieras manuellt av DevOps-teamet innan de godkänner releasen för att distribueras till stage. Där genomförs samma rökktest samt ytterligare verifieringstester innan man godkänner distribution i Produktion. DevOps har endast läsbehörighet till stage- och produktionsmiljöerna. Pipelinen tillåter distributioner över konton genom att anta IAM-roller.

Databasscheman modifieras också som en del av utrullningspipelinerna med hjälp av Flyway.

Liknande pipeliner skapas för CI/CD av batchjobb, lambda-funktioner och webbplatser som är värdar på S3.

bild1

bild 2

bild 3

bild 4

Deployment

  • HashiCorp Terraform
  • AWS CodePipeline
  • AWS CodeBuild
  • AWS CodeDeploy
  • AWS ECR
  • Flyway

Config

  • AWS Systems Manager Parameter Store
  • Spring Cloud Config

Monitoring

  • Datadog
  • io
  • AWS CloudWatch
  • AWS CloudTrail

Testing

  • RunScope

Version control

  • AWS Systems Manager Parameter Store
  • Spring Cloud Config

Notifications and Collaboration

  • Slack

Lösningen möjliggör självbetjäning av CI/CD-pipelines där kundens DevOps-team har full kontroll över de IaC-definierade pipelinerna utan direkt åtkomst till Staging- och Produktionsmiljöerna.

Designen stödjer separation av ansvarsområden mellan de kontinuerliga förbättringarna av mikrotjänster och hanteringen av tjänster och hemligheter i produktion. Krypterade hemligheter hålls inom varje kontos sfär och IAM.

Förbättringar av tjänsterna och arkitekturen diskuteras kontinuerligt mellan Orange Business operations och Bokbasens DevOps genom frekvent dialog på Slack samt schemalagda möten.

Lösningen låter Bokbasen integrera ny funktionalitet snabbare genom kontinuerliga utrullningar, med högre grad av pålitlighet. Samarbetet med Orange Business har gett en stabil grund för Bokbasen att påbörja ytterligare migreringsaktiviteter mot AWS.

Grundläggande delar av projektet har hittills realiserats, de “riktigt coola” funktionerna kommer under de kommande åren. Plattformen är redan igång 24/7 och kan förse alla system med information. Nästa konkreta steget är att rulla ut den “hårdvarubaserade” nya informationsplattformen för passagerare.

Om kunden

När e-böcker gjorde sitt intåg på marknaden var Bokbasen snabb med att bygga infrastrukturen för att stödja dem, inklusive en streamingtjänst för ljudböcker. AWS-partnern Orange Business har varit värd för och skött drift av Bokbasen i dess privata moln sedan 2012.

År 2017 började Bokbasen använda AWS för lagring och omkodning av ljudfiler.

År 2018 flyttade Bokbasen sin offentliga webbplats till AWS.

2019 gav sig Bokbasen ut på ett nytt uppdrag för att digitalisera böcker och läromedel, börjande med “Digitalelev”, en produkt för hantering och inköp av digitala läromedel i skolor, och “Allvit”, en plattform för distribution av läroböcker och resurser för högre utbildning.”

bokbasen-logo