Per a white paper by Gartner on 'Cloud Wars: Comparing Major Cloud Platform Providers' that points which IaaS Cloud providers are best for IT Managers or CIOs, while selecting a Cloud Provider, almost 96% prefer to use AWS if they are looking for ecosystem, features, marketplace, and scale.
Enterprises are adopting hybrid and multi-cloud environments for various reasons including, but not limited to data compliance, vendor dependency, and technology exposure. These enterprises are already aware of the challenges in migrating on-premise applications to cloud. In a multi-cloud environment, the challenge becomes even greater due to different standards maintained by cloud providers.
The Approach to Migration
Cloud migration may be approached in 3 different ways:
- As-is: Migrate the applications to the cloud without modifications, as-is.
- Application modification: Perform minimal modification to applications to run on cloud.
- Re-architecting: Rebuild the entire application (Cloud Native).
Enterprises adopt a migration approach that best suits their current technology landscape, maturity, and timelines. However, in a multi-cloud environment, an organization must additionally factor in the workload’s ability to run on a diverse environment. Some considerations are:
- Traditional applications are tightly coupled – be it application components or infrastructure components
- Most applications are OS specific and are good candidates to run on physical or virtual machines on Datacenters
- Due to the heavy-weight nature of these applications, portability is complex. Certain license restrictions also make applications less portable (for example, a MAC address-based license)
As-is versus Modification versus Re-Architecting Approach
Customers who have monolithic applications, who don’t have the flexibility to re-architect them, who need to migrate to the cloud as soon as possible due to its price advantage can consider using the “as-is” approach. In this approach, the on premise environment is duplicated in the cloud using third party tools on top of the underlying cloud infrastructure. The environment can be replicated to a template and customized for deployment in different cloud providers’ environments, as needed.
AWS services like server migration and database migration can help enterprises that prefer the as-is approach adopt AWS cloud. AWS Server migration Service (SMS) provides an agent less approach to large scale AS-SI migration of workloads to AWS cloud. AWS SMS can be configured to replicate live service volumes from source data center to AWS. The replication can be scheduled and only incremental changes are replicated reducing bandwidth requirement. AWS provides this service free and charges only for storage resources.
Apart from cost benefits provided by AWS IaaS, there could be scenarios where organizations are willing to make slight modifications to their application landscape to realize even more cost saving and performance.Example: Moving an on premise 3 tier application with traditional database system to the AWS cloud. In this case, migrating from traditional database system to AWS RDS, Aurora can reduce license cost and improve performance.
Using the AWS Database Migration service (DMS) on premise database can be migrated to AWS in a secure and simple manner. AWS DMS allows migration even when source database is in operation thus reducing downtime. AWS DMS is simple to setup and use. It’s a low-cost migration service and charged only for compute resource used by the migration service and storage used for addition logs.
For large scale data migration, services like AWS Storage gateway, Snowball along with rysnc, S3 SLI could be used.AWS EFS service allows mounting of AWS EFS volumes on an on premise server. This allows copy of data to and from AWS. This approach can be used to migrate data AWS. The above listed AWS services provide a low cost, easy to use, reliable, agile, and secure approach to the as-is migration. The as-is approach is a good starting point for cloud adoption with minimal architecture change and realize the AWS Cloud IaaS benefits.
Customers who have the flexibility of time, can adopt the re-architecting approach. Some of the ways to achieve the portability of applications are:
- Make the services stateless. Store the state information out of service.
- Package the dependent libraries with the bundle.
- Offload non-core tasks to other separate environments (log, email).
- Make the service agnostic of underlying hardware and operating system / server less compute.
- Use techniques like Messaging Queue to communicate between the components instead of communicating directly with the components.
The above features can be achieved by using container and Microservice-based architecture.
Once the application is re-architected with portability, running it in a multi-cloud environment should not be a problem, provided network and storage are taken care of. Of course, network latency is the key attribute when designing multi-cloud applications. Another benefit in re-architecting the application in a portable way is that we can utilize the different SaaS providers based on our requirement.
Features Supported by AWS
AWS offers several features needed for hosting application based on micro services architecture.
- CloudFront for content delivery
- API Gateway for API management
- ELB for loading balancing
- EC2, containers for compute resource
- Lambda for server less compute
- AWS RDS for persistent storage
- CloudWatch for monitoring
- Direct connect for connectivity to private datacenter
- AWS SNS for messaging
- AWS SQS for message queuing
While choosing the right approach for cloud migration, an important point to consider in a multi-cloud environment is the cloud management eco-system. There will be a need for single management platform to track cloud resources, usages, identify management, billing, and so on.
The above requirement can be meet using AWS APIs and CLIs in a 3rd party cloud management platform.For multi-cloud requirements, though the as-is approach may provide short term, quick launch benefits, in the long run, a microservice architecture along with containers or serverless architecture would be the best way to go.
AWS, apart from being leading public cloud service provider, with its features rich services, migration support, diverse architecture support, and APIs, is ideal for businesses requiring a multi-cloud hybrid environment.