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.
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.
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.