January 15, 2018

Over the last few years, an increasing number of companies have been adopting cloud computing to improve business agility, reduce cost and innovate rapidly. Cloud platforms provide infrastructure services, compute, storage, networking, application services, and databases that can be provisioned without the upfront cost. The ability to provision services rapidly and the pay-as-you-go pricing model allows companies to quickly respond to the ever-changing market needs. Cloud computing is providing substantial competitive advantage to the early adopters, as a result, more companies are starting the process of cloud adoption

Cloud Adopting is a journey and having a roadmap can help reduce complexity, minimize risks and significantly increase business agility. Each migration is unique, but we typically see five highly iterative phases during cloud adoption: Evaluation, Planning, Design, Migration, and Optimization.

Evaluation Phase

This phase requires working with various stakeholders to identify the cost, benefits and business drivers. Stakeholder training is often required to provide a shared understanding of cloud capabilities and services. Also, the identification of security and compliance risks for the workloads are done during this phase as it can have drastic effects on the migration timeline.

The outcome of this phase is a list of business objectives for the cloud adoption. After the stakeholders are comfortable with the business goals, we are ready to move on to the planning phase.

Planning Phase

The planning phases consist of discovery, workload prioritization, and a migration plan.

Discovery involves data gathering and analysis to identify the various applications, servers, network devices and persistence stores deployed on premises. From this data, we can extract key information such as application and server dependencies, technology stack, access patterns (internal or external), performance metrics, security requirements, the frequency of use, size of user base, criticality and business owners. It is worth noting that Cloud platforms and partners provide various automated tools to help reduce cost and shorten the timelines.

Once discovery is completed, the workloads are prioritized according to the business goals. Factors that affect the prioritization include business criticality, application complexity, security and compliance requirements. Stakeholder participation is critical in this phase to ensure complete alignment with the company strategy. In order to minimize risks, it is recommended to migrate less critical applications first.

The final step in the planning phase is creating a migration plan. The plan should include the migration cost and business benefits, migration timeline, migration strategy (lift and shift, Re-Platform, Re-Architect, Retire), success criteria, migration validation, resource allocation plan, tools, and contingency plan. This migration plan will be used extensively during the remaining phases, therefore, it needs to be understood and agreed upon by all stakeholders.

Design

The design phase is highly iterative and involves a number of aspects ranging from proof of concepts to architectural design. The migration pattern defined in the planning phase will drive the design efforts. Some patterns, such as Lift and Shift, are less costly and require minimal changes, but do not take advantage of cloud benefits. Others, such as Re-Architect are costly to implement and require extensive testing but provides substantial benefits such as managed databases, containers and messaging. The Re-Architect pattern is highly recommended due to its substantial benefits.

Cloud Providers such as AWS and Azure have documented best practices that can be used during the migration phase.  The AWS Well Architected framework provides best practices regarding Security, Reliability, Performance Efficiency, Cost Optimization, and Operational Excellence.

On Azure, the Reference Architectures includes recommended best practices, along with considerations for scalability, availability, manageability, and security.

Migration

The migration from on-premises to the cloud is a very important phase of this journey and requires a great deal of planning.

Some considerations during the migration include the migration duration, recovery time objective (RTO), recovery point objective (RPO), migration tools, integration, data security in transit and failover procedures.

After the migration, the functionality and performance of the workloads must be validated against the baseline. This includes functional, performance, and security testing. Test failures are addressed and a formal business sign-off is done prior to going into production.

Optimization

Cloud migration is a complex process and the end result is not always the most optimal workload for the cloud in terms of performance and cost efficiency. Optimization is an iterative process that continues throughout the lifetime of the application. Substantial gains can be made by adopting cloud best practices and leveraging native cloud services. Companies can benefit from Application optimization (Serverless architectures, microservices, managed databases and messaging services), Process optimization (CI/CD, Containers), and Operation Optimization (Infrastructure as code, reserved instances).

The cloud migration journey is complex and requires significant cultural transformation. Creating a cloud-first culture requires support from various stakeholders and incentives such as faster time to market and lower cost of ownership. It may require reorganizing teams, implementing training programs, leveraging industry experts, developing new skills and encouraging a culture of innovation. The benefits of this journey are substantial: faster time to market, cost reduction, quality improvements, increased innovation and global reach. Using the phases described in this post will help you accelerate the pace of cloud adoption in your organization and shorten your timelines.