Skip to main content

Tools, templates and assessments for the Govern phase of CAF (Microsoft Cloud Adoption Framework)

Microsoft is offering an excellent framework to support cloud migration and adoption process –Microsoft Cloud Adoption Framework (CAF) 

The framework defined an iterative process with the following phases:

  1. Define Strategy
  2. Plan
  3. Ready
  4. Adopt
  5. Govern
  6. Manage

For each of them, Cloud Adoption Framework (CAF) provides us a list of templates, tools, and assessment mechanisms that can help us to improve the adoption and migration process. Let's take a look at the ones for Govern.   

Governance benchmark assessment
Governance, in general, is not an easy task to accomplish. The combination of process, business stakeholders makes it difficult to implement, measure, and prioritize. Inside CAF, cloud governance contains 6 different domains that need to be managed: Deployment Acceleration, Organization Readiness, Resource Consistency, Cost Management, Secure Baseline, Identity Baseline.
In the first phases of a cloud adoption program, it is hard to decide on which governance domain we want to focus on first. This is where Governance benchmark assessment can offer us guidance. The tool helps us to assess the governance level on each domain (score base), identifying the domains where we have big gaps.

CAF Foundation blueprint
It is a basic landing zone blueprint that can be used as a starting point to build our governance. The value of this blueprint is the way how it is structured, covering the 3 pillars of governance through core Resource Groups, basic Azure Policies, and key Azure Services templates. On top of it, technical teams can build the initial landscape, ensuring that they are covering all the dimensions.

Governance discipline template
Can be used as a starting point at the moment in time when we want to define the governance processes. Offers a good document template that is used to define processes and the way how metrics are measured.

Cost Management discipline template
Similar to the previous template, offering a starting point related to how to do cloud cost management and tracking.

Deployment Acceleration discipline template
A document template with the main objective to accelerate the deployment, helping us to define the deployment plan, do risk assessment related to it, together with report and audit.

Identity Baseline discipline template
A document template that can be used when we define the Identity Baseline, covering aspects like business risk, metrics, and internal or external factors that could require a change in the way how we manage the identity.

Resource Consistency discipline template
Defines a document template to ensure that resources are created and managed in the same way across the organization. 

Security Baseline discipline template
Help us to define and mature the security baseline that it is used across the organization for cloud resources.

Azure governance visualizer
The tool creates a high-level view of our current Azure tenant, helping us to identify areas where cloud governance is not implemented as expected. The output of these tools is visual content covering:
  • Policies
  • RBAC
  • Blueprints
  • Management Groups and Limits
  • Subscription, Resources and Limits
The output can be generated in different formats (e.g. HTML, MD, CSV) and can be even rendered inside Azure DevOps. This tool can be used with success during the full life-cycle of our cloud journey to do the Governance assessment and generate a visualization of our current Governance implementation.




 



Comments

Popular posts from this blog

How to audit an Azure Cosmos DB

In this post, we will talk about how we can audit an Azure Cosmos DB database. Before jumping into the problem let us define the business requirement: As an Administrator I want to be able to audit all changes that were done to specific collection inside my Azure Cosmos DB. The requirement is simple, but can be a little tricky to implement fully. First of all when you are using Azure Cosmos DB or any other storage solution there are 99% odds that you’ll have more than one system that writes data to it. This means that you have or not have control on the systems that are doing any create/update/delete operations. Solution 1: Diagnostic Logs Cosmos DB allows us activate diagnostics logs and stream the output a storage account for achieving to other systems like Event Hub or Log Analytics. This would allow us to have information related to who, when, what, response code and how the access operation to our Cosmos DB was done. Beside this there is a field that specifies what was th...

Can User Technical Profile Influence AI Architecture Decisions?

In the last few days, I ran a small experiment on Devin/Windsurf/Cascade, BMAD, and LLM-based architecture decisions. The initial concern was simple: if an AI coding assistant knows something about the user, for example, that the user is a Java developer or a .NET developer, can this information influence the architecture and technology stack that the AI will propose? This question is important because many companies are starting to use AI tools not only for coding but also for product discovery, architecture, documentation, and technical decision-making. If the AI is influenced by the developer's personal profile, the result may not be fully neutral. It may look like a business or architecture decision, but in reality, it may be partially shaped by the context of the person using the tool. The test was done using BMAD with Devin/Windsurf/Cascade. The scenario was a unified field service operations platform. The task was to let BMAD refine the product, define the architecture and s...

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine: threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration: TeamCity .NET 4.51 EF 6.0.2 VS2013 It see...