Scalability, Cost, Performance – these words are commonly used as key features of the Cloud Migration process. With scalability, we predict our solution will grow in time by serving more to our customers and will scale down if demand is lower. By cost, we mean the reduction of it by getting rid of Total Cost of Ownership in favor of having a monthly bill for pay-as-you go services and do not care about hardware costs. With Performance, we expect to have bleeding edge performance without upgrading any hardware, possibly just by introducing a slight change in our configuration to utilize the newest cloud resources.
How to proceed?
The above terms are just the beginning of your journey. You may have expectations regarding the quality and time-to-production. Quality itself depends on the experience and knowledge the migration team has. Migration result depends on how much effort was put into initial research done by dedicated persons with broad knowledge about resources to be migrated. This is an especially important step as team members’ experience will make an impact on the final solution. There are many ways to do the same thing, faster, cheaper, more reliably, but the clue is to find a golden spot that makes it extendable and still maintainable. You will not buy such a thing just with knowledge – experience is mandatory.
Do not forget about standards
Besides technical stuff, there are organizational factors. They may be crucial to know during our adventure. Security is a hot topic that must be addressed with the latest best practices and organization standards which may limit the number of solutions that can possibly be implement for migration. Communication with the Migration Owner must be transparent and happen on a regular basis. Any obstacles we find during must be resolved quickly to prevent slowing down the process.
After combining the talented migration team, we have the very first challenge to face: infrastructure audit. We must know where we are starting from, what we must move and where. This step may be time-consuming as the preference is to have a more detailed view and keep asking questions. We must know our responsibilities, check the risks and know how to mitigate them. The more diligent we are, the better our migration will be.
5R is the topic
Gartner’s “5R migration strategy” is beloved by many, used by many and customized by all. We as well specify what we think to be our own perfect version of the “Migration Framework”. Cloud changes, every day we see new services and features. From time to time, a new feature introduces a new way of thinking which gets us thinking: “yesterday’s bleeding edge is today’s legacy”. The Framework is continuously evolving along with the cloud, and as the team responsible for building it learns new things. We cannot stop and say: we’ve covered all scenarios. It is not possible, because your product is different from others. We have a general approach with detailed instructions, but we adapt it to the specified statement of work.
Modern on-premises solutions often have a set of loosely coupled services that cover monitoring, logging, performance, backup, and disaster recovery. This is not a rule, but regardless of the situation, we propose solutions that adapt the existing ones to work with the cloud, transfer the existing ones to the cloud or create them completely from scratch.
Finish line? Not yet!
Testing – fancy slogan or something real? People are lazy, we think about doing a lot in a brief time and closing the topic. But who will assure us that the migration has gone well? There is never too much testing, but we should test everything we can. Even if we run them only once, a properly prepared set of tests will protect us from errors in the future. Adding new features, fixing bugs, solving performance issues – now we have a powerful weapon against regression! Are we ready yet? No, we must take the most important step in the process: test the migration – we call it the Flight Test. Only when everything is “green”, can we proceed with real resources and data.
Champagne and clapping hands
So, we’re migrated. Time to look at stats, logs, and performance. In the previous steps, we learned about the assumptions that the solution should meet. Handle specific traffic, CPU load, generate result in a given time, etc. This is the best time to optimize. Using our knowledge, experience, good practices, and observations, we introduce changes and observe each one separately.
As we approach the end of the process, we need to finish project documentation, conduct a series of cloud-based trainings and implement operational instructions.We strongly suggest performing penetration tests through dedicated entities specializing in this field. This will give us a picture of the state of the solution and what improvements it requires to be fully operational.
In conclusion, it is worth remembering that there are so many types of applications, infrastructure, teams, and organizations that it is impossible to prepare a detailed plan, and the framework is not rigid rules but a chronological set of good practices that should be adapted to a given task.