Don’t just move problems from on-premises to the cloud. You will be tempted by easy migration techniques, like lift-and-shift, which simply transfers an existing system to the cloud without unlocking its full potential.
Transforming a company and its systems takes time, so be pragmatic and consider every option as a possible step, but don’t settle for mediocre solutions that won’t give you significant benefits.
You don’t need to recruit new talent or overhaul your code and dependencies to make them cloud-native for an on-premises to cloud migration. With some minor technology adjustments, your existing team can leverage a lot of the cloud benefits.
Use the cloud features and services to design a migration strategy that includes a continuous process of updating and improving your software stack.
If your on-premises software is slow, you might think of using more powerful servers. In the Cloud, you can run your software using bigger machines and keep adding more hardware until you get the right performance. However, this might not be a good idea because it may not solve the real problem and it will cost you a lot of money.
Take the time to identify the software bottlenecks before cloud migration and analyze with your team or a set of expert consultants under which circumstances and what elements have performance problems.
Most on-premises software stacks haven't evolved from their original design although the available compatible options have increased dramatically. High performance and advanced functionality are not proprietary technology anymore.
Many on-premises software solutions are based on outdated enterprise software stacks and their dependencies that limit the choice of languages, frameworks, application servers, portals, databases, and proprietary messaging systems.
To reduce the cost and maximize the benefits of moving to the cloud, you should change your expensive and outdated dependencies.
Cloud migration offers a chance to explore modern alternatives for the software stack and its dependencies. Some dependencies can be swapped with more compatible, advanced, and faster options. Application servers, database servers, and messaging systems are good examples of replaceable components.
We experienced a significant drop in cost, and a boost in application speed and reliability when we migrated our on-premises applications to the cloud and replaced our costly commercial database vendor with Postgres and our proprietary application servers with Firefly.
Our development process also improved with quicker software delivery and better and simpler ways for developers to test and debug code.
If your on-premises software is not secure enough, you can take advantage of the many security features and services that the cloud offers, see Is moving to the Cloud safer than staying on-premises? for some benefits.
In my experience, software that is not secure or only partially secure carries other problems that make it unsuitable for an enterprise. Moving to the cloud will give you options to improve security, but running insecure software in the cloud is as bad as running it on-premises.
Use this opportunity to fix security problems and adopt common authentication, authorization, and observability practices.
Cloud companies and their partners provide free infrastructure and professional services to help you migrate your company to the cloud. But you should also remember that your team will have to manage and update the infrastructure after the project is done, and your company will have to cover the infrastructure costs.
Make sure your team participates in the migration process and knows the implications of each choice in terms of maintenance and cost. Don’t let external consultants handle everything by themselves without your team’s feedback.
Your team’s existing on-premises technical skills can be enhanced with cloud-specific training.