The cloud is all the rage right now.
The tech giants like Amazon and Google are almost exclusively focusing on cloud technologies.
The small companies migrate to the cloud faster than birds fly south for the winter.
So, what is so wrong with keeping your app and data on an on-premise server, safely locked in one of your offices?
Technically, there is nothing wrong with it, it is just that cloud - when done right - outperforms the benefits of the on-premise deployment and throws in some extra sugar on top.
But the key phrase is “when done right”. Just uprooting and moving your app to Amazon Web Services might not be the smartest thing to do.
In this guide we explore the art and science of migrating your application from on-premise to the cloud by answering three broad questions:
Cloud migration is the process of moving digital assets (data, apps, workloads, other business components) from an organization’s on-premise infrastructure to the cloud.
The cloud refers to all the services (both - underlying hardware, and software to run those services) which are made available to you via the internet by a cloud service provider. In contrast, on-premise means you own the physical server and software upon which you run your application, workloads, and your physical data center or data warehouse.
The cloud can therefore be thought of as a Platform as Service (Paas) or Infrastructure as a Service (IaaS). It gives you the platform and infrastructure, so your developers can spin up an app and its development ecosystem at unprecedented times.
And, migration can be thought of as moving from owning the tech stack to renting the tech stack.
But it is far more complex than that.
Migrating to the cloud does not just mean shifting from owning the server in your office to renting a server somewhere at Amazon’s data center. It means you can potentially rent 10, 100, or 1000 servers with a simple button click, without a growing pain you would experience if you tried to set up the infrastructure yourself.
Shifting from on-premise to cloud means a different way of thinking about your application. Deploying your app in the cloud unlocks virtually limitless compute resources, which can help you scale your app seamlessly.
You are no longer bound by the bare metal of your servers. Or even the software running on that bare metal.
Cloud providers allow you to switch between different software, as easy as upgrading your storage from a MySQL database to a plethora of data warehouses and data lakes. This smooth shift in software allows you to switch between architectures and data pipelines in a matter of hours, instead of spending weeks or months engineering the prerequisite technology in house. For example, you can easily move from an ETL to ELT architecture to take advantage of the acceleration in incoming data, which also speeds up your time to market and time to insights.
Beware, though, not all migrations are made the same. Depending on the cloud provider you pick, there are different considerations to keep in mind and different migration strategies.
We can organize the cloud providers into 4 groups:
So, why would you migrate from on-premise to cloud? The answer lies in the multiple advantages public cloud platforms offer to you.
Use cloud migration to take advantage of key cloud capabilities:
The cloud is commonly praised for its cost savings and its superior safety. But not everyone agrees on those advantages. Let us dive deeper into those two aspects of cloud technologies to separate the myths from the facts.
IT infrastructure is not cheap. If you invested heavily in your own on-premise infrastructure, it might seem like a waste of money abandoning the server to migrate to the cloud. But if you plan to grow your business, you need to incorporate the future cost of maintenance for your own IT infrastructure as well as all the additional server, storage, network, and IT labor costs for upkeeping your IT operations.
This is why cloud infrastructure is cheaper when looking at the total cost of ownership. For one, you incur no maintenance costs. All the hardware and software maintenance and updates are done at no cost to you by the public cloud provider.
But more importantly, public cloud providers tie pricing to usage. Whilst you would always have a rather high fixed expense to keep your infrastructure up and running (whether your customers use your app or not), cloud resource scale with usage. Thus, you save money by automatically downgrading cloud resources when not in use, without losing business continuity.
One thing needs to be noted, though. To gain the advantage of the cloud’s price elasticity, you need to configure it accordingly. It pays off to train your personnel or to hire cloud experts, as they will be able to configure your deployment according to the best standards from the get-go. Without this know-how, you cannot unlock the cloud’s cost-saving potential.
Cloud services undoubtedly offer state of the art security measures. From GDPR to other data protection regulations, the cloud providers offer their services in line with all the regulatory compliance requirements.
Because their business depends on security, cloud providers usually deploy safe patches and state-of-the-art solutions faster than any singular company. Operating at scale allows them to hire devoted security experts, which is usually outside of budgets for medium and large businesses. Having a devoted in-house department allows them to ensure security on a higher level than an average business.
So, is the cloud safer by default? Not really. If on-premise is mostly concerned with security threats from the outside (hackers, breaches, etc.), cloud security most of the time is safe from them. The bigger concern is security threats from the inside.
Because the cloud allows everyone to collaborate at scale and access resources across silos, your data is exposed to leakage by your employees. It is important to make everyone aware of how to share and collaborate safely within the cloud, which usually involves different mechanisms than an on-premise deployment.
So, should you migrate to the cloud? If you cannot foresee yourself using the benefits cloud providers offer, then don’t. On-premise deployment has been the solution for ages, and there is no need to push onto new technology if it offers you no benefits.
If, however, you are impatiently curious about the potential the cloud can unlock for you, follow the step-by-step migration guide to unlock the full extent of what the cloud has to offer.
Here we look at a step-by-step guide on how to migrate your workloads, data, and app to the cloud.
Before any migration happens, you need to plan for migration of your digital assets.
Set goals and KPIs
Evaluate why you are migrating. Start by setting goals and key performance indicators (KPIs) to assure a cloud migration makes business sense. Do not just trust internet guides, measure performance yourself. If you plan to save costs, calculate the total costs before and after cloud migration. If you plan to migrate to scale, calculate the uptime during high traffic spikes on premise vs on the cloud.
Like any other IT project, cloud migration is bound and shaped by your budget. Thankfully, cloud providers offer (very innovatively named) pricing calculators, which help you assess the costs you can expect after migration:
Define production switchover mechanisms
You do not want to lose business continuity when migrating, so carefully plan how the switchover of services is going to happen. You could either simultaneously turn on premise production off and turn it on on the cloud, carefully migrate the entire code and data to the cloud and turn it on a couple of times to test before making the kill-switch decision, run both on premise and cloud apps in parallel by redistributing traffic between them, or migrate modules live while running operations.
The choice will ultimately depend on your architecture and migration strategy.
Re-architecture your application
Depending on your migration strategy (more below), you might need to re-architecture your application to be able to move to the cloud:
Re-architecturing code might not be necessary, but it is part of a plan of what aspects of your digital assets are migrating and what are not, according to migration strategies.
The day has come to make all the levers move.
There are three main migration strategies:
No matter which strategy you pick, it is important to keep business continuity in mind. With the right migration strategy, your users and customers will not notice you migrated from on-premise to the cloud, but rather, will experience the migrated applications with limited or no interruptions.
After the deed is done, monitor migrated applications. Monitoring allows you to optimize your applications and leverage cloud services to their full potential.
Each cloud provider offers multiple tools and services to ease the pains of migrations.
For example, Amazon Web Services offer plenty of tools to speed and ease your migration to AWS:
Keboola is the data operations platform that allows you to fully access cloud-native technologies and connect their benefits with your on premise solutions.
What does that mean? As a data operations platform, Keboola acts as the layer between the physical infrastructure of your deployment and the tools your employees use.
This allows you to:
But Keboola is more than a data migration tool. It is also a fully-fledged data ops platform, with multiple components that accelerate your time to insights. Within the data ecosystem of Keboola’s components, you can: