Although migration considerations vary for SaaS, PaaS, and IaaS environments, the following are general considerations when migrating on premise application workloads to the cloud. (See article on cloud strategy)
Assess the capabilities of each cloud service provider’s services
Not all cloud service providers possess the same capabilities and services. Ensure that you conduct a due diligence based on your specific business needs. Among other things, this should include evaluating their security capabilities, cloud environment governance mechanisms, scalability capabilities (limits), etc.
Configuring and optimizing workloads for the cloud
When pursuing a “lift and shift” approach where you simply want to migrate internal workloads to an external cloud service provider, you need to ensure that the workloads will work effectively in the new environment without causing any issues. For example, you should be cognizant of resource sharing and pooling considerations.
Perform an internal skills assessment
Taking on any cloud project requires that you have an appropriate team in-house to work with the cloud service provider and the internal IT department to facilitate the migration. Ensure that you have the right people with the right skills before embarking on such endeavors. This team should be well versed with the source environment such as your data center along with a complete understanding of the target cloud environment and underlying architecture.
Formulate a strategic roadmap of migrations
When pursuing an aggressive cloud migration strategy, it’s advisable to chart out a clear roadmap of migrations that start out with migrations of low risk systems and progressing to more complex implementations.
Formulate a cloud architecture
Devising an appropriate cloud architecture designed to handle all your current and future workloads can go a long way in helping toward a smooth migration and for providing a solid digital platform for your systems and applications for the future. Therefore, before moving to a cloud implementation, ensure that you work with your cloud service provider on devising a proper cloud architecture that will be relevant to your organization’s needs and provides a foundation for the future. Areas of discussions when devising such an architecture include geographical needs of your systems, security, scalability, issues related to public, private, hybrid, and community architectures, etc.
User Administration
As your enterprise moves to the cloud, your IT staff and / or business users will need access to the environment. You should therefore understand the user administration and management process related to addition and removal of users along with role and permissions assignment, etc.
Regulatory and Compliance issues during migration
Data migration issues during the migration phase should be planned carefully when migrating applications to the cloud, especially when it comes to regulatory and compliance issues. The transition phase introduces a number of security issues that include temporary contractors and consultants having access to data, data migration to the cloud through insecure channels, etc.
Getting back to your enterprise’s architecture
An enterprise’s application architecture provides numerous details that can be quite useful when planning for the migration process. These details include application dependencies, user audience, usage patterns, and other such details. If your enterprise doesn’t have a documented application architecture, cloud migration can be an opportunity to start building one.
Application Usage Patterns
Depending on the complexity of the migrations, you should also consider collecting live usage patterns related to each application. Data includes CPU and memory usage, storage IOPS metrics, network performance data, etc. Such data should be collected over a few days and during critical times before final decisions and assessments are made regarding migration plans.
Categorize applications based on risk profiles
When migrating hundreds and thousands of applications, you should design a risk profiling mechanism and them rate the applications based on that risk profile. You priority should be start with low risk applications and then move to the next, unless there are other business reasons for doing it differently.
Assess and negotiate SLAs
Depending on the type of services that you sign-up with your CSP, ensure that you know the SLAs. These SLAs can be different across IaaS, PaaS, and SaaS environments.
Data portability
Before you are up and running on a new cloud environment, ensure that you understand how will you get access to your data and bring it to your premises when and if needed. Considerations include the mechanisms, security, and volume of data that is involved.
Assess the CSP’s monitoring, administration, and other dashboard tools
Once your environment is migrated to the cloud provider, you will need ways to monitor and control the environment depending on the types of services that you have requested. You should get a good trial run of those tools before the actual migration to ensure that post migration steps proceed smoothly.
Creating a test strategy and plan
Before going through a migration, appropriate tests should e run to ensure the actual migration will proceed smoothly. Plan for a back out strategy as well just in case you hit some hurdles during the migration.
Put together the right team
Cloud migrations can be a challenging task due to the inhernt complexities. To ensure a smooth migration, ensure that you assemble the right team members from inside the organization and the CSP. The team members should include a project manager, application architects, user managers, DevOps team members, and others.