Our Cloud (Native) Migration Journey
Read in detail how we moved GatewayAPI to the Google Cloud Platform (GCP) via Kubernetes as well as our journey to go fully Cloud Native.
Lift and shift
Like many others who move to the public cloud, our journey started with a ‘Lift and shift’ operation. This is where you move the application and its data to the cloud, but do not re-design or refactor the application. This is a tried and true method where you gain many of the benefits of the public cloud with minimal investment.
We did, however, take it a bit further, since we were also replatforming at the time where we moved from FreeBSD Jails (a concept similar to containers, but for the FreeBSD operating system), to Docker Containers.
Public cloud
Throughout most of ONLINECITY.IO’s history, we have been running on both bare-metal servers, co-located in premium Danish data centres, and on Amazon Web Services (AWS). We have seen this mix of cloud and metal as a healthy compromise between performance and cost.
Technology is moving at an incredible pace and when we re-evaluated this decision, we chose to go ‘full’ public cloud, gradually cutting the last ties to physical hardware. Simply put the cloud is at a place now where we can get better performance at a lower cost for our use cases.
Our cloud of choice is the Google Cloud Platform (GCP), which offers the very best performance, especially on networking, which is vital for GatewayAPI. Their ‘premium-tier networking’ improves our connectivity to both customers and telecoms.
Besides performance and connectivity, Google Cloud is a leader in the field of security with excellent technologies such as zero trust networks and encryption at rest by default. Write to gdpr@gatewayapi.com if you wish to receive more details on the security of the Google Cloud Platform.
When it comes to compliance and GDPR, Google is very well covered. We process data through their European data centres in Belgium, the Netherlands, Ireland, Denmark and Finland.
Cloud Native
We aim at making GatewayAPI and our other services fully Cloud Native. Cloud Native is a massive movement by big and small tech that is revolutionizing the software industry.
Cloud Native is defined as:
Cloud Native technologies empower organisations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes, frequently and predictably, with minimal toil.
GatewayAPI has been built from the ground up with a microservice architecture, which is in line with the principles of Cloud Native, but we were lagging behind on other technologies, especially containers and automation. So as part of the cloud migration, we adopted one of the most influential pieces of Cloud Native tech: Kubernetes.
Kubernetes is an open-source container-orchestration system for automating application deployment, scaling, and management and was originally designed by Google. By using this technology, we are now very close at being fully Cloud Native!