Service Catalog is what allows Kubernetes to provision and connect to resources in the cloud. Let me explain through a demo.

In Kubernetes, we can deploy ‘almost’ anything. Anything that is a container. We can deploy SQL/NoSQL Databases, API Gateways, Queueing systems, monitoring tools, etc… But, it is still hard manage them. For example, running a database server in a container in Kubernetes is not always the best option. Because, if we will need a High Availability (HA), SLA of 99.99%, Failover plans… then we will need to do a lot of work. It is doable, for sure. …

Let’s see how we can quickly setup a SonarQube environment using Docker container to run a code analysis for a .NET Core application.

  1. Run SonarQube on Docker
  2. Install SonarScanner for .NET Core
  3. Start the code analysis

1. Running SonarQube on Docker

$ docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube

2. Installing SonarScanner for .NET Core

Download SonarScanner from this link. Extract it, then look for the file ‘SonarQube.Analysis.xml’ and add the following:

<SonarQubeAnalysisProperties       xmlns:xsi="" xmlns:xsd="" xmlns="">
<Property Name="">http://localhost:9000</Property>
<Property Name="sonar.login">[my-user-token]</Property>

Then, Add the path to the extracted SonarScanner folder to your PATH environment variable.

Run the command:

$ dotnet tool install --global dotnet-sonarscanner --version 4.7.1

More about…

Along with Unit and Integration Tests, UI tests are very important in the software development lifecycle. They can detect bugs and anomalies before going to Production. But, UI tests could be so expensive to setup: we need a full VM with all the dependencies. And sometimes we need more than one VM if we want to scale out to run tests in less time.

What would be a light and easy solution to run UI tests ?

The short answer

Instead of relying on VMs, we can launch UI Tests in Docker containers !

The answer in a video

Let’s see how that works through a demo.

This workshop will get you started with installing Prometheus and Grafana into Kubernetes to monitor applications to view metrics. We’ll go through these 3 steps:

  1. Export metrics for Prometheus from an ASP.NET Core app
  2. Install Prometheus into Kubernetes using Helm charts
  3. Add Grafana dashboard to view metrics
Prometheus explained

Setting up the lab

You will need to have the following to start the lab:

  • Kubernetes cluster: AKS/GKE/EKS… or Minikube would be enough !
  • Helm CLI tool installed (guide)
  • Dotnet CLI tool installed (here)

1. Exporting metrics for Prometheus from an ASP.NET Core app

We want to configure the app to start exporting metrics. These metrics will be scraped later by Prometheus. We’ll create a…

The problem

Templates are a good solution for reusing pages’ design. In fact, when designing pages, we have a specific code dedicated for the design. Think of the page layout, colors, font sizes, title style, margins, etc… In a traditional approach, we need to rewrite this design’s code for every component that uses it. This results in code duplication, thus less maintainable code!

The solution

Fortunately, as we could refactor and reuse code for business logic, we could apply the same principal for UI code. This what is known under the name Application or Page Template. This approach could be used in almost all…

Do you think that change is hard? Here is what could make it easy and natural. My short answer is “listen to people around you!”

Next, I’ll share my own experience and explain how my friends inspired me to achieve three major career changes in few years.

First career change

The first career change started when I was a software engineering student, 8 years ago. My university used to focus heavily on technologies like Java and Oracle. However, one of my friends had a different experience. Indeed, he studied in a different university and used different technologies. Ones I hardly…

This quick workshop will walk you through configuring AKS with AAD to use RBAC to authenticate users.


The development team members needs to access Kubernetes cluster to deploy apps and configure the cluster. But, not all members needs the same level of access rights. It is even a best practice or a must have to grant members different access levels. For example, developers can get, create and delete deployments inside their own namespace. And, Ops guys can configure the cluster to add or remove users, scale the cluster or upgrade it. …

This tutorial will guide you on how to use RBAC with Minikube. The objective is to create users with limited and controlled access to kubernetes resources.

RBAC or Role Based Access Control is a security approach to grant access for specific resources to assigned users.


Minikube, by default, gives you full access to manage the resources in kubernetes. That is because it assumes that you are using it for learning and it is only you who is using it. Though, it is still possible to create multiple accounts with different access levels using RBAC. For example, we can create…

Deploying changes to the production database is really risky. It is enough to forget about one single simple detail and the migration will fail. Customers will start complaining and even worst they will go to the competitors.

In this article, we’ll solve this issue by creating a PreProd environment to run migrations and tests. Then, we’ll detail the challenges of this approach.

In a previous article, we have detailed the main options on how to apply migrations to the database from the CI/CD pipeline. …

Most talks about DevOps focuses on the application’s source code and dismiss the database. In this article, we’ll see how to add the database to the same CI/CD pipelines used for the app.

CI/CD for the app (Dev), database (DBA) and infrastructure (Ops)

Why adding the Database to the CI/CD pipeline ?

The objective of DevOps is to create a process for safe, secure and even more frequent delivery for the app. By saying the app, we mean the entire app including the database. Because, in a new app update, we might also change the database schema. For example, we need to add a property Color to our products. …

Houssem Dellai

Premier Field Engineer at Microsoft, ex MVP, Cloud & DevOps enthusiast. I share what I learn in my professional experience through articles and videos.

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