
Common challenges of shifting to the cloud
As the race begins, every enterprise wants to be in the race getting to the cloud. There are several cloud providers with various on-demand services, but organizations do not know where to get started. Integrating the cloud with your on-premise data center requires various considerations, and it's not simply lift and shift. When you consider the cloud, a detailed assessment will be needed to see if existing application is a better fit for the cloud movement or whether it should be re-designed depending on the cloud capability and services. Based on my experience, most applications need some kind of rewriting to make them suitable for the cloud environment.
Here are some of the known challenges that have been noticed:
- Incompatibility: Can I lift my application and database and put them in the cloud to work? It is the first question that organizations want to know. There is often disconnect between what they have in-house and how they would be consuming in the cloud service. In most cases, lift and shift may not work and a detailed assessment would be needed by the experts.
- Security: Security is a concern whether you are on-premise or in the cloud. How security is perceived and what level of data protection would be required decides whether a public or private cloud would be suitable. The security of your cloud environment is a shared responsibility between you and AWS. AWS owns the underlying platform security, whereas you would be responsible for the application and database side of the security. I would say that the cloud is more secure than your on-premise data center, as AWS has heavily invested in the security and compliance, as they know that if they want to be successful as a provider, they have to ensure that security is not compromised at any stage. As a consumer, it is of the utmost importance to review the security elements, which would be more appropriate to your applications and enterprise.
- Reliability: For a reliable environment, when designing your application and databases, you should consider the failure aspects of your cloud environment. Most of the cloud providers have a built-in fault tolerance and the disclosed SLA of 99.95% to 99.99% availability of various services. What is most important is to consider the designing aspects of your application reliability and fault tolerance. Whether cloud applications should be self-healing or the cloud infrastructure should provide resiliency services to applications that have not been designed for fail is something to be discussed and reviewed.
- Network: With the proliferation of the internet and availability of the cloud provider's data center in each part of the world, network bandwidth would not be an issue if you are planning to house your production application in the cloud. But there are several aspects you should consider about accessing your environment from your on-premise user base for maintenance or deployment.
Overall, there is a high possibility that you maybe still in a position to adopt the cloud for each application that you run on-premise and still ensure that all the aforementioned roadblocks are addressed. The cloud is becoming more popular and fancier nowadays and I am sure that every cloud provider could take it to the next level, ensuring every application can be run on the cloud.