As organizations attempt to stay ahead of an ever-evolving competitive landscape, IT is under mounting pressure from the business to increase agility while decreasing time to market. In response to this pressure, IT leadership must adjust and adapt or risk even more infiltration of shadow IT. The cloud promises to be the solution by offering a path to a more flexible, responsive, and agile organization. However, the cloud must be adopted with care and proper planning to ensure the path doesn’t fall short of meeting expectations.
In this blog we will cover the major stages of a successful cloud migration by following Core BTS’ Cloud Journey Map. Through this and future blogs, our goal is to help lead your organization down the path to a more agile and responsive IT organization.
Look Before You Leap
Microsoft makes it exceptionally easy to adopt Azure and begin migrating workloads or modernizing applications utilizing various serverless technologies. While this level of enablement can lead to greatness, it can also lead to a “leap before you look” mentality, especially when paired with increasing pressure for an IT organization to be more flexible and agile when responding to requests from the business.
This ease of adoption and business pressure can lead to a rushed cloud adoption roadmap – putting the environment and its data at risk. However, a well-architected cloud adoption roadmap, such as the one illustrated below, institutes the proper foundations from the beginning to ensure a safe and performant Azure adoption with minimal rework.
Stage 1: Cloud Enabled Network
The network is the backbone and lifeblood of any cloud adoption. Without a resilient and performant LAN and WAN design, the adoption for Azure will fail to meet expectations from the start. A well-architected LAN includes the capacity and resiliency necessary to meet the availability and performance expected by the business for all critical workloads.
When utilizing cloud environments, that same level of availability and performance must now be applied to the larger and farther-reaching WAN. Depending on the number of locations requiring access to the environments within the cloud, this design could require several different technologies including (but not limited to) VPNs, MPLS, and SD-WAN. Knowing how and when to leverage each different technology to meet expectations – while not over-provisioning – is critical.
Stage 2: Economics Assessment
The economic assessment phase of the cloud journey should include several key milestones:
- Identification and documentation of present and future objectives and goals for cloud adoption
- A detailed and comprehensive financial analysis including various cost models
- Development of a target state architecture for both Azure and connected environments
- A migration roadmap with workload complexity ratings and detailed migration phases
Stage 3: Cloud Foundation and Governance
Governing principals, like those listed below, are vital to a successful Azure adoption and should be established early in the cloud journey roadmap to ensure initial positive reactions to the adoption.
- Management Group Design
- Subscription Design
- Naming and Tagging
- Network Architecture
- Security Operations
- Server and Update Management
- Monitoring and Alerting
- Backup and Disaster Recovery
- Analytics and Automation
- Billing Management and Cost Optimization
- Deployment Acceleration and Resource Consistency
In a later blog, we will examine these principles in more detail.
Landing Zone Deployment
While not a major category on Core BTS’ Cloud Journey Map, the deployment of the Azure Landing Zone, and the method for which it is deployed, must be carefully considered.
In short, an Azure Landing Zone is everything a business needs to meet the present and future state goals defined during the economic assessment phase. Therefore, by design it must comply with all governing principals established during the governance phase of the Cloud Journey Roadmap.
Once a comprehensive landing zone has been defined and documented, it must be deployed via a methodology that is dependable and repeatable. The term dependable in this context illustrates a need for the deployment process to enable a means to ensure accuracy and adherence to set standards. Repeatable illustrates a requirement to minimize rework – thereby increasing velocity and agility.
Our recommended approach for Landing Zone Deployment is the utilization of infrastructure as code deployed via Azure Pipelines. Microsoft Azure Pipelines automatically build and test code projects. It works with just about any language or project type – making it ideal for the deployment and configuration of Azure infrastructure. (Get the most out of your Azure investment with Azure Managed Services.)
Stage 4: Cloud Migration
After properly completing all the preceding steps, you should have everything in place to focus on the successful migration of workloads to the cloud.
Migrations can be completed utilizing a number of difference methods: rehosting, refactoring, replatforming, or rewriting. The method chosen will likely be determined by the reason for the migration.
- Data center exits, mergers, acquisition or divestiture, or end of support for mission critical applications are examples of when the quicker lift and shift method may be employed.
- Preparing for new technical capabilities, optimizing internal operations, and transformation of products or services are examples of potential modernization opportunities.
Regardless of the methodology employed, the following steps must be performed for a successful workload migration:
- Plan: Align business outcomes and migration backlogs
- Ready: Prepare the business, culture, and environment
- Migrate: Deploy existing resources to the cloud
- Operate: Day to day operation of resources in the cloud
For environments with large migration portfolios, it is likely a migration factory will be established to repeatedly move through these steps across many workloads.
In this instance, it is important that a constant feedback loop is established across all teams involved throughout the process to ensure that lessons learned are effectively communicated and applied during future migrations.
Migration is a large complex topic that will be examined in greater detail in a later blog.
Stage 5: Application Modernization
There are a few common approaches for migrating applications to Azure. The first approach involves migrating an application as-is by leveraging Platform as a Service (PaaS) to gain the advantages of a serverless platform. Most applications can be migrated to Azure AppServices, and databases can be migrated to Azure SQL databases with (potentially) minimal modifications to the application.
An advantage of this approach is that applications can be quickly migrated. A disadvantage of this approach is that the overall solution is neither performance- nor cost-optimized and does not take full advantage of the available cloud technologies.
Another approach involves rearchitecting the application from the ground up with cloud technologies in mind. A full rewrite will ensure the solution is optimized for performance and cost, but it will require a large investment of time and money up front before migrating to the cloud.
The most common approach involves a combination of the two approaches above. This approach involves the following:
- Migrate the current application to the cloud and establish monitoring for the application
- Analyze the current application to determine the roadmap of the modernization effort
- Execute the initial modernization of the application
- Analyze the metrics provided by the ongoing monitoring to inform future modernization efforts
Given this widely accepted approach, and the benefits of ongoing modernization efforts inherent to any cloud platform, we highlight this critical activity as a standalone focus in our Cloud Journey Map.
Stage 6: Cloud Optimization
Once workloads are migrated to the cloud, it is more important than ever to have a well-designed operations model in place to ensure the workloads continue to perform as required while leveraging available cloud technologies to improve efficiencies, performance, and cost where possible.
Microsoft’s Cloud Adoption Framework recommends the following exercises to help develop business and technical approaches for cloud operations:
- Establish a management baseline: Define the criticality classifications, cloud management tools, and processes required to deliver your minimum commitment to operations management.
- Define business commitments: Document supported workloads to establish operational commitments with the business and agree on cloud management investments for each workload.
- Expand the management baseline: Based on business commitments and operations decisions, make use of the included best practices to implement the required cloud management tooling.
- Ensure advanced operations and design principles: Platforms or workloads that require a higher level of business commitment might require a deeper architecture review to deliver on resiliency and reliability commitments.
Cloud optimization is a constant and never-ending cycle that will be further explored in an upcoming blog.