DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Because the DevOps movement has redefined engineering responsibilities, SREs now have to become stewards of observability strategy.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Related

  • The Disruptive Potential of On-Device Large Language Models
  • Revolutionizing Billing Processes With AI: Enhancing Efficiency and Accuracy
  • Mitigating Bias in AI Through Continuous Monitoring and Validation
  • The Role of IoT-Enabled Predictive Maintenance in Enhancing Operational Efficiency

Trending

  • Building a Real-Time Audio Transcription System With OpenAI’s Realtime API
  • AI Speaks for the World... But Whose Humanity Does It Learn From?
  • Using Java Stream Gatherers To Improve Stateful Operations
  • Implementing Explainable AI in CRM Using Stream Processing
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Deployment
  4. Mastering Cloud Migration: Best Practices to Make it a Success

Mastering Cloud Migration: Best Practices to Make it a Success

No two cloud migration processes are identical as each system has unique requirements. To get started, check out this article for tried and tested practices.

By 
Alexander Shumski user avatar
Alexander Shumski
·
Nov. 27, 23 · Opinion
Likes (1)
Comment
Save
Tweet
Share
2.8K Views

Join the DZone community and get the full member experience.

Join For Free

Cloud migration projects are picking up pace as top executives are pushing for more efficiency and cost savings. And it may be tempting to say that cloud is the answer and that it’s the way to go for everyone. It may be tempting, but it’s not quite true. Throughout my professional career as an engineer, I’ve seen different scenarios, from middle-size companies deciding to move to the cloud to enterprise-grade corporations making a choice in favor of on-prem infrastructure. And I know that path is anything but straightforward.

If your team is getting ready for cloud migration, this article will provide you with an actionable approach to the task at hand.

To Cloud or Not to Cloud, or 3 Questions To Answer Before You Build Your Cloud Migration Strategy

The story of cloud vs. on-prem is often seen through the lens of convenience vs. control. With the cloud, you can choose the operating system and manage patches, but you can’t really control the hypervisor or hardware performance. So, whatever path a company decides to go, there must be clear-cut reasons and objectives that the business is trying to achieve.

I suggest answering the following three questions to ensure that cloud migration is the right move.

1. How Critical Is Real-Time Performance for Your Application?

Solution performance is always important; there is no arguing with that. But for some network-intensive applications, real-time performance becomes mission-critical. Think of an ad-tech platform where latency is the biggest enemy – anything above 100 milliseconds can translate into lost bids, ad space, and revenue. Thus, any delay caused by the network interface, core, or driver can become a serious problem. Your on-prem data center is the only place where you can truly control those things by changing the system core, installing necessary patches, and changing the driver or the network interface to get maximum performance.

2. Do You Have a Heavy but Highly Predictable Workload?

Now, let’s consider compute-intensive apps that handle large-scale data analysis, statistics calculation, machine learning model training, and other tasks that require high computational power. With these types of solutions, your hardware is tirelessly working almost at maximum capacity. And the cloud computing cost of running these CPU-intensive apps can be extreme.

3. Do You Have Seasonal Spikes in Demand?

The problem with on-prem data centers is that you can’t immediately scale up if you experience a spike in traffic. To do that, you will first need to physically add new hardware. But in the cloud, scaling up or down can be done within seconds with no disruption to business operations. So, if you regularly experience seasonal demand spikes (e.g., before Christmas), the cloud will give you the necessary flexibility and agility to meet that demand.

Cloud vs. On-prem


How To Approach Cloud Migration

Now, we have come to the most interesting part – moving your system to the cloud. If you have a Salesforce-based application, it is easy to find a cloud migration tutorial on the Internet. However, if your ecosystem consists of a Salesforce platform and a custom-built solution, all connected through tailored ETL processes, there can be no ready-to-use guide. So, keeping in mind that there is no one-size-fits-all approach, what do you start with?

1. Perform a Baseline Assessment

Quite logically, the first step would be to understand what you are dealing with – what technologies and databases your solution uses and what other systems and components it is integrated with.

We have already talked about how the cloud takes over the control of your solution’s operational environment. So what if your system directly interacts with the cryptography board or uses the license linked to the hardware ID? It is essential to understand early on what elements and integrations are critical for the overall system operation. 

2. Prioritize Migration Queues

As we have discussed earlier, cloud migration, just for the sake of it, is never a good idea. There must be valid reasons and tangible goals a company wants to achieve with this project. At the same time, during the preliminary baseline assessment, we have uncovered where the greatest problems during migration can arise. When we match these things, we can prepare an effective migration plan that would prioritize the most important issues. For instance, if the main objective of moving to the cloud is to resolve scalability bottlenecks, then the system that needs scaling will be the first in line to migrate to the cloud.

3. Map Out Dependencies

Once you know what to move to the cloud first, you need to understand what to do with dependencies. Let’s say your application uses three databases: one database is used exclusively by your app, so it’s easy to migrate it to the cloud, but the other two are shared with other systems.  The question is, what are you going to do with these databases, as well as the systems that use them?

Well, there are different options here. In some cases, you can set up a shared network infrastructure by extending your on-prem data center to the cloud through a VPN. Or you can migrate a database to AWS, and your solution will easily retrieve data from there. However, data migration to the cloud can be difficult if you have lots of it. Also, since you can’t disrupt the system’s operation and related business workflows, you will need to spin up and configure a replication instance, and only then can you set up migration queues.

4. Choose the Right Strategy

The simplest cloud migration strategy is to lift and shift. If your solution is hosted on a virtual machine on a server, the easiest way is to take a VM image and just transfer it to the cloud. However, there is one caveat to it – this strategy incurs significant operational costs. When you launch a virtual machine, you pay for the entire time of its operation, no matter whether it actually runs or not.

If lift and shift is not your option, you can break the system down into components. For instance, if your database is running on a virtual machine, you can move it to a new virtual machine in the cloud or use managed services for it and then reconfigure the connection string for this database. As a result, you not only migrate your database to the cloud but also boost availability as Amazon services run in different geographical areas.

Another way to approach your cloud migration strategy is to look at whether your solution is a monolith or has a client-server architecture with a front-end client app and a number of APIs. If yes, then these APIs can be hosted on separate virtual machines. Or you can also refactor the backend to Lambda functions, moving a step further to the serverless architecture.

Wrapping Up

As it is clear from today’s discussion, cloud migration is a challenging yet fascinating topic. And since every solution is unique, with its own tech stack and dependencies, there is no one single guideline or tutorial for cloud migration. However, there are best practices – do not neglect your baseline assessment, prioritize migration queues in line with business needs, identify all dependencies, and prepare the roadmap best suited to your project.

Cloud computing Machine learning Network interface Data (computing) systems Virtual Machine

Opinions expressed by DZone contributors are their own.

Related

  • The Disruptive Potential of On-Device Large Language Models
  • Revolutionizing Billing Processes With AI: Enhancing Efficiency and Accuracy
  • Mitigating Bias in AI Through Continuous Monitoring and Validation
  • The Role of IoT-Enabled Predictive Maintenance in Enhancing Operational Efficiency

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!