Blog

Kubernetes: Checking Pod Health

In my previous post on Pods, I gave a simple example running a container in Kubernetes. In this post, I will be discussing how to check pod health and keep them running with probes. Probes on Pods Even the best software fails from time to time. Be it networking issues, a software bug, or unrelated 3rd party dependencies. Being able to react to these failures and ensure the appropriate action occurs is critical to maintaining an overall healthy software system. Kubernetes has…

June 17, 2022
|
approximately 7 minutes to read
Kubernetes: Running Containers in Pods

I've been working on gaining a deeper understanding of Kubernetes and refreshing my knowledge on the topic. I'll be writing several posts over the remainder of the year on Kubernetes. In my first post I'm going to talk about the basics of running a container in Kubernetes with Docker Desktop. Enabling Kubernetes in Docker Desktop It's simple. Go to the settings, select the Kubernetes tab on the left, and in the settings click the checkbox to "Enable Kubernetes". Hit the apply…

June 03, 2022
|
approximately 7 minutes to read
Container Orchestration

In a previous post, I talked in brief about containers, and their benefits. In this post I want to talk in brief about container orchestration before I get into more in depth technical topics on Kubernetes. Container Orchestration Container orchestration is a way to manage running containers and the resources necessary for the containers. Container orchestration also manages a cluster of machines and allocate various I/O resources. Orchestrators A few years ago, there were…

May 27, 2022
|
approximately 4 minutes to read
Software Architecture: Containers

Containers are a transformational technology that enables an enterprise to move faster by using automation and better hardware allocations. As I'm doing some learning around Kubernetes as one of my technical development goals this year, I've decided to switch gears from my pure Software Architecture blogs to focus more on containers and Kubernetes for a few months to support those personal learning goals. While containers in and of themselves have less to do about software…

April 08, 2022
|
approximately 7 minutes to read
Reading Reference Data in .NET Unit Tests

When I'm unit testing in .NET many times I need a very large string or set of data to provide as input to a test case or as a final insertion. I like to use XUnit, but there aren't a lot of clear options to do this in any unit testing framework. One way to do this is to just store the large amount of data in a file somewhere near the test it's self. Common options to reference this file are around finding the test assembly DLL, making sure the files are copied to the output…

March 26, 2022
|
approximately 2 minutes to read
Software Architecture: Components

For most of my posts in my software architecture series, I've been talking about defining boundaries and layering software to build a piece of software. In this post, I want to talk about dividing layers up even further into software components. What's a Software Component A software component is a set of code that is typically built and deployed together and cannot be broken apart from that deployment unit. In .NET this would be an assembly. In java this would be a jar. In…

February 26, 2022
|
approximately 8 minutes to read
Software Architecture: Clean Architecture

Clean Architecture is a pattern set out by Robert Martin, also known as "Uncle Bob" in the software industry. It can read about in his book Clean Architecture: A Craftsman's Guide to Software Structure and Design. This is a post to summarize my thoughts after reading the book last year. It is an architectural pattern used to structure software. It's based on the premise that Use Cases and the Business Domain are central to the software. In other words, I can use an database…

February 18, 2022
|
approximately 9 minutes to read
Building a Gatsby Plugin to Render Mermaid Diagrams

A while ago, I decided to start using Gatsby to build my personal website (this site). I had been using the static site generator Hugo for a while, but the developer tooling wasn't that great. As I had been working on React pretty exclusively at work, I figured using React would be a better front end as the developer tooling is much better. After all React is often rated as one of the top view engines for the web right now. What is Gatsby? Gatsby is a static site generator…

February 12, 2022
|
approximately 5 minutes to read
Software Architecture: Dependency Inversion

Dependency inversion is a practice to help decouple code from its implementation. Specifically, it helps to control the flow of dependencies from one component to another. It's a crucial technique to have in a software developer's tool chest as it can help to craft the dependency chain in an application and enforce architectural boundaries. By being able to control the direction of dependencies in an application we can control where change needs to occur for an application…

February 11, 2022
|
approximately 4 minutes to read
Software Architecture: The Monolithic Application

This is the second article in my software architecture series. I'm going to be delving into monolithic software architectures. I will not hit all topics, but again this is just to organize my thoughts after recently reading several books related to software architecture over the past year. What's a Monolithic Architecture A monolithic architecture is a piece of software built together and deployed as a single code base. Internal components of the architecture typically have…

February 08, 2022
|
approximately 8 minutes to read
© 2026 - Built and designed by Jeremy Honl with Gatsby. Images are from Unsplash