A blog about software development, DevOps, and delivering value.
Do you have a lot of evicted pods that need to be deleted in your Kubernetes cluster? Use the script below to clean them up. This script will search for evicted pods across all namespaces and delete them. You’ll find both a Powershell and bash version below. What are evicted pods? Kubernetes will evict pods […]
The simplicity of Azure Functions makes it tempting to avoid following good design practices like dependency injection. The default project template doesn’t even support it. This may be fine for learning and quick experiments but would be a mistake for production code. Simplicity is not an excuse for bad engineering. Luckily, setting up dependency injection […]
I’m working on a new project that will use managed identities to access an SQL database from a function app. I chose to use a user-assigned identity to simplify our deployment scenario. We use deployment slots for zero downtime deployments and I want to assign a single identity to control database access across those slots. […]
The new Azure.Identity library hit GA this month. I’ve been wanting to modify a lot of our services to use managed identities and this library, through the use of DefaultAzureIdentity, finally streamlines the experience between local development and running in Azure. So far only the most common Azure SDK packages have first-class support for it, […]
I recently read a post on a career advice board from a software engineer who was worried his job was hurting his career. He worked with “legacy code” at a boring company where nothing ever changed. They were stuck with outdated systems and poor development/IT practices. He felt behind in the industry and was worried […]
Record paging is a really common requirement for APIs that expose a lot of data. Paging in Azure Cosmos DB SQL API is done using continuation tokens. This post demonstrates how to use them to implement a paged API. When querying Cosmos DB through the REST API you can specify a maximum count to return in […]
I am NOT a systems administrator. But as I’m studying for the 70-532 exam one of the objectives is using the Powershell DSC extension. Most of the basic examples I’ve seen revolve around installing IIS, which was good but I wanted to try something else. So I decided to try opening firewall ports with DSC. […]
One of the first Azure-specific projects I worked on was a script to create all of the resources needed to run our application. It used the Azure Powershell module to build those resources and then deploy the application. That script saved a lot of time but it was error-prone and a headache to modify. Just […]
I’ve been working on a project where we’re migrating a data access layer from an old ORM to Entity Framework Core. The old ORM has some features that EF Core doesn’t support, so I was tasked with seeing if the SQL generation in Entity Framework Core’s SQL Server provider could be extended to support what […]
It’s a good practice to always test your EF migration code when you create a new migration, especially if you are manually tweaking the Up() or Down() code. If that code doesn’t apply the changes properly it could put the database in a bad state and break migrations if you try to run it again. […]