Responsiveness of a web application is one of the most important aspects which affects how happy users are with the application. For a modern web application, end-user response time is a good indication of responsiveness, which at a high level is the sum of the client side response time (time to bind elements, UI execution etc) and the backend response time (which includes backend server request processing time, network latency etc).

Generally, prior to the application changes being propagated into production performance testing stage tests the backend response time, and whether the application’s backend APIs are responding as quickly as…


While working on a recent project we required to define the git branching strategy, define the CI/Deployment pipelines, and create the Azure Pipelines for JavaScript Azure Functions, given the requirements and constraints. Following are some of the key requirements and constraints:

  • There were 3 environments dev, UAT and prod where the Azure Functions App was to be deployed
  • There were going to be scheduled releases with 3 week sprints
  • It must be possible to work on features of the current sprint (dev environment), while in parallel hardening to be released features from the previous sprint (UAT environment), and also have…


This post covers the high level branching, build and release strategy for the requirements mentioned in the parent post here . The parent post also covers the actual CI and deployment pipelines for a JavaScript Azure Function mentioned in this post.

We decided to go with Git Flow with the following Build and deployment strategy. Let us consider the pipelines in the following phases:

Sprint Feature Development Phase

Sprint Feature Development
  • During a sprint changes for features / tasks are merged into the the develop branch using pull requests
  • When a pull request is created the pipeline PR_BUILD_PIPELINE is triggered. This pipeline performs…


In a recent project I was involved in, we had the following requirements:

  • We needed to create a single Azure DevOps (AzDO) yaml pipeline, which used terraform and could provision infrastructure for different environments (like development, testing and production). This means that the person executing the pipeline can pass in a parameter for the environment name (dev, tst, or prd) and the pipeline would provision / update the infrastructure for that environment.
  • All secrets needed to be in Azure key vault.
  • The service principals created for AzDO and terraform need to be given minimal access.
  • There was a need for…


A few months back there was an announcement related to the cloud load testing functionality in Azure DevOps. As per this announcement the functionality will be deprecated in a few months. The announcement does give alternatives, however what this means is that Cloud Load testing functionality from AzDO is not a long term Option going forward.

During recent work, one of the requirements we had was that after deploying an application to one of the environments inside a private VNet we wanted to run some simple load / benchmark tests against that application from within the VNet. …


In a recent project, as a part of the Azure DevOps (ADO) pipeline step we were required to provide a service principal (SP) access to an Azure resource. This post describes the issues we encountered and a couple of solution options to resolve the issues

Explanation of the requirement in more detail

The aim is to perform a role assignment through an Azure DevOps (AzDO) pipeline.

The diagram below explains a simplified example where we need to provide the testAsigneeSP service principal contributor access to the testroleassignmentsa storage account. This assignment needs to be performed from within an AzDO pipeline. This AzDo pipeline connects to Azure using…


A canary :-)

In a recent project I was working on the objective was to setup release pipelines for a canary / phased rollout of an applications micro services. The deployment target for these micro services was a Kubernetes cluster (AKS).

This post assumes familiarity with Kubernetes, Helm and Istio traffic management

This post describes the key requirements, the release strategy selected for those requirements, and the details of how each stage is implemented.

In a subsequent post I will detail how the release stages described in this post map to an Azure DevOps Release pipeline.

The Key requirements

The high level requirement was to do…


Azure Virtual Machine Scale Sets (VMSS) are a great way to deploy identical set of VMs (based on same VM image) in true autoscale. When there are modifications to an application deployed to a VMSS one approach commonly used to reliably push the modified application changes live is using Blue-Green deployments.

Packer is one of the most popular tools to automate creation of VM images with the application code baked in. In this post Packer has been used to create the VM images which are used by the VMSS.

Azure DevOps pipelines are a great way to build, test and…


Azure Functions are one of the Azure serverless services which enable you to create a microservices-based application without needing to think about managing the actual infrastructure. Java is one of the languages which you can use to create serverless functions on Azure.

Azure Pipelines are a great way to build, test and deploy application to any cloud.

In this post, we will look at a few of the ways in which you can deploy Java code from a git repository to Azure Functions using Azure Pipelines. We will look at both pipeline as code (azure-pipelines.yaml) …


This post is a continuation from part 1. In this post we will look at the issues faced when trying to share GPU amongst multiple container instances of a Python3 application which uses tensor flow object detection and OpenCV. Part 1 of the post has details of containerization of this application.

Deployment VM

The deployment environment for this phase of our project was an Azure NV12 VM (2 GPUs, 2*8 GB GPU Memory). You can get more details of the N series VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes-gpu

The Objective

What we were looking to achieve was to simultaneously run 4 instances of the container on the…

Maninderjit (Mani) Bindra

Cloud, Containers, K8s, DevOps | CKA | LFCS | Senior Software Engineer @ Microsoft

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store