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

Windows Docker Containers can make WIN32 API calls, use COM and ASP.NET WebForms

After the last post , I received two interesting questions related to Docker and Windows. People were interested if we do Win32 API calls from a Docker container and if there is support for COM. WIN32 Support To test calls to WIN32 API, let’s try to populate SYSTEM_INFO class. [StructLayout(LayoutKind.Sequential)] public struct SYSTEM_INFO { public uint dwOemId; public uint dwPageSize; public uint lpMinimumApplicationAddress; public uint lpMaximumApplicationAddress; public uint dwActiveProcessorMask; public uint dwNumberOfProcessors; public uint dwProcessorType; public uint dwAllocationGranularity; public uint dwProcessorLevel; public uint dwProcessorRevision; } ... [DllImport("kernel32")] static extern void GetSystemInfo(ref SYSTEM_INFO pSI); ... SYSTEM_INFO pSI = new SYSTEM_INFO(

Azure AD and AWS Cognito side-by-side

In the last few weeks, I was involved in multiple opportunities on Microsoft Azure and Amazon, where we had to analyse AWS Cognito, Azure AD and other solutions that are available on the market. I decided to consolidate in one post all features and differences that I identified for both of them that we should need to take into account. Take into account that Azure AD is an identity and access management services well integrated with Microsoft stack. In comparison, AWS Cognito is just a user sign-up, sign-in and access control and nothing more. The focus is not on the main features, is more on small things that can make a difference when you want to decide where we want to store and manage our users.  This information might be useful in the future when we need to decide where we want to keep and manage our users.  Feature Azure AD (B2C, B2C) AWS Cognito Access token lifetime Default 1h – the value is configurable 1h – cannot be modified

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