The adoption phase consists of two steps. On the one hand the “Cloud migration in the Cloud Adoption Framework” and on the other hand the “Cloud innovation in the Cloud Adoption Framework”. But let us start with the first step.
The first step is the suggested path for your first migration to Azure, as it will expose you to the methodology and the cloud-native tools most commonly used during migration to Azure.
Azure Migrate is the native tool for assessing and migrating to Azure. Azure Migrate assesses on-premises infrastructure, applications, and data for migration to Azure. This service assesses the migration suitability of on-premises assets, performs performance-based sizing and provides cost estimates for running on-premises assets in Azure. If you’re considering a lift and shift approach, or are in the early assessment stages of migration, this service is for you.
Azure Migrate delivers a unified and extensible migration experience. Azure Migrate provides a one-stop, dedicated experience to track your migration journey across the phases of assessment and migration to Azure. It provides you the option to use the tools of your choice and track the progress of migration across these tools. With Azure Migrate one can use functionalities like enhanced assessment and migration capabilities, unified assessment, migration, and progress tracking, extensible approach with ISV integration
Azure Migrate uses Service Map to enhance the reporting capabilities and dependencies across the environment. Service Map automatically discovers application components on Windows and Linux systems and maps the communication between services. With Service Map, you can view your servers in the way that you think of them: as interconnected systems that deliver critical services. Service Map shows connections between servers, processes, inbound and outbound connection latency, and ports across any TCP-connected architecture, with no configuration required other than the installation of an agent. Other native migration tools are Azure Site Recovery, Azure Database Migration Service, Data Migration Assistant, SQL Server Migration Assistant, Database Experimentation Assistant or the Cosmos DB Data Migration Tool.
Azure Site Recovery
The Azure Site Recovery service can manage the migration of on-premises resources to Azure. It can also manage and orchestrate disaster recovery of on-premises machines and Azure VMs for business continuity and disaster recovery (BCDR) purposes.
Azure Database Migration Service
The Azure Database Migration Service is a fully managed service that enables seamless migrations from multiple database sources to Azure data platforms, with minimal downtime (online migrations). The Azure Database Migration Service performs all of the required steps. You can initiate your migration projects with the assurance that the process takes advantage of best practices recommended by Microsoft.
Data Migration Assistant
The Data Migration Assistant (DMA) helps you upgrade to a modern data platform by detecting compatibility issues that can affect database functionality in your new version of SQL Server or Azure SQL Database. DMA recommends performance and reliability improvements for your target environment and allows you to move your schema, data, and uncontained objects from your source server to your target server.
SQL Server Migration Assistant
Microsoft SQL Server Migration Assistant (SSMA) is a tool designed to automate database migration to SQL Server from Microsoft Access, DB2, MySQL, Oracle, and SAP ASE. The general concept is to collect, assess, and then review with these tools.
Database Experimentation Assistant
Database Experimentation Assistant (DEA) is a new A/B testing solution for SQL Server upgrades. It will assist in evaluating a targeted version of SQL for a given workload. Customers who are upgrading from previous SQL Server versions (SQL Server 2005 and above) to any new version of the SQL Server can use these analysis metrics.
Cosmos DB Data Migration Tool
Azure Cosmos DB Data Migration tool can import data from various sources into Azure Cosmos DB collections and tables. You can import from JSON files, CSV files, SQL, MongoDB, Azure Table storage, Amazon DynamoDB, and even Azure Cosmos DB SQL API collections. The Data Migration tool can also be used when migrating from a single partition collection to a multipartition collection for the SQL API.
As you migrate resources to your cloud environment, it’s important to perform periodic cost analysis. This helps you avoid unexpected usage charges, since the migration process can place additional usage requirements on your services. If your services are migrated to Azure, the next phase includes reviewing the solution for possible areas of optimization. This effort could include reviewing the design of the solution, right-sizing the services, and analyzing costs. This phase is also an opportunity to optimize your environment and perform possible transformations of the environment.
All Azure services that provide a consumption-based cost model can be resized through the Azure portal, CLI, or PowerShell. The first step in correctly sizing a service is to review its usage metrics. The Azure Monitor service provides access to these metrics. For example, you could resize services like a Virtual Machine, a storage account or a SQL Database.
The cloud introduces a few shifts in how we work, regardless of our role on the technology team. Cost is a great example of this shift. The cloud empowers every member of IT to make and act on decisions that better support the end user. However, with that power comes the responsibility to be cost conscious when making those decisions. Tools that can help make wise cost decisions before, during, and after a migration to Azure are the Azure Migrate calculations, Azure Advisor cost recommendations or Azure Cost Management.
Azure Migrate is suited for an estimation of VM costs prior to migration. Azure Migrate calculates monthly cost estimates based on data captured by the collector and service map. The resulting estimate, pictured below, identifies the monthly costs of compute and storage, which often represent the largest portion of cloud costs.
Estimating cost prior to migration provides a solid target for cost expectations. Once the asset is migrated and under load, more accurate cost calculations can be made, based on actual or synthesized load.
Azure Advisor cost recommendations
Within 24 hours of migrating assets (infrastructure, apps, and data) to Azure, Azure Advisor begins monitoring each asset’s performance to provide you with feedback on the asset. One item of feedback collected relates to the balance between cost and utilization.
Azure Cost Management
Azure Cost Management can provide a more holistic view of spending habits, including detailed view of costs and spending trends over time. For large or complex migrations, this view may provide the insights needed to make broad sweeping cost management decisions.
Avoid unnecessary spending
Most assets (infrastructure, apps, and data) in an existing datacenter could theoretically be migrated to the cloud. However, that doesn’t mean they should be. During assessment of each workload, validate that the workload should be migrated.
After you’ve deployed your infrastructure in Azure, it’s important to make sure it is being used. The easiest way to start saving immediately is to review your resources and remove any that aren’t being used.
Even with the best approaches to estimation, there are likely to be overprovisioned and underutilized assets (infrastructure, apps, and data). Review of those assets using the tools mentioned above will identify potential means of reducing asset sizing to better match performance requirements and reduce costs.
Take advantage of available discounts
Speak with your Microsoft account representative to understand how you can take advantage of current discount options. The following are a few examples of discounts that are commonly used to reduce costs.
Azure Reservations allow you to prepay for one year or three years of virtual machine or SQL Database compute capacity. Prepaying will allow you to get a discount on the resources you use. Azure reservations can significantly reduce your virtual machine or SQL database compute costs, up to 72 percent on pay-as-you-go prices with either a one-year or three-year upfront commitment. Reservations provide a billing discount and don’t affect the runtime state of your virtual machines or SQL databases.
As mentioned above the adoption phase consist of a second step called the Cloud innovation in the Cloud Adoption Framework. Cloud adoption-related innovation can unlock new technical skills and expanded business capabilities. Before you start developing innovative solutions by using Azure services, you need to prepare your environment, which includes preparing to manage customer feedback loops. Building an innovative new solution isn’t about giving users what they want or think they want. It’s about the formulation of a hypothesis that can be tested and improved upon. That testing comes in two forms:
- Quantitative (testing feedback): This feedback measures the actions we hope to see.
- Qualitative (customer feedback): This feedback tells us what those metrics mean in the customer’s voice.
Engage through apps
Innovation with apps includes both modernizing your existing apps that are hosted on-premises and building cloud-native apps by using containers or serverless technologies. Azure provides PaaS services like Azure App Service to help you easily modernize your existing web and API apps written in .NET, .NET Core, Java, Node.js, Ruby, Python, or PHP for deployment in Azure. Azure App Service provides a hosting environment for your applications that removes the burden of infrastructure management and OS patching. It provides automation of scale to meet the demands of your users while bound by limits that you define to keep costs in check. With Azure Cognitive Services, you can infuse advanced intelligence directly into your app through a set of APIs that let you take advantage of Microsoft-supported AI and machine learning algorithms. Azure Bot Service extends your standard application by adding a natural bot interface that uses AI and machine learning to create a new way to interact with your customers. During your innovation journey, you’ll eventually find yourself on the path to DevOps. Microsoft has long had an on-premises product known as Team Foundation Server (TFS). During our own innovation journey, Microsoft developed Azure DevOps, a cloud-based service that provides build and release tools supporting many languages and destinations for your releases. As mobile apps continue to grow in popularity, the need for a platform that can provide automated testing on real devices of various configurations grows. Visual Studio App Center doesn’t just provide a place where you can test your applications across iOS, Android, Windows, and macOS. It also provides a monitoring platform that can use Azure Application Insights to analyze your telemetry quickly and easily.
As you start to transition from your initial testing phase, evaluate ways to isolate and remove points of failure. Because of the distributed nature of the Azure cloud platform, you can design your application to minimize failures while also improving performance. Azure Front Door Service provides a scalable, secure entry point that you can use to deliver your application around the globe. Azure Front Door Service combines optimization of traffic for best performance and instant global failover. You should use Azure Front Door Service rather than Azure Traffic Manager if you need Transport Layer Security (TLS) protocol termination (SSL offload) or per-HTTP/HTTPS request application-layer processing. Traffic Manager provides DNS-based load balancing that can be routed based on various rules. This capability helps ensure resiliency if any deployed services fail. You can also stack Traffic Manager to use both failure-based routing and performance-based routing to provide the best experience possible, based on geography. Azure offers a distributed content delivery network (CDN) that allows you to ensure timely delivery of assets by caching them close to your users. This caching helps to improve your customers’ experiences. During content download, it also prevents issues that are caused by network problems that occur between the CDN endpoint and the datacenter that hosts your application. Content Delivery Network can also be used by applications that aren’t hosted in Azure.
You know that innovation is critical to business success. You don’t accomplish innovation solely through the introduction of new technologies. You need to focus on supporting the people who catalyze change and create the new value that you seek. Developers are at the center of digital transformation, and to empower them to achieve more, you need to accelerate developer velocity. Empowering developers to invent means accelerating developer velocity, enabling them to create more, innovate more, and solve more problems. Developer velocity is the underpinning of each organization’s tech intensity. Developer velocity isn’t just about speed. It’s also about unleashing developer ingenuity, turning your developers’ ideas into software with speed and agility so that innovative solutions can be built. There are several areas of opportunity where Azure can help you build productively. One of the best ways to improve your developers’ skills is by giving them tools they know and love. With the Azure commitment to open-source software and support for all languages and frameworks in Azure tools, your developers can build how they want and deploy where you want.
Predict and influence
As an innovator, your company has insights into the data, behavior, and needs of its customer base. Studying those insights can aid in predicting your customers’ needs, possibly before your customers themselves are aware of those needs. The fastest and easiest path to predicting customer needs is Azure Cognitive Services. Cognitive Services allows predictions to be made based on existing models, which require no additional training. These services are optimal, and effective when you have no data scientist on staff to train the predictive model. For some services, no training is required. Other services require only minimal training. If the existing models within Cognitive Services don’t align with your desired prediction, Azure Machine Learning Studio might provide a way to build the desired predictions, without requiring deep data-scientist skills. Azure Machine Learning service provides the deeper, code-based approach that’s required for deeper training of customer datasets. By using languages such as Python, data scientists can train and then build an algorithm to predict customer needs.
All the approaches mentioned previously result in an API that exposes the prediction model to applications. Within your solution, use any of the approaches to feed data that’s collected from your customer into a predictive API. The results can then be integrated into the customer experience as a suggested next step.
About the Author:
I am Matthias Gessenay, and I am a Microsoft MVP for Azure, Microsoft Certified Trainer and Azure Architect for Corporate Software. I am in IT for about 20 years, and dealing with Azure since about six years. I am passionate about community and run four Meetup groups.
Gessenay, M. (2020). Microsoft Cloud Adoption Framework for Azure – Adopt (Part IV). Available at: https://cloudspeed.ch/post/azure-cloud-adoption-framework-part4/ [Accessed: 19th May 2020].
Check out more great Azure content here