Sunday, March 5, 2023

Introduction to Microsoft Cost Management

Source: Azure Product Page 

 Microsoft Cost Management is a powerful tool Microsoft offers to help organisations manage their cloud costs on the Azure platform. When many applications within the organisations get migrated, keeping track of cloud costs is becoming increasingly important to ensure they remain within budget.

Microsoft Cost Management offers a range of features designed to help businesses keep their cloud spending under control. Here are some of the key features:


  • Cost analysis: Provides a detailed breakdown of cloud spending, allowing businesses to see exactly where their money is being spent. This helps identify areas where costs can be reduced.

Friday, February 17, 2023

What are the VM Classes in Azure?

 Azure Virtual Machines offer flexible deployment options, including customizable virtual machine sizes and multiple pricing tiers.

As a consumer, you have multple classes to choose your VM workload from. Lets take a closer look at the different Azure VM classes available and how they can be used to meet specific needs.

  • General-purpose VMs

General-purpose VMs are designed for a wide range of workloads and applications. These VMs offer a balance of CPU, memory, and temporary storage, making them ideal for applications that require moderate-to-high performance, such as web servers, small databases, and development and testing environments. 

Monday, February 6, 2023

Azure Load Testing goes GA

Azure Load Testing allows you to conduct your workloads hosted on cloud.  While there are definite room for new features, it has been announced as Generally Available.  Creating an Azure Load Test instance on Azure is very easy. Hence, I will start with a created instance. 


In the quotas section you can see the quotas associated with the test instance. It also explains how the quotas are applied at subscription level. 

Thursday, January 19, 2023

Submit .Net class library to Azure Artifacts Feed

 Azure Artifacts feed provides great means to share the common reusable components across your organization. In the following code base I will display a template for Azure DevOps build pipeline. 

trigger:
- 'main'

pool:
vmImage: ubuntu-latest
demands:
- npm

variables:
buildConfiguration: 'Release'
dotNetFramework: 'net7.0'
targetRuntime: 'linux-x64'
moduleName: 'ModuleName'
entityTypeName: 'EntityType'
// Once you create a feed, that ID will be added here.
vstsFeedId: '<A Guid>'
major: '1'
minor: '0'
revision: $[counter(variables['minor'], 1)]
nugetVersion: '$(major).$(minor).$(revision)'

steps:
- task: NuGetAuthenticate@1
inputs:
forceReinstallCredentialProvider: true

// Optional: Run unit tests
- task: DotNetCoreCLI@2
displayName: 'Run unit tests - $(buildConfiguration)'
inputs:
command: 'test'
arguments: '--framework $(dotNetFramework) --configuration $(buildConfiguration)'
publishTestResults: true
projects: '**/*.Tests.csproj'

// Does packaging. Nuget version is automatically increased to next revision.
- task: NuGetCommand@2
displayName: 'Nuget Pack'
inputs:
command: 'pack'
packagesToPack: '**/$(moduleName).$(entityTypeName).csproj'
versionEnvVar: 'nugetVersion'
versioningScheme: 'byEnvVar'
packDestination: '$(Build.ArtifactStagingDirectory)'

- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
publishLocation: 'pipeline'

- task: NuGetCommand@2
displayName: 'Nuget Push'
inputs:
command: 'push'
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
nuGetFeedType: 'internal'
publishVstsFeed: '$(vstsFeedId)'

Sunday, January 8, 2023

Setting up App Config values with Bicep

There are often times where we need to setup a master configuration instance for the config values that might be referenced within pipelines. In such situations we can setup the initial configs such as environment name initially. 

First of all we will initialise a set of key value names. 

param keyValueNames array = [
  'appName$dev'
  'environmentType$dev'
  'Acr_Name$dev'
  'region$dev-${region}'
]

Saturday, November 19, 2022

Creating an Reading Ledger Entries in Azure Confidential Ledger

In my previous article I gave an introduction to Azure Confidential Ledger. In this article I am trying to publish a .NET code sample. There is already an example in MSDN which is not working as expected. Therefore I tried to build one while exploring API.  

I have created a .Net 6.0 based console application and will be using the default Program.cs class. 

Following Nuget packages are required to be installed. 

First get the ledger Uri, Collection Id and a console input as a message to be published. 

Saturday, November 12, 2022

Getting started with Azure Confidential Ledger

Azure Confidential Ledger is one of the most interesting Confidential Computing offering on Azure. It offers you the capability store data in a secure blockchain with private and public ledger type options. In the back of it, it uses blocks in blobs stored in Azure Storage Account. Data in transit is secured with TLS 1.3 and allowed via verified certificate users as well as Azure AD users. 

Currently you can have Administrator, Contributor and Reader access levels assigned via Azure RBAC. Confidential Ledger runs on Trusted Execution Environments (TEEs) of Azure Confidential Computing. All the administrators and cloud providers are kept outside a Trusted Computing Base and it prevents anyone having access.