Our journey to the cloud at giffgaff began in 2018, when we realised our datacenter capabilities weren’t enough to fulfil our ambitions as a technology company. The speed of change, scalability and reliability of both our infrastructure and applications were lacking behind our expectations.
In December of 2019, we decided to accelerate our migration path when we experienced a major database failure and our website was unavailable for almost an entire day. It was obvious that we had to move away from static long-lived infrastructure with single points of failure towards highly reliable, horizontally scalable, distributed systems in the cloud. We chose Amazon Web Services (AWS) as our cloud provider because it provided us with the greatest scale and the broadest set of services and features.
Although since 2018 all new services were directly deployed to the cloud, it took us some time to figure out a secure and durable path to the cloud for our legacy applications. We are happy to report that in early July 2021, after a year and a half of diligent effort, we have finally completed our cloud migration and shut down the remaining bits used by our legacy application in the on-prem datacenter!
We never contemplated a pure lift and shift or rehosting (i.e. moving applications to the cloud as-is), but decomposing our monolithic application into microservices that could be easily moved to cloud and that could make use of the capabilities and advantages of a cloud environment.
However, as stated before, a major database failure highlighted a number of deficiencies and triggered all the alarms. Rather than a pure rehosting, we decided to take the opportunity to make some minor changes that would allow us to take advantage of the benefits of the cloud environment. This strategy is known as replatforming.
Moving to the cloud has brought giffgaff a number of benefits. Some minor but fundamental changes in both our infrastructure and applications have made a difference in terms of reliability, scalability, performance, and even costs.
Infrastructure as a Code
Provisioning infrastructure (physical or virtual) in our old datacenter used to take something between 2 and 4…