Our technology teams have worked with clients of all sizes to plan and migrate their applications to cloud hosting environments. While each client’s challenges are different, we’ve seen some common themes and have developed a suite of best practices to address them.
Some of our team’s best practices include:
A cloud migration is a set of many smaller migrations
Taking a granular approach to cloud migrations can pay important benefits. While an entire data center of applications may need to be migrated, executing multiple staged migrations provides for risk limitation, gradually building the team’s expertise with migration and hosting platforms, and a staged testing/verification of foundation elements.
Determine the true inflection points for the transition
Follow a logical progression of goals > driving requirements > driving design driving transition plans, by identifying the true reasons for a hosting change to provide a solid guide for both technical and business success.
Understand critical dependencies
Migrating traditional application stacks to a cloud hosting model involves understanding and (in some cases) reworking the extensive integrations that have been developed over previous years. While the underlying technologies (x64 servers, block storage, etc.,) may be similar in the new environment, the new geographical spread, network architectures, security tools, deployment methods (to name a few items) will “stretch” the integrations in ways that require careful planning and testing.
Learn and refine as you go
A key benefit of cloud hosting models is the ability to quickly modify infrastructure and application elements. Use this flexibility to execute and learn from proof of concept phases when theoretical planning requires practical testing. While we all like to think our plans are well thought out from the beginning, adopting a more “agile” approach can more quickly identify and fix problems.
Identify true long lead time items
Some difficult technical challenges become “easy” in a cloud hosting model, while some “easy” items become difficult due to technological and process differences. For example, deploying core cloud compute and storage “infrastructure” elements can be very quick, while the transfer of data to the cloud provider can be a challenge. Evaluate the project plan as soon as possible and assess what tasks require extended time or new technical solutions.
Determine, gain consensus on, and monitor key success factors
Also known as “begin with the end in mind,” complex projects require solid understanding of context and goals. While surprises will always happen, project objectives should serve as both guidelines and alarm bells in the event of issues. Deploying tools (technical and otherwise) to monitor individual elements and synthesize status across the stack is a key element of the success factor process.
Create and facilitate an integrated team
Cloud deployments blur the lines between not only infrastructure team silos, but also development, database, project management, etc. Consider the mix of technical and non-technical skills required, and staff the project with the right experience and authority levels.
Assign differing levels of focus to different people
Many project team members will be focused on individual contributions, eg) technical deployment, application testing, etc. Some project team members will be managing project timing and task status. Be sure that some project team leaders are also focused on managing context and process. These “higher level” tasks serve as a useful meter of success and a check to context and process misadventures.
Contact us and let’s discuss your cloud migration challenges – and check back next Wednesday for the next post in the series on Hybrid Cloud.