This is the second post in the blog series > “10 Critical Cloud Migration Planning Factors”.
A recent CIO survey by JP Morgan projects “41.6% of corporate workloads at big companies are expected to be running in the public cloud within the next five years, up from 16.2% today.” This level of cloud migration marks a MASSIVE shift. Enterprises face a daunting challenge to migrate their on-premises workloads into the cloud. However, unlike the famed and perilous wildebeest migration on the Serengeti plains, enterprise workloads can smoothly and securely migrate to the cloud if Enterprise IT considers the following critical planning factors:
2. Three Different Paths to Cloud Migration: Different Time/Cost/Skills
3. Selecting Applications: Good Candidates for Migration
4. Selecting Applications: Bad Candidates for Migration
5. Pitfalls in Migrating Complex Apps to the Cloud
6. Discovery versus Assessment for Cloud Migration
7. Software Licensing: Can I run this app in the cloud?
8. Manual versus Automation: Pros and Cons for Cloud Migration
9 Cost Analysis: On Premises vs Cloud
10. Critical People Factors: Right Stakeholders? Right Skills?
10 Critical Cloud Migration Planning Factors:
#2: Three Different Paths to Cloud Migration: Different Time/Cost/Skills
Not all applications in your data center can be migrated to the cloud. The path you take will depend on your business goals and objectives, technology compatibility and compliance requirements.
Some applications have specific hardware dependencies (e.g.: tied to hardware appliance, tied to server MAC address) and cannot be migrated at all. We will examine this and other factors in greater detail in the upcoming #4: Selecting Applications: Bad Candidates for Cloud Migration.
Other applications may be good candidates for the cloud, but for compliance requirements, you may continue to run them in your data center.
Most applications that can be migrated to the cloud will fall into 3 main categories:
Re-host, Re-platform and Re-factor. Each of these paths varies by skills required and the cost and time to complete the cloud migration. Let’s examine them in reverse-order.
1. Re-factor Application for Cloud
Re-factoring an existing data center application for the cloud requires application code or configuration changes to take advantage of cloud infrastructure services. Cloud services could include cloud-based identity management or authentication or auto-scale or managed database services (e.g.: Amazon RDS).
Refactoring an application is necessary if either the existing application was poorly written and needs to be re-designed before running it in the cloud. Or, an application would be refactored for better performance, better scalability or cost savings (optimized use of resources, otherwise you could face a higher cloud bill).
Pros and Cons:
Cost: Given code changes required, the cost of re-factoring will be higher since it includes development, test, QA, validation, re-training.
Time: A longer time than the other two options.
Skills: Specialized skills are required including application, business logic, cloud and specific cloud native services. Some of these may be hard or costly to obtain.
Here is an example of refactoring an existing monolithic app into a federation of related micro-services: https://blog.pivotal.io/pivotal-cloud-foundry/case-studies/case-study-refactoring-a-monolith-into-a-cloud-native-app-part-1
2. Re-platform Application for Cloud
Re-platforming an existing data center application for the cloud is required when there are dissimilarities between the source and destination environments. For example, you application runs on an AIX server but will need to be converted to Linux before it can run in the cloud ( No AIX support on cloud). Or upgrading your application from Windows Server 2008 to Windows Server 2012 or Oracle 11 to Oracle 12. In each of these cases, it is best to convert/upgrade/re-engineer your application in the data center prior to migrating it to the cloud.
Re-platforming an application is necessary if either the source environment is not supported on the cloud or if the business would like to take advantage of new capabilities available on the new platform prior to the cloud migration.
Pros and Cons:
Cost: Given some code changes required, the cost of re-platforming will be higher since it includes some development, test, QA, validation, re-training.
Time: The amount of time will depend on the application/platform complexity but will be higher than re-hosting the application.
Skills: Typical technical skills and understanding of the application and its environment and some cloud skills.
Here is a white paper on re-platforming by Wipro, a Global Systems Integrator. http://www.wipro.com/documents/application-replatforming-migration-and-modernization.pdf
3. Re-hosting an Application in the Cloud
Re-hosting an existing data center application for the cloud can be easily accomplished for applications that have similar source and destination environments. Typically x86-based Windows and Linux applications can be re-hosted and run in the cloud. When re-hosting, the application is not taking advantage of cloud native services (like AWS RDS) so there may not be any specific performance gains that could be achieved by re-hosting the application. However, this is the fastest and lowest cost option for cloud migration.
Sometimes this approach is also known as “Lift and Shift”. However, in our experience, there are many differences in the “how” to re-host and we will cover this in more detail in blog #8: “Manual versus Automation: Pros and Cons for Cloud Migration”
The business drivers discussed in Why Migrate Your Apps To the Cloud ? are applicable to re-hosting.
Pros and Cons:
Cost and Time: Lowest cost and time to the cloud.
Skills: Understanding of the cloud services and their pricing.
Here is a detailed write-up by Information Week on “How Exar Moved Its Oracle Stack to the Cloud” http://www.informationweek.com/cloud/infrastructure-as-a-service/exar-finds-success-moving-oracle-database-to-aws/d/d-id/1325602
Questions To Determine Which Path To Take?
- What is my organization’s goal and strategy to adopting cloud computing? Cost Savings? Agility?
- Do I want to develop a full-fledged cloud strategy or dip my toe in the water with some applications first and gain learning and experience before moving additional applications?
- What are my migration goals?
- What are my criteria to selecting applications fo re-host, re-platform, re-factor?
- How to build a cost justification for migration that I can present to the business and IT leadership for approval?
- Should I do this in-house or work with a partner who brings expertise?
- What are my success criteria for a Proof-of-Concept and Migration?
At CloudVelox, we have resources and templates to help you with the above questions and to plan a successful cloud migration.
The next blog in the series will be #3: Selecting Applications: Good Candidates for Migration. Stay tuned or register for the Cloud newsletter.
Please provide your comments about this post to email@example.com. And if you like it, please share.
Find out more about the award-winning CloudVelox approach to automated cloud migration.