What is your Azure Maturity Level?

The Azure Maturity Model is based on the Cloud Maturity Model developed by the Open Data Center Alliance. Its purpose is to help you determine where you stand in your ability to adopt the cloud successfully.

We have adapted it to be an Azure Maturity Model for guiding companies that are at various stages in their adoption of Azure. We have also used it to structure our Azure service offerings to match what is needed by companies at various levels of maturity.

The Azure Maturity Model levels are shown in Figure 1.


Figure 1 – Azure Maturity Model

Considering Clouds: These are organizations that are developing cloud strategies and plans but have not yet deployed applications or workloads into the cloud. They want to evaluate available cloud options and determine which applications or workloads to implement in the cloud.

New to cloud: Those who may be working on proof-of-concepts or initial Azure cloud projects. They want to gain experience with cloud in order to determine future projects.

Multiple applications or workloads deployed in Azure. They are focused on improving and expanding their use of cloud resources.

Azure Focused. These companies are already heavily using Azure and are looking to optimize their Azure cloud operations and costs.

How to tell where you are.

To determine your maturity level, you must be honest with yourself and do a self-evaluation based on the above criteria. Or you could hire an experienced consultant to come in and help you do it. clip_image003[1]

How to get to the next level (and why you want to)

Regardless of the level of Azure maturity that you are at you will need to look at your existing applications and workloads in terms of factors such as

§ Competitive pressures forcing you to the cloud

§ The shift from Capex to OpEx and Cost Control

§ Your desire for agility in capacity

§ The need for a hybrid architecture leveraging the cloud and on-premises resources with each other.

Workloads that cry out to be moved to the cloud

One of the primary reasons for moving to Azure has to do with Capacity Planning and Scalability. Capacity Planning in the data center is often a linear process. An IT director must make an estimate of the company’s capacity requirements over time, in most cases on a yearly basis. Then it is their job to make sure that those requirements are met. Ideally there should be no time during which capacity is wasted and no time during which the capability needed by the business is not available.

Unfortunately, reality is messy and the capacity needs of the business are never represented by a straight line. (See the curved line in Figure 2 for a typical example.)

Adding to the difficulty of matching capacity to requirements is the server quantum effect. You cannot normally buy and bring in servers of the exact size and timing to match the real demand curve. So, you have to buy servers in relatively large chunks as shown in the step-function in Figure 2


Figure 2 – Data Center Capacity

Contrast that with Figure 3 which shows that in Azure it is possible to match capacity requirements to available capacity because of the ability to scale up and scale down as needed to match demand.


Figure 3 – The Azure View

Applications and Workloads fit for Azure

Of course, Scalability is important, but it is not the whole story. You also have to look carefully at the applications and workloads that you have in your data center that you may want to move to Azure. You need to consider their “fitness” for the cloud. Figure 4 (from the dawn of Azure) seeks to define the characteristics of application (and workload) types that are “Fit for the Cloud”.


Figure 4 – Workload Patterns

Predictable Bursting

This is the pattern that started the Cloud revolution. We do have to give Amazon credit for this. Having a lot of capacity during the Christmas season that remained idle most of the year they decided to sell that idle capacity.

Examples of Predictable Bursting are the Christmas Rush I retail (the Amazon pattern), Tax Season in CPA firms, etc.


Given the ability to scale up and down in Azure a prime target are those applications and workloads that do not have to be always on. Examples might be processing that is only done at month-end, at end-of day or as otherwise required.

This is, by the way, a very significant pattern and one that can save a company a lot of money. One recent Migration Assessment that we performed for a client showed that they could save 35% of their entire compute costs by simply automating the shutdown and startup of Virtual Machines in Azure to match this pattern.

Growing Fast

I call this the “Grow-Fast” “Fail Fast” pattern. This is an application or workload that is new and may require a high level of resources. Or not. Only time will tell. No point in buying a lot of server capacity only to have it sit around idle if the expected demand does not materialize. An example might be a new web site that just might be the next Facebook. Or not.

Unpredictable Bursting

This one is a bit hard to distinguish form the predictable bursting case. This is the case where a lot of traffic hits your web site because Microsoft or Slashdot tells the world about it.  Initially there is heavy traffic to it, but it may not last. Again, no need to buy capacity that may not be needed in the long run.

Note that the above criteria used to be more relevant before the advent of Serverless computing services in Azure. With Serverless computing you do not pay for dedicated resources unless you are actually using them. Nevertheless, those patterns are still a good determinant of cloud fitness.

Who is responsible for what in Azure?

There are multiple ways to move applications and workloads to Azure. They are: Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). A third method Software as a Service (SaaS) is not actually a method supported by Azure as discussed below. These approaches differ primarily in who is responsible for the various levels of the hardware/software stack. The diagram below (also from the dawn of Azure) illustrates the typical on-premises hardware and software stack and contrasts it with your complete responsivity for everything in the data center to your more limited responsibilities in Azure.


Figure 5 – Cloud Services – Shared responsibility

Everything in black letters represents your responsibilities. The items in blue are handled by the cloud vendor, in our case by Microsoft Azure.


No issue here. You are responsible for everything. (Unless you contract out management of your infrastructure to a Managed Service provider that acts like your own IT staff).


In IaaS, the vendor (Microsoft) is responsible for everything up to 1/2 of the OS layer. Why 1/2? Because, although Microsoft takes responsibility of most to the OS layer you are still responsible for performing maintenance such as patching the OS when fixes come out.


PaaS was actually the first Azure service delivered back in 2010. IaaS was added after that to accommodate all the clients that wanted to get into the cloud quickly using a “Lift and Shift” approach to move applications and workloads to Azure. In PaaS, you have no responsibility for the non-application and data parts of the stack. You just bring your applicants and data to the stack and process it there. It should be mentioned that in many cases you can move applications to the cloud unmodified, however in some case they require modification (called “Modernization”) to make the transition successful and more cost effective.


A discussion of SaaS is somewhat misplaced in a discussion of Azure, but it needs to be contrasted with IaaS and PaaS. In SaaS, the vendor has complete responsibility for the entire stack. You just use the service provided by the SaaS vendor. Of course, you do need to bring your data but the application processing is provided by them. Good examples of SaaS would be Microsoft’s Office 365 and (from the dawn of computing) ADP Payroll processing and QuickBooks. (Which are not often recognized as pioneers in the SaaS space, but they are.)


Making the decision to take a Lift and Shift approach with IaaS, to take a Modernization approach with PaaS or to take a provided service approach such as SaaS can be hard decision to make. When we help our clients make that decision through a process we call “Migration Assessment” we evaluate all the criteria above. Not to over-simplify but figure 6 illustrates the thought process of deciding between SaaS, PaaS and IaaS.


Figure 6 – When to Use What?

Clearly if you can find a SaaS solution that does the job for the right price adopt it.

If the application or workload is amenable to Modernization that might be the right choice. Effort expended in modifying it to run better in Azure might result in lower costs and fewer maintenance headaches.

If neither of those approaches are appropriate then you can always take the Lift and Shift approach provided by IaaS to get the application or workload into Azure quickly. Accountants think in terms of Return on Investment (ROI) and Total Cost of Operation (TCO). In a world where business needs change rapidly and it is difficult to predict the future Time to Value (TTV) can often be a more important determinant of what to move to the cloud first.

And yes, I know that we haven’t discussed the Hybrid approach (blending cloud and on-premises resources together) in this post. Microsoft is the number one cloud provider in the Hybrid space, but that will have to be saved for another post on another day. As Mark Twain once said, “Sorry for the length of this letter, I did not have time to make it shorter”  clip_image003[2]

Bill Zack

Posted in Cloud, Cloud Computing, IaaS, Microsoft Azure, PaaS, SaaS | Leave a comment

Nashville Microsoft Azure Users Group Meetings 2020-2021

Nashville Group Logo

We founded the Nashville Microsoft Azure Users Group in 2013 two weeks after we moved here. Back then we started with 4 members. Now we have over 1800!

For most of that time we have been meeting at Microsoft in Nashville on the third Thursday of every month. Approximately two years ago we started recording and posting our meetings.  When the Pandemic hit we moved to just meeting online.  Although we very much miss not being able to meet in person, and hope to resume in-person meetings sometime in the near future, meeting online has had some advantages. Specifically it has enabled us to draw on talented Azure folks  from near and far as presenters.

We have decided to take a checkpoint and produce a summary of all the meeting recordings that we have posted on our YouTube channel in case you have missed any of them.

Here they are:

How to Get and Stay Current with Azure – March 19, 2020

The Azure product portfolio grows every single workday. This presentation will tech you how to stay on top of Azure-related announcements, changes, and retirements.

Presenter: Microsoft MVP Tim Warner will cover the skills you need to embrace the Azure cloud and maintain your sanity.

Windows Virtual Desktop – April 16, 2020

With the current pandemic more and more companies are finding it necessary to support their employees working from home. Windows Virtual Desktop is a solution that they are adopting to make that possible. Windows Virtual Desktop is a set of technologies that allows you to deploy and scale virtual desktops and apps on Azure in minutes. Users can access their desktop via the internet from any device. It’s the only virtual desktop infrastructure that delivers simplified management and multi-session Windows 10 together with the best Office 365 experience.

Presenter: Jerry Lambdin Senior Consultant at Planet Technologies.

Azure: What to use When – May 21, 2020

For this meeting we catered to those new to Azure, or who have not been keeping up to date on the latest Azure developments. If you are in the novice category great. But even if you are more advanced you are more than welcome to participate and share your experience.

Presenter: Bill Zack, Cloud Solutions Architect & President, The Nashville Microsoft Azure Users Group.

DevOps and Pipelines – June 18, 2020

You cannot do DevOps activities like automation or CI/CD without understanding the why of DevOps. In this meting we covered the why and how of DevOps and how it can benefit everyone in the organization. Then we discussed and walked through creating CI/CD pipelines in Azure DevOps. With testing and infrastructure as code, this should enable attendees on their devops journey.

Presenter: Chris Ayers is a DevOps Lead with a history of Full-Stack Development and Cloud Architecture. Chris has a focus in modern applications built with microservices, containers, Single Page Apps, RESTful APIs, and cloud technologies following agile practices. Throughout his career, Chris has tried to follow industry best practices and standards. Earlier in his career, he had lots of experience with security, infrastructure, and networking. Focusing on Dev Ops ties all of the different roles together. In his free time, Chris is a speaker at numerous meetups, an avid reader and a gamer.

DevOps Security – July 16, 2020

• What is DevSecOps and why should you care?
• Principles and objectives of DevSecOps
• Utilize the Secure DevOps Kit for Azure
• Securing the Azure DevOps Pipeline
Presenter: Jeffrey Lockwood, HealthStream AVP, Technology and Cyber Security

What it Means to Be an Azure Solutions Architect – August 3,2020

Azure MVP and Pluralsight Author Tim Warner Interviews Cloud Solutions Architect Bill Zack on what it means to be a Cloud Solutions Architect.

Don’t Pass on PaaS – August 20, 2020

As an application developer or architect, how can you get started with modernizing your applications to take advantage of cloud-native services, such as queues, secret stores, application performance management, and more? Whether you can begin a greenfield project, or you have a mature codebase to migrate to Azure, this session will introduce you to several PaaS services, including Azure Storage, Key Vault, and Application Insights. In addition to the basics about the services, you’ll learn about the available SDKs, and best practices.

Presenter: Sven Aelterman is a Cloud Solution Architect at Microsoft, where he works with US educational institutions. Prior to his current role, Sven was director of IT and lecturer in Information Systems for the Sorrell College of Business at Troy University

Demystifying Azure Networking – September 17, 2020

Different Azure Networking services can be used to connect cloud and on-premises infrastructure and services. In this hour-long session, Vaibhav will cover the basics of Azure Networking services including Virtual Networks, VPN gateways, and different load balancing options in Azure. He covered what each of the networking services does and when should it be used? He also showed a couple of demos and shared some useful resources for further reading. It was be a level-100 session which helped the audience to get a clear understanding of Azure Networking. It was also useful to administrators, developers, and solution architects who are preparing for Azure role-based certifications.

Presenter: Vaibhav Gujral, Cloud Architect at Kiewit & Microsoft Azure MVP

Securing Your Azure Subscriptions – October 15, 2020

Common beginner and first steps to secure your Azure subscriptions and environment.
1 Identity and Access Management (IAM) and Authentication
2 Security Center
3 Networking Best Practices and Network Security Groups (NSG)
4 Azure Active Directory (AAD), Groups, and Group Policy
5 Conditional Access
6 Encryption and Protocols, SSL Certs, Storage encryption

Presenter: Jon Bowker, CISO at Ncontracts

Terraform in Azure – November 19, 2020

Hashicorp develops tools to automate cloud workflows: provisioning, security, networking, and orchestration. Terraform is an industry leading tool automating the multicloud provisioning workflow. This session introduced and demonstrated Terraform Cloud, the enterprise version of Terraform with its expanded governance capabilities.

Presenter: Chris Smith is a Senior Solutions Engineer at Hashicorp covering the Tennessee and Kentucky region. He has worked in enterprise computing for 22 years as a sysadmin, a DBA, a software engineer, and in devops

Machine Learning for Azure Folks Without (or With!) a PhD – January 21, 2021

Let’s face it, machine learning is hard. As developers with lots of tasks already, we need all the help we can get. That’s where Microsoft Azure comes in. Azure provides three levels of machine learning services to developers. This talk covered those three levels. First are the Azure Cognitive Services, a set a RESTful APIs exposing trained models for common tasks, which require almost no knowledge of machine learning to take advantage of.
Second is the Azure Machine Learning Studio which lets you visually design machine learning workflows at a conceptual level. And finally, third is the Azure Machine Learning Service which manages the entire machine learning lifecycle, using a process called MLOps. Azure also provides services related to machine learning such as the Azure Bot Framework, and Azure Databricks. There is something for everyone in machine learning from Azure, those who do and do not have a Ph.D.

Presenter: Douglas Starnes is a tech author and Microsoft Most Valuable Professional in developer technologies in Memphis, TN.

Azure Resource Manager Template Proven Practices – February 18, 2021

This meeting of the Nashville Microsoft Azure Users Group was on “Azure Resource Manager Template Development and Best Practices”. This also included discussing Azure Bicep; the new Domain Specific Language for making ARM Templates a lot easier to develop.

The presenter was be our own board member Tim Warner, Microsoft MVP and Pluralsight author.

Introduction to Azure Image Builder – March 18, 2021

Image Builder is an Azure solution that provides a pipeline for custom image creation and management. This session explored what Azure Image Builder is and how it’s used to manage images. The presentation uses a Windows image as an example, identifying options for Linux images along the way. We also reviewed how to use PowerShell to customize Azure Marketplace images with custom software.

Presenter: Travis Roberts is a Cloud Infrastructure Architect at RBA Consulting, MVP, MCT, and author of “Zero to Hero with Windows Virtual Desktop” on Udemy.com. Travis has 20 years of IT experience in the legal, pharmaceutical, and marketing industries and has worked with IT hardware manufacturers and managed service providers. Travis has held numerous technical certifications throughout his career from Microsoft, VMware, Citrix, and Cisco.

Azure Landing Zone Deployments at Scale – April 15, 2021

As more and more companies are preparing to transition their critical applications to the public cloud, the need for a strong foundation that accounts for their unique scale, security, governance, networking, and identity requirements are greater than ever. The best way to accomplish this is through an Azure Landing Zone. This presentation stepped through how to set up the right Azure foundation, decide on a workload specific subscription design, showed you how to manage governance across multiple subscriptions, and then walked you through the buildout of the scaffolding needed for a foundational Azure environment through the use of Infrastructure as Code (“IaC”)

David Walden, Manager, SHI
Donald Pollard, Manager, Azure Services @ SHI
Keith Valentine, Manager, Azure Services @ SHI

We will  continue to meet on the third Thursday of every month and will post post those meeting in our YouTube channel. Stay tuned!

Bill Zack, President, The Nashville Microsoft Azure Users Group.

Posted in Cloud, Microsoft Azure, User Groups | 1 Comment

Windows Virtual Desktop and Windows as a Service

clip_image002[1]Many years ago, I argued with a friend of mine in Redmond that eventually even the Windows client operating system would be virtualized, just like Windows Server. He swore that would never happen. Since then the windows client OS has been virtualized in the form of bootable VHDs (I should have made a bet with him back then. Smile)

Predicting the future is risky, however it is pretty clear to me that we are now moving towards Windows as a Service (WaaS) or even Operating System as a Service (OSaaS). There is a lot of evidence to support this. That follows the path of Microsoft office, once an application completely installed on a computer now delivered in large part as a cloud-based service.

With the advent of the pandemic and the need to support remote and even home-based workers on all kinds of devices Windows Virtual Desktop (WVD) has suddenly become in great demand. Microsoft has gone through several iterations of offering Windows as a Service starting with partial solutions such as App Virtualization, Terminal Services, and Remote App and there have been 3rd-party solutions such as Citrix supporting this as well.

The latest offering in this family is Windows Virtual Desktop (WVD)

If we look at the challenges of delivering Windows as a Service, we must consider the requirements and what WVD provides or will provide in the near future to support this mode of delivery.

At its core an operating system is just the collection of files that implement it and the in-memory image of the running operating system.

  • The operating system software (Kernel, Device Drivers, and Utility software)
  • User management data (A User Profile either stored on the operating system disk or loaded from a shared remote location)
  • Applications that are often installed on the same operating system disk.
  • Persistent Data Files that are frequently stored on the operating system disk as well.
  • Non-persistent data used during OS and application execution.

Once all these files and data have all been virtualized then an operating system can be truly user and device independent and able to be delivered remotely and dynamically. It should not matter if the virtual machine that is hosting it is the same one that hosted it the last time that the user logged on.

Concurrent with this is the need to be efficient in having large numbers of users accessing a smaller number of OS images running in the service. The new Multi-session version of Windows supports this very well just as Windows Server has done for a long time. Of course, in cases where dedicated images are required WVD supports that as well.

So, what is there now to address these requirements?

If we look at the operating system as just a collection of files as discussed above, we can focus on the virtualization of the other components,

  • The Operating system
  • The user’s profile, unique to the user that can be stored externally to the OS and traveling with the user from computer to computer when necessary. FSLogix Roaming Profiles is currently the main way to support this.
  • Data Files which can be stored in a commonly accessible data store such as OneDrive or (in the case of a VM running in Azure) in Azure Files Storage.
  • Installed applications, which can be separated from the operating system and virtualized with a technique such as MSIX App-Attach which is currently in technical Preview. MX App-Attach places installed applications in an external VHD that can be mounted to a user’s session when they log on.

The pandemic has given a boost to the need to support remote workers on all kinds of devices that they own. Although not the only reason to use it we believe that is what has given it a boost. As the technology matures there will be even more reasons for companies to adopt it. And Operating System as a Service is fast approaching.

Posted in Microsoft Azure | 1 Comment

The Path to Successful Azure Adoption


Last month I posted an article: An Azure Migration Assessment Methodology that give guidance on how to perform a Migration Assessment project as part of a move to Azure. Back in 2017 I blogged about a company’s Azure Maturity Level. And way way back in 2011 I co-authored an article The SaaS Development Life Cycle to give companies guidance on how to approach their first Azure project. (In 2010 the Azure public cloud had just been released so there was not a lot of guidance about that subject anywhere.)

I have been working with Azure since before it was called Azure (back when I worked at Microsoft in 2007). Most of my time since then has been helping clients adopt Azure successfully.

In working with those clients, I have observed that a company’s Azure maturity level with respect to cloud adoption falls into four stages:


Companies that are interested in moving some servers or applications (assets) to a public cloud, but have not yet selected either those assets, or even the particular public cloud to use. These companies need help in selecting the appropriate cloud. Since I am an avowed Azure enthusiast, I will assume from here on that they have selected Azure.  Smile


Organizations that have selected Azure and want to perform a pilot program to evaluate the feasibility of a more major migration. Let me be blunt. Since their staff usually has no cloud expertise, they will need help to do this. They will also need help in acquiring the required training in Azure.

In some cases, they may have a specific pilot application in mind. If not then they may need a formal Migration Assessment to verify that the assets are appropriate to move.

In some cases, they will need help to assess their current assets and determine if a) they are ready to move to Azure with no changes, b) They can be moved to Azure with minor changes or c) they are not good candidates to move to Azure.

A Migration Assessment can also right-size the assets if desired, since most data center resources are way over-provisioned. The Migration Assessment can result in the selection of the pilot asset and also the planning for the next phase, a more major migration involving additional assets.


Companies that have completed their pilot project and are planning a larger migration. These companies may have already completed a Migration assessment in the previous phase in order to decide on pilot assets to migrate, or they may have skipped the assessment in the previous phase because the already had an asset selected for the pilot.

The next step is to develop a complete migration plan. This will involve partitioning assets into Build groups according to the applications that they support. Following this the Build Groups must be further structured into migration Waves for migration scheduling purposes. Waves (like development sprints) are the units of completing migration groups.


There is one more major category to consider, Companies that have a significant presence in Azure, but have not paid particular attention to governance, cost management and/or performance optimization. These companies definitely need help in optimizing their use of Azure and putting the appropriate governance controls in place.


Companies moving to Azure come in all shapes and sizes. Everything from just thinking about the cloud to proceeding to a pilot Azure project or a major migration. A significant number of them have assets currently in Azure but are not satisfied with the results as discussed above.

A good consultant has to customize what they offer to solve the client’s particular business problem and not just provide a general off-the-shelf one-size-fits-all solution. That is what I have tried to do over the years.

I hope this helps.

Bill Zack

Posted in Assessment, Cloud, Cloud Computing, Governance, Microsoft Azure, Migration | 1 Comment

Azure: What to use When! [Online Meeting] UPDATED

As many of you may know I founded and run the Nashville Microsoft Azure Users Group. This group has grown quite a bit in the last year. We now have over 1,500 members!

Nashville Group Logo - Copy

As a result, we have quite a few members who are just starting out with Azure, as well as many who are already proficient with Azure and operating at an advanced level. We do try to mix up our presentations to cover all member’s interests. We have had everything from introductory presentations to more advanced topics. Lately we have been focusing a bit on deep dives.

For our May 21st 2020 meeting we will cater again to those who are new to Azure, or who have not been keeping up to date on the latest Azure developments. If you are in the novice category great. But even if you are more advanced you are more than welcome to participate and share your experience.

Presentation Details

This online presentation will be an architectural overview of the Azure platform, its features and services. Since Azure is a very broad offering, we will focus on the question of what the Azure Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) features are, and when they should be used to solve specific business and technical problems.

If you are new to Azure, or not conversant with all its recent enhancements, this presentation will give you a good overview, not too deep, but deep enough to understand what to use when.


• What is Azure?
• Why adopt it?
• Azure Resource Management
• Compute Options
• Azure Storage
• Databases
• Business Continuity (Backup and Disaster Recovery)
• Networking
• Security
• Virtual Desktop
• IoT & Analytics
• The Future of Azure

Registration Link

Bill Zack

UPDATE: You will find the recording here.

Posted in Architecture, Cloud, Cloud Computing, Microsoft Azure, User Groups | 1 Comment

An Azure Migration Assessment Methodology

See the source image


As many of you may know I have been involved with Azure from its very beginning. As a Microsoft Architect Evangelist, and later as a Consultant, I have helped many Microsoft customers and partners adopt Azure successfully.

Some of these engagements have involved creating brand-new greenfield applications to run in Azure. However, many of them have involved either the migration of existing on-premises applications and infrastructure to Azure or the implementation of a Hybrid approach that spans both Azure and on-premises infrastructure and applications.

When faced with the desire to take advantage of Azure in some effective way most companies are in a quandary as to what to do first and how to go about it. For many of them we have recommended and executed a Migration Assessment Project. That is the subject of this article.  It covers what is in and out of scope for each phase, the deliverables of each phase and the actors involved.

In this article we assume that the project will be delivered by a Consultant (or a consulting firm) to a Client company. Note that this methodology is also suitable for internal use within a company.

It covers everything from the time that an initial Statement of Work (SOW) is signed until the final Assessment Report is delivered. It does not include the procedure for developing an SOW, as that will differ by company.

It also does not include detailed procedures for installing any automated analysis tool like Cloudamize, Movere or the Azure Migration Assistant, although such tools are highly recommended.

It also covers only Migration Assessment. Procedures for detailed Migration Planning and Execution are out of Scope for this document. However, at the end of the Migration Assessment Project a rough preliminary plan may be developed. How far to go with that should be agreed upon prior to the assessment.  Note that Planning involves developing a detailed plan for migrating specific applications/systems/workload to Azure. Migration Assessment stops with the identification and prioritization of the applications/systems/workloads that are likely migration candidates.

We have taken the approach here of just listing bullet points in most cases because explaining every one in depth could result in a book-sized document instead of a blog post. clip_image001 Nevertheless, this should give you a good starting point.

The Procedure


Every Migration Assessment project has the following work phases:

  1. SOW Completion
  2. Internal Project Preparation
  3. Pre-Kickoff
  4. Kickoff
  5. Functional Meetings
  6. Analysis
  7. Engagement Completion

SOW Completion

SOW Development occurs some time before the Migration Assessment project itself. We are including it here for completeness even though it is not strictly speaking a part of Migration Assessment. It covers from the time that an SOW is deemed necessary until the SOW is actually approved by the Client.

Internal Project Preparation

This phase is internal to the consulting organization executing the project.

  • Review the signed SOW.
  • Identify and commit the Consulting Resources to work on the project.
  • Create a Project file in a plan repository such as SharePoint.
  • Determine if an automated discovery tool like Cloudamize, Movere or Azure Migrate will be used.


  • Ask the Client to fill out a Pre-Migration Assessment Questionnaire. This should include questions on business objectives, facility locations, technologies in use, licensing considerations, etc..
  • Schedule the Kickoff meeting.
  • If a discovery tool will be used:
    • Install the discovery tool one to two weeks before the Project Kickoff. Let the tool run for at least one week.
    • Run the tool reports at the end. Format the results in Recommendations Format. Be clear that these are only preliminary results.
  • Ask the Client to identify and commit resources from the Functional Areas for each meeting. These areas may include:
    • Business stakeholders. (For information on deadlines, mergers, etc.)
    • Application Development. (if required)
    • Network architecture & operations.
    • Server architecture & operations.
    • Support. (Help Desk, Tier1/Tier2 support)
    • Application Development support. (Quality Assurance, Production migration, etc.)
    • Identity. (Active Directory)
    • Security. (Chief Security Officer, Security analysts, etc.)
    • Storage and/or Database management.
    • Enterprise Architecture.
  • And if relevant:
    • Sales.
    • Marketing.
    • Line of Business Managers.

Prepare an hour-by-hour Kickoff meeting agenda. Also prepare a presentation deck for the meeting.


Conduct the Kickoff meeting.

  • Review the SOW and explain the Migration Assessment process.
  • Determine if the Client has any preference for which applications or workloads they would like us to focus on first. Often a Client will have determined preferences in advance.
  • Prepare for the Functional Meetings  by reviewing the tool reports (if used) and any  other initial documentation provided in advance.
  • Collect existing documentation (Server/Workload/Application inventory) where available. This can be used to determine interview order.
  • Identify the stakeholders who must sign off on the results.

Functional Meetings

Meet with the relevant audience, review the Pre-Assessment Questionnaire and confirm responses. Fill in any gaps.

  • Review the relevant questions for that audience as well as any additional questions that we need answered to find out what else we need to know.
  • Discuss the preliminary tool recommendations (if used). Explain that this is a first look and not final. Form conclusions and/or determine the need for additional information.


There are two methods to be defined for discovery and analysis: an optional automated tool, like Cloudamize, Movere, Stratozone or Azure Migrate, and Manual Discovery. Even in the case of tool based discovery manual analysis will still be required to complete the process and draw conclusions from the data. Tool reports will just be used as input to the process.

In the case of Manual Discovery, perform the discovery process manually by collecting architecture and workload data on potential applications and workloads that are appropriate to move to Azure.

  • Analyze application/system/workload documentation provided by the Client.
  • Develop Current state and Desired State. (What does the tool , if used, suggest?)
  • Review candidate applications for Cloud appropriateness (Fit). Evaluate whether the application is appropriate for running in the Cloud.
  • Determine Business Criticality of the application.
  • Evaluate potential Risks & mitigations.
  • Develop a high-level cost/benefit analysis. Identify low-hanging fruit, minimum Time to Value (TTV) opportunities and the Return on Investment (ROI) of moving selected workloads/systems/applications to Azure.
  • Determine migration approach such as Infrastructure as a Service (IaaS), Platform as a  Service (PaaS), Software as a Service (SaaS) or a Hybrid approach.
  • Determine the specific techniques to be used:
  • Rehost (Lift and Shift as-is to the cloud. Host in a VM or PaaS Compute platform such as Web Apps).
  • Refactor (Move to Azure with some modification to take advantage of Azure PaaS Services such as Azure SQL Database).
  • Reengineer (Restructure the complete application to take advantage of things like Microservices, Containers, Serverless computing, etc.).
  • Identify the physical servers or VMs that support each application/system/workload.
  • Develop a preliminary priority list for Migration to IaaS, PaaS, SaaS or Hybrid.
  • Review tool data. Look for exceptions that might preclude tool use (disk size, IO, performance, configuration, etc.).
  • Determine servers and/or VMs that are related and group into potential migration sets.
  • Consider ease of migration and tools/approach to be used.  Consider suggested migration tools to be used such as Azure Migrate, Azure Database Migration Service, etc..
  • Define supporting infrastructure changes required, if any.
  • Identify Backup and Disaster Recovery (DR) requirements.
  • Determine Multi-Region strategy if required.
  • § Rank applications/systems/workloads on a grid. Answer the question: Why this one vs. that one?

Engagement Completion

  • Hold Internal Consulting review.
  • Hold Post analysis review with the Client.
  • Make recommendations on what needs to be done next.  That could include Migration of the top 5 targets.  It may also include a preliminary Migration Plan, although that plan will need to be refined following the Migration Assessment.
  • Deliver preliminary cost for the proposed migrations.
  • Evaluate the Client’s fitness to adopt Azure. (See  What is your Azure Maturity Level? ) This should include considering Technical and Business considerations, staff skills, etc.
  • Determine the required training for the Client to make them ready for Azure and to be self-sufficient afterwards.
  • Determine if the migration(s) should include a change in culture to DevOps.
  • Hold the project close out meeting.
  • Submit final consulting invoice to the Client. clip_image001[1]


An effective Azure Migration Assessment is critically important to the success of a company’s transition to Azure. No-one should attempt migration without a solid assessment and a plan.

Although the methodology set forth herein may not be applicable in every case or usable as-is for every Migration project we feel that it will be useful in developing your own assessment and guiding you to a successful migration to Azure.

As always, we are interested in what you think. Let us know if you agree, disagree or have suggestions for improvement.

Bill Zack, Azure Architect.

Posted in Assessment, Cloud, Cloud Computing, Governance, Microsoft Azure | Leave a comment

A few simple rules for Working From Home

Thanks to the Covid-19 pandemic a lot of folks who traditionally worked from an office daily are entering the new world of Working from Home (WFH).

It is pretty clear to me that this is not just a temporary situation. Things will never be 100% back to not WFH again.

It seems like everyone and his brother are on social media discussing this and explaining how to do it successfully. I am no different, however, I have been doing it for over 14 years! I have a simple set of 4 rules to live by that have worked for me.

1. Be dressed and at your desk by 9AM every morning.

2. Set daily work and personal objectives for the day and week. There are many planning tools that you can use but I find that a simple spreadsheet with no more than three columns works best for me. (Someone once said that if you have more than 3 priorities then you have none!) 

In my case they are Work, Personal and Technical Community tasks. (I run a  1,500+ member Microsoft Azure Users Group that I founded and run in Nashville Tennessee as well as my “day job” as an Azure Architect with Planet Technologies helping our clients adopt Azure successfully.)

Here is a sample of mine. (Redacted of course Smile)


Incidentally, I also keep a log of how I spent my time each day.

Yes, I know I cheat a bit on the subject of only three priorities since I have separate list for education. Smile (I spend about two hours a day keeping up with Azure.)

3. It is OK to do personal stuff in the middle of the day, but see rules 2 and  4.

4. Keep close track of your time!  It is a precious commodity and will disappear quickly if you are not careful.

Welcome to the new world of WFH! Smile


Posted in #WFH | Leave a comment

Nashville Global Azure 2020

The April 25th, 2020 Global Azure event in Nashville has been cancelled!

Global Azure events all over the world have been cancelled due to the Covid-19 virus. (See https://globalazure.net/Blog/Post/190/Global-Azure-and-COVID-19)

Because of this we will not be holding our April 25th Nashville Global Azure 2020 event. We will continue to hold our monthly meetings on the third Thursday of every month starting on March 16th.

We will try and reschedule the Nashville Global Azure 2020 event for some time later this year. Make sure that you are registered at https://www.meetup.com/The-Nashville-Microsoft-Azure-Users-Group/ in order to receive future announcements.

In the meantime, we will be contacting all presenters and sponsors to see if they want to present or co-sponsor an any of our monthly meetings.


Original announcement:

This year’s Nashville edition of the annual Global Azure day-long worldwide event will be held on Saturday April 25th. Here is where you can register.

Many of the details are still being finalized, however, we are currently soliciting presenters and local sponsors. There will be a number of global and local sponsors, including Microsoft that will be providing food and other SWAG as well as raffle prizes for the event. (See this blog post from last years event for an idea.)

The tentative agenda is posted below. Note that we still have a couple of open presenter slots left. If you have a topic that you would like to present, please let us know at wzack@live.com.

If your company would like to sponsor the event, provide raffle prizes or other SWAG then let us know that as well. For that please contact Roger Dahlman: roger@dahlman.net.

Current sponsors are:

  • Microsoft
  • Vaco
  • Provisions Group
  • Snowflake
  • Planet Technologies

And if you would like to volunteer to help with the event in other ways let us know that as well.

This will be a free event.

Tentative Agenda:


Bill Zack, President, The Nashville Microsoft Azure Users Group

Posted in Event, Microsoft Azure, Windows Azure | Leave a comment

Azure Governance: The Key to Azure Success


A while back I did a blog post titled: “Is Azure Adoption Too Easy”. That title raised a few eyebrows.

Let me be perfectly clear; I have been working with Azure since before it was called Azure. I discovered it when it was an internal project at Microsoft and immediately knew what I wanted to specialize in. Azure is in my blood. I founded the Nashville Microsoft Azure Users Group with four members two weeks after I moved to Nashville. Now we have over 1,400 registered members.

That blog post was just to emphasize how easy it is to throw something up into Azure, take all the defaults and get it running without a lot of planning. There is nothing wrong with that approach for initial experimentation. However; a production implementation requires planning and planning requires the implementation of good Governance.

The Business Dictionary defines Governance as “Establishment of policies, and continuous monitoring of their proper implementation, by the members of the governing body of an organization. It includes the mechanisms required to balance the powers of the members (with the associated accountability), and their primary duty of enhancing the prosperity and viability of the organization.”.

Good Azure Governance requires up-front planning. Microsoft has done an excellent job of defining Azure components and services to support it. To be successful in Azure companies have to be pro-active in adopting those Azure features. I spend a lot of my time presenting on these topics at Planet Technologies Azure workshops that we give for our clients to insure that they adopt Azure the right way.

For those of you who are in the Nashville area we will focus on Azure Governance at the January 16th meeting of the Nashville Microsoft Azure Users Group. Join us if you can.

Bill Zack, Azure Architect

Posted in Cloud, Cloud Computing, Governance, Microsoft Azure, User Groups, Windows Azure | Leave a comment

The Nashville edition of the 2019 Global Azure Bootcamp was a great success!

We had a great 2019 Global Azure Bootcamp event in Nashville on Saturday April 27th

Approximately 80 Azure enthusiasts attended the event. Next year we will probably have to move to bigger space since we could not accommodate everyone who wanted to attend.

I could write volumes about the event but, since a picture is worth 1,000 words, here are some pictures. Open-mouthed smile


The Agenda


Lee Cox from Microsoft Delivered the Keynote on the Azure Roadmap


I presented a Session on Disaster Recovery with Microsoft Azure Site Recovery


We had a vigorous Ask the Experts Q&A Panel


These were the Global Event Sponsors who donated raffle prizes


We also had several local event sponsors


In addition to Global Sponsor raffle prizes we had three local sponsors donating big raffle prizes


Here is the happy Drone winner


And the winner of the cool Xbox/PC Gaming Keyboard


And of course the Apple Watch Winner


We had lunch from Subway courtesy of Microsoft and the morning break courtesy of Provisions Group.  Vaco provided ice cream for our afternoon break.


This montage would not be complete without thanking our great volunteers who made this event happen.


Remember that our monthly Azure group meetings are every 3rd Thursday of the Month at Microsoft in Nashville.

See you there.


Posted in Cloud, Cloud Computing, Event, Microsoft Azure, User Groups | Leave a comment