Ken Muse
Mastering the Jest TestEnvironment Event Types
Continuing the topics from my last post, this week I want to offer a deep dive into the lifecycle of a Jest TestEnvironment by exposing the events that are raised when tests are run. I’ll also explore some of the details that are included with each event.

Read this article

A Crash Course on Jest TestEnvironments with TypeScript
I needed a way to implement integration tests that would allow me to ensure that I could clean up the emulators I was using after each test cycle. Jest Test Environments provided a powerful way to do this, and TypeScript makes it easy to do (aside from a few quirks).

Read this article

Implementing Processes for GHAS using GitHub Probot
GitHub Advanced Security (GHAS) helps teams to shift left and secure their development practices. But what do you do when its process its processes and practices doesn’t quite fit your team’s approach? In this post, we’ll look at how to use GitHub Probot to implement your own process in a GitHub-native way.

Read this article

Planning Kubernetes Cloud Deployments
Last week we built an understanding of how Kubernetes reserves resources on a node. This week we’ll look at how cloud providers configure the resource reservations for their Kubernetes offerings.

Read this article

Understanding Kubernetes Resource Consumption
Surprised that you can’t fit as many pods on a node as you thought? Wondering why a node with 32 GiB of memory can’t hold four 8 GiB pods? It turns out that there’s a lot more to the story of how Kubernetes allocates resources. In this post, you’ll learn how resources are allocated and how to use that to plan your cluster.

Read this article

The Ultimate Debugging Hack for Developers
Developers usually want to be able to directly connect to a system, start the debugger, and step their way through the code. Being able to log into a machine and debug is the way most of us learn to troubleshoot and fix issues. But what if you can’t do that? And what if I told you there’s a better way to debug?

Read this article

Scaling ARC on a Schedule
In the past, ARC has a feature that enabled it to change the minimum number of runners based on a schedule: ScheduledOverrides. When ARC was modernized, this feature was not included in the new version. This isn’t an oversight. Instead, it’s a recognition that Kubernetes has a built-in feature that can handle this task: CronJob. Learn how to use the CronJob resources to change the settings for ARC scale sets on a schedule.

Read this article

The Top 5 Things To Know About ARC
Actions Runner Controller (ARC) is a powerful way to manage ephemeral, self-hosted GitHub runners. If you’re considering ARC or starting to deploy it, there are five key things to know if you want to be successful using it.

Read this article

The Importance of Kubernetes Logs
There’s a lot happening under the covers with Kubernetes. If you really want to master your Kubernetes environment, it begins with understanding the value of a logging and how to implement good logging practices.

Read this article

The Magic of Scaling and Auto-Scaling
Scaling systems is a process that is often counter-intuitive. It’s not just about adding more resources. It’s about understanding the bottlenecks and how to overcome them. After years spent troubleshooting highly scaled systems, I’ve learned a few things that can make the journey easier.

Read this article