Teknikken bag
Valget faldt på en containerized platform og på Amazon Web Services (AWS). Infrastructure-as-code var givet, og til at sætte hele løsningen op valgte vi Terraform.
For at sikre maksimal skalérbarhed og minimalt behov for at sidde og styre det, faldt valget på en en container baseret løsning hostet i AWS Elastic Container Service(ECS) Fargate. Løsning er en pay-as-you-go fully managed service, der giver DevOps mulighed for at skalere antallet af containere nærmest uendeligt.
Applikationen består af forskellige services, der med hver deres ECS task definition skalerer individuelt efter behov.
Skalering af applikationen foregår via custom CloudWatch metrikker, der skalérer efter behov, baseret på hvor mange brugere der på et givent tidspunkt benytter løsningen.
Det betød også, at selve databasen skulle skalere dynamisk. Valget faldt her på AWS Aurora serverless, der ligeledes er en fully managed database service, hvor patching og skalering håndteres af AWS.
Der er opsat AWS Codebuild og AWS Codepipeline til CI/CD, som dels sikrer, at der bygges Docker containere ved hvert commit, samt at applikationen kan deployes automatisk.