Avoid join() in Azure Databricks, save $$$$

We recently replaced an old Kubernetes cluster in Azure AKS with a new set of notebook jobs in Azure Databricks. Overall the migration was a success but we definitely had to live through some growing pains.  Databricks is a for profit company founded by the creators of Apache Spark.  They offer a distributed compute platform …

Avoid join() in Azure Databricks, save $$$$ Read More »

MicroServerlessLamba.NET Series – API Call Resilience

In this next blog post of the MicroServerlessLamba.NET series, we will review how we managed to make microservices calls in a more resilient way.  As previously covered, hosting via functions as a service is not a silver bullet and it has its own set of challenges.  AWS Lambda is not an exception to this.  Functions …

MicroServerlessLamba.NET Series – API Call Resilience Read More »

Retry OData Client calls with Polly in .NET 4.5

Polly is a powerful fault handling library which can help make your service calls more resilient to failure.  Polly makes it very easy to define policies for service call retries, timeouts, circuit breaking and fallbacks that configure against your service client in a fluent way. We use Polly in our serverless microservice architecture extensively to …

Retry OData Client calls with Polly in .NET 4.5 Read More »

MicroServerlessLamba.NET Series – HTTP Service Endpoint Routing & Access

In this post we will cover how we make our microservices in Lambda available to API consumers via HTTP both internally and externally. The first thing you need to understand is a Lambda is not accessible via HTTP by default, you have to configure some form of HTTP endpoint that will route to the Lambda.  …

MicroServerlessLamba.NET Series – HTTP Service Endpoint Routing & Access Read More »

MicroServerlessLamba.NET Series – Config Organization & Basic Service Registry

In my last post of this series, we covered how we store and retrieve configuration information in AWS System Manager SSM parameters.  In this post, we will look at how the configuration information is organized by environment and how it serves as a basic service registry. SSM Path Structure First off we have two accounts …

MicroServerlessLamba.NET Series – Config Organization & Basic Service Registry Read More »

MicroServerlessLamba.NET Series – Configuration Management

This post continues my series covering the design and development of our latest server-less micro-service architecture written in .NET Core and hosted in AWS Lambda.  In this particular post we will cover how we are managing configuration data. Configuration management is a core capability in cloud native applications and one of the 12 factors as …

MicroServerlessLamba.NET Series – Configuration Management Read More »

Building Self-hosted Azure DevOps Agents with Windows Server 2019 Core

We recently needed to rebuild a self-hosted Azure DevOps agent and decided to use the latest Windows Server Core OS (2019). We used an old VMWare server to host the VMs but generally these steps should work regardless of the hosting method (bare metal, cloud VMs, containers, etc). Server Core This was our first time …

Building Self-hosted Azure DevOps Agents with Windows Server 2019 Core Read More »

MicroServerlessLamba.NET Series – Intro: A Scalable Server-less Architecture in AWS Lambda with ASP.NET Core Microservices

Over the last 18 months I have been working with our team to develop a scalable microservice architecture in AWS Lambda.  Starting with very little experience in AWS prior to this undertaking and now feeling MUCH more comfortable with it, I wanted to summarize our journey and share it with others who may find it …

MicroServerlessLamba.NET Series – Intro: A Scalable Server-less Architecture in AWS Lambda with ASP.NET Core Microservices Read More »

.NET DateTime Basics [are trickier than you might think]

#TLDR Handling dates/times in software is deceptively hard. If handling dates, times and zones extensively/accurately is a core concern (you will know if it is), use NodaTime. For the rest of us, the built in .NET classes will usually suffice if you know how they work. If you fall into the latter camp, read this …

.NET DateTime Basics [are trickier than you might think] Read More »