Building and deploying a .NET 8 App on an ARM64 processor using Azure Pipelines and AWS ECS Fargate. Part 2: Demo

In this two-part series, I’m going to show you how to build and deploy a .NET 8 app container image that targets an ARM64 processor. In part 2, we will attempt to perform an end-to-end process. This will involve building a .NET 8 API, containerizing the app targeting an ARM64 processor using Azure Pipelines, and deploying it on AWS ECS Fargate. Furthermore, a benchmark will also be conducted to compare the performance of the application running on an ARM64 Fargate container versus an AMD64 Fargate container.
Read more →

Building and deploying a .NET 8 App on an ARM64 processor using Azure Pipelines and AWS ECS Fargate. Part 1: How to build multi-platform images

In this two-part series, I’m going to show you how to build and deploy a .NET 8 app container image that targets an ARM64 processor. In part 1, I’ll be discussing some key concepts that you should know about how to build .NET multi-platform images.
Read more →

Testing Chiseled Ubuntu container images with .NET

The objective of this post is to test Ubuntu Chiseled images in combination with .NET, evaluating whether it is truly worthwhile to migrate our .NET apps to utilize these base images or not.
Read more →

5 ways to deploy a .NET Lambda using AWS CDK

This post is going to walk you through 5 different ways to deploy a .NET lambda using AWS CDK.
Read more →

How to automatically purge stale images from Azure Container Registry using ACR Tasks

Keeping your container registry free of stale or unwanted images is a task that often gets overlooked when beginning working with containers in the enterprise. In this post, I want to show you how you can use ACR Tasks to automate this process when working with Azure Container Registry.
Read more →

Trying out the built-in container support for the .NET SDK

A few months ago the built-in container support for the .NET SDK was announced. In this post I’ll put this feature to test, I’ll try to migrate from an application that contains a rather complex Dockerfile to a new version that has no Dockerfile and instead uses the container support feature.
Read more →

Keep your .NET platform images up to date using AWS ECR and Azure Pipelines

When talking about containers security on the enterprise one of the best practices is to use your own platform images, those platform images are the base for your company applications. In this post I’m going to show you an opinionated implementation of how to automate the creation and update of your own .NET platform images using Azure Pipelines and AWS ECR.
Read more →

Linting a .NET 6 app Dockerfile using Hadolint, dockerfile_lint and Azure Pipelines

Like any other language, Dockerfiles can and should be linted for updated best practices and code quality checks. In this post I will show you how to incorporate a couple of Dockerfile linters into our Secure DevOps workflow to ensure our Dockerfiles are always readable, understandable and maintainable.
Read more →

Profiling a .NET6 app running on AWS ECS Fargate with dotnet-monitor

The dotnet-monitor tool is an alternative to the .NET CLI diagnostic tools. In this post I’ll show you how to deploy a .NET 6 application into AWS ECS Fargate with dotnet-monitor as a sidecar container, and afterwards how you can profile an app using the dotnet-monitor HTTP API.
Read more →

Profiling a .NET6 app running in a linux container with dotnet-trace, dotnet-dump, dotnet-counters, dotnet-gcdump and Visual Studio

This post contains a few practical examples showing you how to profile a .NET6 application running in a linux container using the .NET CLI diagnostic tools (dotnet-trace, dotnet-dump, dotnet-counters and dotnet-gcdump) and Visual Studio.
Read more →

Testing how to use some container vulnerabilities scanners with Azure Pipelines

Vulnerability scanning allows us to review the security state of the container images and take actions to fix issues identified during the scan, resulting in more secure deployments. In this post I will be covering how you can use some of the most well-known scanners alongside with your Azure DevOps CI/CD YAML Pipelines.
Read more →

Setting up the SonarQube scanner when building a .NET Core container image

If you’re using containers quite probably you’re doing the build, test and analysis steps inside the Dockerfile, and setting up the SonarQube scanner when building the image can be a little more cumbersome than usual, and that’s why I wanted to write a little bit about it.
Read more →

Some common gotchas when trying to deploy a dotnet gRPC app to AWS ECS

Lately I’ve been deploying a sizable amount of gRPC services to AWS ECS so I thought it might be useful to talk a little bit about some gotchas I have encountered. Some of the problems I’ll be talking about on this post are specific of the .NET implementation of gRPC and another ones are from the AWS side.
Read more →

An opinionated approach about how to create an AWS ECS Fargate cluster and deploy apps on it using Azure DevOps Pipelines

These past couple of weeks I’ve been tinkering with AWS ECS Fargate and after losing some time tackling different approaches I thought it might be useful to write down what I ended up building, so without further ado let’s dig in.
Read more →

How to restore nuget packages from an Azure DevOps Private Feed when building a Docker image

In this post I’ll show you how to restore NuGet packages from an Azure DevOps private feed when building a Docker image.
Read more →