2Your OS May Not Be Supported on the Target Cloud
Since the market is young, it lacks some software components that would enable a smooth migration to your target cloud from your on-premises servers. It’s not difficult to start a specific Linux machine on Amazon Web Services, but your organization may have more diverse needs. Your target cloud may not support Windows, certain operating systems or virtual appliances.
3Metrics, Performance Levels Vary Greatly Between On-Premises and Cloud
Differences exist between on-premises and cloud performance, so testing resources before undertaking a migration is important. Identify the necessary resources in terms of storage, networking and computing size when you attempt a migration, and find out in advance what to expect after a migration. Performance varies even within the same cloud provider for identical instance types, so account for these fluctuations when planning.
4Networking Architecture Support Isn’t a Given
Enterprise-grade deployments involve extensive networking, using VLANs, routers, firewalls, load-balancers, broadcasting and more. Your chosen cloud provider may not have features and capabilities that support these parts of your application, or the required networking architecture. Because enterprises need these important features, you have an ecosystem of integrators and solutions to consider that can support your specific advanced needs.
5Shared Storage Is Not Currently Supported by Any Major Cloud Provider
On-premises solutions, such as storage area networks (SANs), use architectures that can’t be used on any major cloud provider to date. You may need to rethink your infrastructure to incorporate storage solutions that are better suited to the cloud, such as moving from SAN to network-attached storage (NAS).
6App/Code Infrastructure Dependency Is the Greatest Challenge
Most traditional enterprise IT migration projects are faced with a strong dependence between the application software stack and the underlying on-premises infrastructure, which is considered one of the greatest cloud migration challenges. To decouple the application/code from the infrastructure, consider solutions that make it much less painful to make that clean separation in order to move the application to the cloud.
8Costs of Running in the Cloud vs. On-Premises
9Certification and Licensing
10SLAs (IaaS vs. On-Premises)
When moving to the cloud, you need to adopt a different way of thinking about service-level agreements (SLAs). Compared with on-premises SLAs, IaaS vendors’ SLAs are presented as more of a market differentiator than as a true indicator of cloud performance. This is because it’s impossible for giant public cloud vendors to guarantee each point on the system. But this doesn’t mean the cloud isn’t a viable computing solution. Rather than relying on the IaaS vendor, understand the platform weaknesses and strengths and design your systems to cope in case of failure.
11Time Needed to Learn New Concepts, Best Practices
Given knowledge gaps, when moving to the cloud your team will have to learn a lot of new concepts, techniques, best practices, etc. It comes with a cost, so plan and consider the investment needed not only for the infrastructure, but also for the learning curve required for your staff to get up to speed on new processes. Third-party resources can also help teams utilize cloud infrastructures without the need for extensive transitions and trainings required.