This post is the first in a series of blog articles about migrating workloads from traditional IT environments into the AWS cloud. 1Strategy has a staff of consultants with diverse skills and backgrounds which has enabled us to adapt solutions to many different migration challenges. While on the journey across the migrations that have come our way we have found some common concepts and best practices that can help to more easily achieve the end goal of a successful migration. These posts will introduce the core concepts and considerations needed to start out on the right foot with a migration to the cloud.
As we are now well into the Fall season, most birds and other migratory animals have begun their treks south for the winter. In the animal kingdom, migrations are epic journeys that seem to happen effortlessly for the animals. Some birds migrate thousands of miles in one non-stop flight; other animals make their way to their destination with multiple rest stops along their migration path. Some animals take many different paths to migrate to the same ending location. While migration in the animal kingdom is efficient and smooth, workload migrations can be very chaotic events that often feel unmanageable.
Planning
The first and most important phase in any migration has to be planning. Like the old adage says “Failing to plan, is planning to fail.” If a migration does not begin with some forethought, then it will become very difficult to make it successful. Planning helps give everyone an end goal to focus on and measure against. A migration plan is also very useful for tracking progress and laying a pathway towards achieving the end goal. A migration plan will be essential when it comes time to make hard decisions along the way as well. A plan should also include contingencies, alternate paths, and the flexibility to adapt when unforeseen events happen. A migration plan also helps everyone involved to get on the same page. When it comes time to get buy-in from stake holders, a plan will make it much easier to sell the migration when there are clear, achievable goals for a migration. Ultimately a migration plan will help your organization reach the desired and economically viable objectives that make for a successful migration.
Step One: Reliable Data
The importance of gathering good data to be used for decision making during the planning phase cannot be over stated. Reliable data from your existing infrastructure should be a mandatory requirement. Having good data about your existing environment can help you decide which strategy for migration best suits your use case.
Step Two: Understand Why
There is a great TED talk by Simon Sinek where he talks about how great leaders inspire action. The key point is that a great leader will start with the question of why action should be taken. Just like a great leader, a great migration plan begins with asking the question, “Why should this be done?” The first step of the planning phase should start with a purpose. What is the purpose for the migration? Is it to reduce costs? To increase agility? To modernize? For disaster recovery or business continuity? The answer to these questions will help to define a purpose for everyone to get behind for the migration.
Step Three: Determine Strategy
Once you have the right data and you understand why you are migrating, you can decide on an approach or strategy that will lead to the best outcome for your migration. According to AWS’s best practices for migrations, migrations can be categorized in to six strategies, called “The 6 R’s.”
The 6 R’s
- Rehost: lift-and-shift
- Replatform: lift-tinker-and-shift
- Repurchase: drop-and-shop
- Refactor/Re-architect: drop-and-rebuild
- Retire: drop-and-keep
- Retain: keep-and-drop
Understanding why you are migrating, will help you determine the best migration strategy to take. For example, if cost reduction is your primary goal for a migration then a lift-and-shift migration path may not be the best option. In most cases spinning up like-for-like servers in AWS will cost more than on-premises servers. If cost reduction is the primary purpose, then refactoring to make use of auto-scaling and micro-services might be the better path. Conversely, if costs are not the biggest concern, and just moving quickly into the cloud is the priority then a refactoring or re-architecting may not be the best option. Refactoring will take much more time and development effort versus just moving into like-for-like servers.
Most migration cost savings opportunities are found when using AWS as intended, with auto scaling, flexibility, spot instances, horizontal scaling, micro services, etc.
Resources:
AWS Cloud Adoption Framework
https://aws.amazon.com/professional-services/CAF/
https://aws.amazon.com/professional-services/CAF/perspectives/
https://d0.awsstatic.com/whitepapers/the-path-to-the-cloud-dec2015.pdf
Migrating to AWS: Best Practices and Strategies
https://d0.awsstatic.com/Migration/migrating-to-aws-ebook.pdf