Gofore PLC was chosen as the partner to provide the infrastructure and containerisation of the applications while Enterpay’s software development team provided the application code.
It was decided that getting the new services containerised and deployed was the top priority and the existing production environment running on Kubernetes was to be migrated to the new platform later.
CloudFormation was chosen as the Infrastructure As A Code (IaC) – tool to build the new environment from scratch. The CloudFormation stacks were split into logical collections of resources and necessary information between the stacks was passed with CloudFormation outputs.
AWS ECS Fargate was chosen as the platform to run containers as it reduced the operational complexity and operating system/Kubernetes recurring maintenance requirements as AWS Fargate takes care of the operating systems and the container runtime environment. Amazon Api Gateway was used to expose and secure Internet-facing services running in Fargate/ Lamda. ECS service discovery was used to enable services to connect to each other internally without a separate Internal load balancer.
Github Actions was used to automate the container builds and the environment specific configuration was re-configured to be injected to the container images with environmental variables. This allowed the same container image to be deployed into multiple different environments which improves reliability of the testing process. Bash scripts were used to deploy the container image to the different environments. The scripts were also written in a way that would make it easy to use the same scripts with Github Actions to automate the deployment of the images into the environments.