← All Articles

How do you migrate your application to the cloud for the first time?

Kasia HoffmanKasia Hoffman
Apr 12th 23

How do you migrate your application to the cloud for the first time?

You don’t have to be an expert to deploy your application to the cloud - 24% of Cloud 66 customers used a PaaS like Heroku in the past and cut their bills by up to 60% after moving to the cloud. Additionally, they gained more control over their own infrastructure and more flexibility in their deployments. Let’s look at the benefits and challenges that you might face during the cloud migration and walk through the simple three-step process for moving your infrastructure to the cloud with Cloud 66.

PaaS vs Cloud: The benefits and challenges of cloud migration

The main difference between Platform as a Service (PaaS) and cloud computing, is that PaaS solutions allow developers to host applications without the need to configure any infrastructural components or services - a developer simply plugs their app into the platform and the PaaS takes care of the rest. There are drawbacks, however. PaaS offerings tend to get expensive quickly as you scale up, and give you very little control or customization over how your app is delivered to the world.

Cloud solutions, on the other hand, are far more flexible and generally cheaper to scale but require the configuration of components like servers, load balancer, and firewalls.

In a nutshell, PaaS offers ease of use and saves time as it takes care of everything, whereas the cloud is a cheaper option that offers flexibility and control over your own servers, but requires more input from developers.

Let’s start with the cloud benefits:

Cost savings - cloud computing eliminates the need for significant capital expenditures for hardware, software, and maintenance, reducing costs and allowing you to focus on your core business.

Scalability - the cloud allows you to scale your resources and infrastructure up or down as needed, enabling you to quickly and easily adjust to changes in demand.

Reliability - with the cloud, you benefit from the provider's investment in reliable infrastructure, redundancy, and disaster recovery, resulting in improved reliability for your applications and data.

Performance- the cloud enables you to quickly provision new resources and deploy new applications, reducing the time and effort required to bring new services and products to market.

Global access - with the cloud, you can access a global network of resources and expertise, including a wide range of services and tools, to support your business goals. The range of regions that the cloud can offer is also important to meet data storage location requirements.

Security - many cloud providers invest heavily in security, providing you with the latest security features and protections to help keep your data and applications secure.

The challenges: before moving your app to the cloud, you should consider:

  1. Cloud provider - find a cloud provider that best fits your needs and requirements in terms of services, cost, performance, scalability, and security. For example:
    • If you are required by law to hold data in one country, you might consider a provider like Hetzner Cloud in Germany and Finland, Latitude.sh in Brazil or OVH in France.
    • You are thinking of a multi-cloud approach. For example, mixing Google Cloud with a cloud-like Vultr, or with a bare-metal cloud like Latitude.sh.
    • You choose your provider based on your team's skills - for example, they worked with AWS in the past.
    • If you are looking for value you might consider DigitalOcean, Vultr, or Hetzner Cloud.
  2. Application architecture - ensure that your application architecture is cloud-friendly and can be easily scaled and managed.
  3. Data management - consider how you will manage and store your data in the cloud, including backup, recovery, and data migration strategies. This is one of the most challenging items on your list to consider.
  4. Compliance and security - make sure that your cloud infrastructure meets regulatory and security requirements and that you have proper security measures in place, such as encryption and access control.
  5. Cost - running an application in the cloud is more cost-effective than a PaaS or self-hosting. However, moving a legacy application to the cloud carries some upfront costs. You should include the cost of cloud infrastructure, data transfer, and ongoing maintenance and management in your migration plan.
  6. Performance - evaluate the performance and availability of your application in the cloud, including testing and monitoring to ensure that it meets your requirements.
  7. Migration strategy - Create a checklist and plan for your migration to the cloud. Include testing, data migration, and a rollback plan in case of issues.

How can Cloud 66 help with migrating to the cloud?

PaaS vs Cloud 66

Let’s clarify Cloud 66’s offering, by explaining how it differs from a traditional PaaS. The main difference between a Platform as a Service and Cloud 66, is that Cloud 66 is a “PaaS on your own cloud”. Cloud 66 offers PaaS-like functionality but doesn’t provide servers. Instead, it allows you to use any cloud and then takes care of the deployment, management, and maintenance of your apps.

Cloud 66 is designed to support businesses moving their applications from a traditional PaaS to any cloud provider, and is natively integrated with AWS, GoogleCloud, DigitalOcean, Hetzner Cloud, Azure, Vultr, OVH, Latitude.sh, and Linode. Cloud 66 provisions native components for each cloud provider, wherever possible. If your cloud provider doesn't support a particular component, Cloud 66 replaces it with an industry-standard open-source solution.

The benefits of migrating with Cloud 66

Cloud 66 automates the deployment of your applications to the cloud, reducing the time and effort required to migrate and deploy your applications. It provides a centralized management platform for your applications and infrastructure, allowing you to manage all aspects of your cloud environment from a single interface (and command line).

By leveraging the cost-effective and scalable resources of the cloud, Cloud 66 helps you reduce your infrastructure costs and focus on your core business. Additionally, if you are eligible for any free cloud credits, you can easily utilize them via Cloud 66.

Cloud 66 also provides support and expertise to help you migrate and manage your applications in the cloud, ensuring a successful migration and ongoing operations.

How do you move a legacy application from PaaS to the cloud?

Migrating a legacy application from PaaS to the cloud can be a complex process, but with careful planning and execution, it can be a valuable way to modernize your application and take advantage of the benefits of cloud computing. Here are the general steps to follow:

  • Assess the current state of your legacy application, including its architecture, dependencies, and resource requirements. This will help you determine the scope and requirements of your migration project.
  • Plan the migration, including the target cloud platform, deployment strategy, and timeline. Consider factors such as compatibility with the cloud platform, scalability, security, and cost.
  • Refactor your application code as needed to ensure compatibility with the cloud platform. Additionally, decide on the server size you need.
  • Plan and execute the migration of your application data to the cloud, taking into account factors such as data volume, data privacy, and data security.
  • Deploy your application code to the cloud and configure the necessary resources, such as servers, databases, and network infrastructure.
  • Test your application thoroughly to ensure it is working correctly in the cloud, and to identify and resolve any issues before switching your DNS over from your existing solution.
  • Monitor your application after deployment and maintain it as needed, including updates, patches, and bug fixes.

By following these steps, you can successfully migrate your legacy application from PaaS to the cloud, taking advantage of the scalability, reliability, and cost-effectiveness of cloud computing. And by adding Cloud 66 layer you will get additional support to migrate and essentially have your own PaaS running on your own cloud.

How do you move your application from PaaS to the cloud with Cloud 66?

To start the migration you will need your application git repository, a cloud provider account, and Cloud 66 account. Once you decide which cloud provider works best for you. You will be able to move your application from PaaS to your chosen cloud provider with Cloud 66 in a three-step process.

Migrate code: Build & deploy your app's code via the Cloud 66 dashboard

Log in to your Cloud 66 account and use our dashboard to pull your code from your Git repository. Our system will analyze your code to identify the dependencies in your application. This analysis allows us to set up the necessary servers on your cloud account, configure and secure them, install the required components, and perform other related tasks.

Migrate data: import your data to your new environment

The database migration process looks different for each data provider. For example, let's assume we move our PostgreSQL or MySQL data from Heroku:

PostgreSQL - from your Heroku toolbelt, create a database backup URL by running heroku pgbackups:url. Next, visit your Application Overview and click the Import Heroku data link. Paste the URL provided by the toolbelt into the field, and click Import Heroku data.

MySQL -to start the migration, run a MySQL dump of your current database. Check out the ClearDB documentation for more information.

$ mysqldump -u [username] -p[password] [dbname] > backup.sql

Next, to upload the mysqldump file to your stack database server use Cloud 66 Toolbelt and remember to replace the fields below with your values.

$ cx upload -s "[stack_name]" --server [database_server_name] backup.sql /tmp/backup.sql

Now use Toolbelt to SSH to your server.

$ cx ssh -s "[stack_name]" [server_first_name]

Finally, import your backup into the database using the command provided. To find the generated username, password, and database name, go to the Application Overview dashboard and click on the database server.

$ mysql -u [generated_user_name] -p [generated_password] "[database_name]" < /tmp/backupfile.sql

Note: Cloud 66 supports the following databases - MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch, RabbitMQ, SQLite (only in development environments), GlusterFS, and InfluxDB - with no need for additional configuration after deployment.

Traffic: redirect traffic to the new endpoint

The last step is to point your public DNS at your new Cloud 66 application. To redirect your traffic to the new version of your app, log in to the admin console for your DNS provider and update your CNAME records to point to your new server. Check out our Configure your DNS documentation for more information.

Now that you have migrated the application, take advantage of Cloud 66 services to manage your application on the cloud with persistent storage, custom network configuration, zero downtime deployments, blue/green and canary releases, full databases support, replication & managed backups. With no team size limits, Cloud 66 offers powerful access management, traffic control, firewalls, SSL certificate management, and more.

Note: For the cloud, migration example check out our posts on How to move from Heroku to Cloud 66 and How to move from Netlify to Cloud 66.

In summary, Cloud 66 can simplify the process of moving from PaaS to the cloud, offering more deployment options, infrastructure control, and cost savings. With features like DevOps automation, integrated monitoring, and customizable management, Cloud 66 provides a great platform for developers to migrate their applications to the cloud.

Try Cloud 66 for Free, No credit card required