Update: Google Stackdriver is now Google Cloud Logging and Google Cloud Monitoring. BindPlane will continue to integrate and support both of these products.

Even though the cloud isn’t the new kid on the block, enterprises are paying more attention to how to migrate their resources to the cloud. Companies have different reasons for wanting to migrate to Google Cloud Platform (GCP), especially if they’re planning to modernize their workloads with containers. But containers aren’t the only reason why GCP is a good fit for enterprises. In this post, I’ll demonstrate some of the other good services, too.

I remember watching one lightning talk a few years ago about a company that migrated to the cloud. The speaker said, “Before moving to the cloud, I had 20 problems to solve. Now I have 100.” A colleague also told me once, “If we move to the cloud, it will cost us more money.” And what these two persons meant to say is that most applications aren’t prepared to go to the cloud.

For that reason, I want to share a few strategies and services from GCP that can help you migrate your workloads from on-premises to GCP from the architecture perspective.

Let’s get started with the ways you could do it.

Consider Architecture Dependencies

It’s essential that we set the basis of what makes the cloud special. The first thing to notice is that we usually take for granted that on-premises servers are going to be there. Maybe not forever, but we didn’t use to think that the server might go down. In the cloud, a virtual machine (VM) can be terminated abruptly when there’s an issue in the underlying infrastructure. Or you might receive a notification for planned maintenance, where you’ll need to avoid any downtime in your system, like recreating the VM.

Another critical aspect of the cloud is elasticity. When your workloads are running out of capacity, instead of adding more memory or CPU (scaling vertically), what happens in the cloud is that you add more copies of the system (scale horizontally). Adding more nodes allows you to expand, or shrink down, VMs on demand, taking advantage of GCP’s pricing structure—per-second billing. You only pay for what you use and need.

Most of the time, applications are hard to migrate because they’re tightly coupled with the infrastructure or with licensing. And at the beginning, it might be costly and complicated to decouple dependencies by replacing them with GCP services. But this is the reason why some workloads are harder to migrate than others.

You can read more about how to move to the cloud with the Google Cloud Adoption Framework.

Before diving into each strategy and service, let’s talk about pricing.

Choose the Right Size

Before you start migrating workloads to GCP, you need to run an assessment to determine how much you’ll be paying in GCP, depending on the migration journey you choose. Whether you pick a lift-and-shift or a rebuild solution, GCP has a set of tools and services that will help you control the monthly bill. You’ll have built-in reports, customized dashboards, options to configure the budget with alerts, recommendations, and much more. Choosing the right size of the resources will have a financial impact on your migration. You need to assess this before starting.

Google has published a few white papers to help customers avoid overspending their money in the cloud. For example, there’s a practical guide to financial governance in the cloud. You can also access a video series about best practices for monitoring and managing costs. Google’s documentation is pretty good for gaining a better understanding of how to organize your cloud resources.

In case you need to work mainly with VMs, there’s a guide of recommendations on how to size the VMs in GCP. And to continue adjusting the size of your infrastructure, you can integrate the Stackdriver service. Install the agent in the VM and get better insights on how to pick the right size. I’m focusing on VMs because usually that’s the first type of resource that enterprises migrate to the cloud. And as I said before, choosing the right size will allow you to keep costs down. Maybe on-premises you could be allowed to over provision servers, but in the cloud that has a price.

Now let’s talk about some strategies you might consider and which GCP services can help you with the migration.

Lift and Shift With Velostrata

One of the first options you have in GCP to migrate from on-premises to GCP is Velostrata. Velostrata is a software that integrates with vSphere to migrate VMs to GCP in a streaming way. This means that you can start testing the workloads in GCP during the migration. The application will be available as soon as the migration finishes. And in case you need to roll back, that process is as easy as the migration was. At Google Cloud Next 2018, the creators of Velostrata gave a talk about the product and did a small demo.

With Velostrata, you don’t need to install an agent in each server you want to migrate. You need only to install the Velostrata manager, set up the proper permissions in GCP, configure Velostrata to communicate with vSphere on-prem, and ensure private communication through a VPN tunnel or via Interconnect. On the on-premises side, you need to install the vCenter plug-in for discovery purposes. A more detailed guide is available at the official docs site.

Once everything is set up and ready, you can start migrating workloads to GCP in batches. Then, when you’ve confirmed that everything works in GCP, you can make the switch and begin to decommission your on-premises infrastructure. Or maybe you’ll decide that for specific applications you want to have a hybrid approach.

Migrate and Modernize With GKE On-Prem

Another option you have to migrate to GCP is to use GKE On-Prem, but only if you’re working with—or plan to use—containers and Kubernetes. This option is for those who’ve tried GKE but for any reason can’t move entirely to the cloud. Or maybe you’re in another cloud, and you’re planning to move to GCP in the future. In any case, you can start with GKE On-Prem and then decide where to host your workloads.

Another benefit is that you’ll have one place to manage your Kubernetes clusters in the GCP console. You can orchestrate from the console application updates, cluster upgrades for security reasons, enforce control access with IAM, and many other features.

Because this is a new product, Google has been working on how to sell this service. For this reason, they’re offering GKE On-Prem as part of Anthos. So let’s talk about Anthos.

Rebuild, or Go Hybrid With Anthos

Anthos (formerly Cloud Services Platform) is a software stack managed by Google where you can work with different products from GCP in your datacenter. Anthos works if you’re having problems operating multiple environments—as a hybrid approach for legacy workloads. And because you’ll be working with APIs natively, the team will get the benefit to automate and spin up environments more quickly, as you’d do in GCP.

When Google launched GKE On-Prem, it was limited to only those organizations that were working (or planning to work) with Kubernetes. But with Anthos, you also have the marketplace available, which means that you can spin up a VM of Gitlab in your datacenter in the GCP style. The GCP Marketplace is a set of solutions that third parties have built to deploy their services in GCP. As I mentioned before, Gitlab is one, but you also have Jenkins, WordPress, NGINX, and many others.

As of now, the following GCP services are available with Anthos: GKE, GKE On-Prem, Istio on GKE, Anthos Config Management, Anthos Migrate, and the GCP Marketplace. But you can also integrate with Stackdriver, Cloud Build, and Binary Authorization. In a nutshell, you’d probably have everything you need to start your journey. The set of services available will increase as the software offering matures in time. For example, Anthos was officially announced at the Google Cloud Next 2019.

What’s crucial here is that with Anthos Migrate, you’ll be able to modernize your workloads to containers. The idea behind the project is that you can take your on-premises VM (initially only Linux) and “convert” it into a container so that later you can deploy it to Kubernetes. Anthos is a new product, and to get started, you need to contact Google sales.

Many Ways to Migrate to GCP

As you can see, there’s not just one way to migrate from on-premises to GCP. You can decide whether you want to modernize your workloads with containers, use only cloud services, or have a hybrid approach. I’d advise you to take an in-depth look into each of the services and solutions that I shared here. Then, choose the solution that works best for you now. Look for assistance from partners; they could help you save some money and train the team.

Lastly, consider the five phases of migrating to GCP, and remember that it’s a journey. And if you want to make the most of the cloud, you better adapt your applications for elasticity and fault-tolerance.

