Switch

Patching Kubernetes Resources in Golang

Recently I needed to be able to quickly adjust the number of replicas in a Kubernetes Replication Controller. The original solution I'd seen pulled down the spec, modified it, then updated it. There's a better way! There's a patch API for Kubernetes resources. Patching resources is faster and easier than pulling them and updating the spec wholesale. However, the documentation is a little limited. After some trial and error I got it working, here's the solution.
Read more

mongo-monitor - a simple CLI to monitor your MongoDB cluster

The mongo-monitor CLI is a lean and simple tool to check the status of a MongoDB server or cluster. The code is on GitHub: github.com/dwmkerr/mongo-monitor Here's how it looks in action: In this animation I am monitoring a simple sharded cluster, and running some example maintenance operations, adding a node to a replicaset, stepping down a primary and shutting down a replicaset node. A simple CLI which shows the status in real-time can be very useful to keep open when performing admin, letting you see how your changes affect the cluster as you work on it.
Read more

The Death of Microservice Madness in 2018

En EspaƱol | Reddit Thread | Hacker News Thread Microservices became a very popular topic over the last couple of years1. ‘Microservice madness’ goes something like this: Netflix are great at devops. Netflix do microservices. Therefore: If I do microservices, I am great at devops. There are many cases where great efforts have been made to adopt microservice patterns without necessarily understanding how the costs and benefits will apply to the specifics of the problem at hand.
Read more

Effective Shell Part 3: Getting Help

This is the third part of my Effective Shell series - practical examples of ways to be more efficient with everyday tasks in a shell. Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don't Need to Know About Job Control Part 7: The Subtleties of Shell Commands In this article I'll show you how to quickly get help when working with tools in the shell, without disrupting your flow!
Read more

Integrating OpenShift and Splunk for Docker Container Logging

In this article I'm going to show you how to set up OpenShift to integrate with Splunk for logging in a Docker container orchestration environment. These techniques could easily be adapted for a standard Kubernetes installation as well! The techniques used in this article are based on the Kubernetes Logging Cluster Administration Guide. I also found Jason Poon's article Kubernetes Logging with Splunk very helpful. First, clone the Terraform AWS OpenShift repo:
Read more

Effective Shell Part 2: Become a Clipboard Gymnast

This is the second part of my Effective Shell series, which contains practical tips for using the shell to help with every day tasks and be more efficient: Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don't Need to Know About Job Control Part 7: The Subtleties of Shell Commands In this article I'll show you how you can use the shell as an efficient tool to compliment how you use the clipboard.
Read more

Effective Shell Part 1: Navigating the Command Line

This is the first part of a series I am writing which contains practical tips for using the shell more effectively. Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don't Need to Know About Job Control Part 7: The Subtleties of Shell Commands I can't think of a better place to start than navigating the command line.
Read more

A utility to help you wait for ports to open

There are occasions where you might need to have scripts or commands which wait for TCP/IP ports to open before you continue. I've come across this need again and again when working with microservices, to make my life easier I've created a little utility called wait-port which will wait for a port to open: It's built in Node, the project is open source, open for contributions and ready to use:
Read more

Tips and Tricks for Beautifully Simple Mobile App CI

In this article I'm going to demonstrate some simple tips and tricks which will help you build and maintain beautifully simple mobile build pipelines. These techniques can be applied to different mobile app technologies and integrated into almost any build system: Each tip is demonstrated in the sample apps in the dwmkerr/beautifully-simple-app-ci repo. The Challenges of Mobile App CI Tip 1 - Embrace Makefiles for Consistency Tip 2 - Control Version Numbers with a ‘Touch’ Command Tip 3 - Control App Icons with a ‘Label’ Command Tip 4 - Support Configurable App Ids Tip 5 - Document, Document, Document Conclusion The Challenges of Mobile App CI Conceptually, a mobile app CI pipeline is pretty simple:
Read more

Get up and running with OpenShift on AWS

OpenShift is Red Hat's platform-as-a-service offering for hosting and scaling applications. It's built on top of Google's popular Kubernetes system. Getting up and running with OpenShift Online is straightforward, as it is a cloud hosted solution. Setting up your own cluster is a little more complex, but in this article I'll show you how to make it fairly painless. The repo for this project is at: github.com/dwmkerr/terraform-aws-openshift. Creating the Infrastructure OpenShift has some fairly specific requirements about what hardware it runs on1.
Read more