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}'
]