DevOps ble nøkkelen til suksess
DevOps representerer et kulturskifte som samler utvikling og drift i ett team. I stedet for at hver programvareversjon inneholder mange potensielt problematiske endringer som slippes samtidig, oppfordres teamene til å slippe små endringer oftere. Dermed blir endringen mindre merkbar samt enklere å teste og implementere.
Basefarm hjelper kundene med DevOps-virksomheten og store teknologiske endringer.
Kunden valgte en distribusjonsstrategi som omfattet å
- bygge én artefakt (artifact) for alle miljøer
- slippe nye versjoner tidlig og ofte
- bruke rullende distribusjon for å erstatte eller oppgradere tjenester gradvis
- alltid reparere feil ved å rulle fremover til neste versjon
Det var viktig for Bokbasen at deres eget DevOps-team hadde mulighet til konsistent distribusjon i alle miljøer, inkludert produksjon.
Løsning med IaC og AWS
Infrastructure as Code
Ved hjelp av Infrastructure as Code-teknologi (IaC) kan Basefarm og Bokbasen automatisere distribusjon av infrastruktur, applikasjonstjenester og CI/CD-pipelines på tvers av miljøer.
HashiCorp Terraform brukes til å distribuere Bokbasens infrastruktur. Selvbetjente Terraform-maler brukes til rask og enkel oppretting av nye pipelines.
Mange gode IaC-moduler fra Hashicorp Terraform-registeret og fra Basefarm har forenklet overgangen. Bruk av IaC sikrer en konsistent og repeterbar metode for distribusjon og administrasjon av infrastruktur på tvers av miljøer.
Spring Cloud Config og AWS Systems Manager Parameter Store brukes til å lagre konfigurasjonen og sørge for at hemmeligheter, for eksempel sikkerhetsinformasjon, er kryptert og revidert.
Deployment av pipelines
Basefarm Professional Services har samarbeidet med Bokbasen om å utvikle pipelines for å bygge applikasjonsartefakter (application artifacts) og distribuere mikrotjenester på tvers av Bokbasens test-, preproduksjons- og produksjonskontoer, integrert med følgende sentrale AWS-tjenester:
- Lambda
- Fargate
- Batch
- API Gateway
- statiske nettsteder på S3 (ved hjelp av CloudFront CDN)
Når et medlem av DevOps-teamet igangsetter en bestemt gren, utløses pipelinen som bygger artefakter (artifacts), for eksempel Docker-bilder som inngår i tjenesten, og sender disse bildene til containerregisteret. Pipelinen distribuerer deretter containeren til testmiljøet. En pretest med RunScope startes, og resultatene av testen kontrolleres manuelt av DevOps-teamet før de godkjenner distribusjon til preproduksjonsmiljøet. Der gjennomføres samme pretest samt ytterligere kontroller før distribusjon til produksjonsmiljøet godkjennes. DevOps har bare lesetilgang til preproduksjons- og produksjonsmiljøer. Pipelines har rettigheter til distribusjon på tvers av kontoer avhengig av IAM-roller.
Databaseskjemaer endres også som en del av deployment av pipelines med bruk av Flyway.
Lignende pipelines opprettes for CI/CD av batch jobs, Lambda-funksjoner og S3-driftede nettsteder.
CI/CD: Fargate-driftede containere

CI/CD: Lambda-funksjoner

CI/CD: batch jobs

CI/CD: statiske nettsteder

Produkter som brukes i DevOps-verktøykjeden:
Distribusjon
Konfigurasjon
Overvåking
Testing
Versjonskontroll
Varsling og samarbeid
Fordeler med AWS
Løsningen muliggjør selvbetjening av CI/CD-pipelines der kundens DevOps-team har fullstendig kontroll over IaC-definerte pipelines uten direkte tilgang til preproduksjons- og produksjonsmiljøer.
Designen støtter et skille mellom kontinuerlige forbedringer (continuous improvements) av mikrotjenester og administrasjon av tjenester og hemmeligheter i produksjon. Krypterte hemmeligheter holdes innenfor området og IAM-en for hver konto.
Basefarms driftsteam og Bokbasens DevOps-team diskuterer hele tiden forbedringer i tjenester og arkitektur både via Slack og i planlagte møter.
Løsningen gir Bokbasen mulighet til å integrere ny funksjonalitet raskere gjennom kontinuerlig distribusjon, med større grad av pålitelighet. Samarbeidet med Basefarm har gitt Bokbasen et solid grunnlag for å iverksette ytterligere migrering mot AWS.