Docker

Observations, tips and tricks for the CKA certification

In this article I’ll share some observations, tips and tricks for the Linux Foundation’s “Certified Kubernetes Administrator certification and exam. I’ve been operating Kubernetes in multiple environments for a few years now. I thought this would be an easy certification to get, but I was surprised by how hard it was! I took this exam without doing any formal training, I mostly focused on the areas of the curriculum which I knew I was a little weak at.
Read more

Manipulating Istio and other Custom Kubernetes Resources in Golang

In this article I’ll demonstrate how to use Golang to manipulate Kubernetes Custom Resources, with Istio as an example. No knowledge of Istio is needed, I’ll just use it to demonstrate the concepts! Istio is a highly popular Service Mesh platform which allows engineers to quickly add telemetry, advanced traffic management and more to their service-based applications. One interesting element of how Istio works is that when deployed into a Kubernetes cluster, many key configuration objects are handled as Custom Resources.
Read more

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

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

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

Creating a Resilient Consul Cluster for Docker Microservice Discovery with Terraform and AWS

In this article I’m going to show you how to create a resilient Consul cluster, using Terraform and AWS. We can use this cluster for microservice discovery and management. No prior knowledge of the technologies or patterns is required! The final code is at github.com/dwmkerr/terraform-consul-cluster. Note that it has evolved somewhat since the time of writing, see the Appendices at the end of the article for details. Consul, Terraform & AWS Consul is a technology which enables Service Discovery1, a pattern which allows services to locate each other via a central authority.
Read more

Simple Continuous Integration for Docker Images

In this article I’m going to demonstrate a few tips and tricks which can make your life easier when you are building or maintaining Dockerfiles. The need for a Build Pipeline Do we really need any kind of continuous integration or build pipeline for Dockerfiles? There will be cases when the answer is no. However, if the answer to any of the following questions is ‘yes’, it might be worth considering:
Read more

Run Amazon DynamoDB locally with Docker

tl;dr: Run DynamoDB locally using Docker: docker run -d -p 8000:8000 dwmkerr/dynamodb Try it out by opening the shell, localhost:8000/shell: That’s all there is to it! DynamoDB Amazon DynamoDB is a NoSQL database-as-a-service, which provides a flexible and convenient repository for your services. Building applications which use DynamoDB is straightforward, there are APIs and clients for many languages and platforms. One common requirement is to be able to run a local version of DynamoDB, for testing and development purposes.
Read more

Testing the Docker for Mac Beta

I’ve finally had a chance to install the new Docker for Mac Beta and give it a whirl. In this article I’m going to talk a bit about how Docker works, the challenges of running Docker on a Mac or Windows and how the new Beta helps. Below: The welcome message for the new Docker for Mac app So What is Docker for Mac? If you don’t know what Docker is, check out my article Learn Docker by Building a Microservice or the lovely What is Docker page from the docs.
Read more

Learn Docker by building a Microservice

If you are looking to get your hands dirty and learn all about Docker, then look no further! In this article I’m going to show you how Docker works, what all the fuss is about, and how Docker can help with a basic development task - building a microservice. We’ll use a simple Node.js service with a MySQL backend as an example, going from code running locally to containers running a microservice and database.
Read more