Things Ian Says
This blog is a collection of tips, pointers and general thoughts about Enterprise IT Architecture. It contains discussion of techniques, proof of concepts, and some more general points. If you are interested in DevOps, API Management, Microservices, Frontend Development then you should find something of interest here.
Exploring Kubernetes with K3d: A Kubernetes Cluster
Sunday, 12 September 2021
I’ve been continuing my exploration of Kubernetes, via the container-based k3d implementation. In my previous article, I created a REST service. In this article, I start up a Kubernetes cluster and deploy the REST service to it.
Exploring Kubernetes with K3d: Creating a REST API
Friday, 2 July 2021
I’ve been exploring Kubernetes recently, using the container-based k3d implementation as a way to do this easily on my PC. However, before I started looking at k3d itself, I thought I’d write an initial app I could deploy onto it. This article describes creating this first app.
Hosting a Website with Netlify and Github
Thursday, 25 June 2020
With the ongoing situation of working remotely due to COVID-19, I needed an easy way to work collaboratively on a messaging diagram. Having tried some of the more general tools (virtual whiteboards, screen sharing Visio, etc) and having limited success — have you ever tried to edit a diagram in Visio with 3 or 4 people all making “helpful” comments — I started looking around for something more practical. Having found a Javascript-based solution which I thought could do the trick, I needed to find somewhere to host it. I’d seen a lot of people talking about Netlify, so I decided to give it a try. Here is my experience, which I hope will be helpful to anyone who also wants to use Netlify to host their website.
Using Traefik Proxy with Docker Compose and LetsEncrypt
Tuesday, 29 October 2019
Traefik Proxy is one of the newer reverse proxies available (compared to more established applications such as nginx and Apache httpd). The thing which differentiates traefik is that it was created in a post-Docker world and integrates with Docker to reduce the manual configuration needed. It also supports let’s encrypt to provide SSL encryption, with minimal extra effort.
This article looks at how we can use traefik as a reverse proxy across a docker-compose managed suite of containers and then use let’s encrypt to add SSL certificates for https access.
Using Go in the Browser via Web Assembly
Tuesday, 13 August 2019
I’ve wanted to try out Web Assembly for a while — it feels like it offers great potential for more flexibility in the browser. I’ve also been wanting to look at Go for some time now, so I decided to combine the two in one experiment. Here’s how I did in writing a simple web page, using Go as the programming language.
Breadth First Graph Traversal in Clojure (Kiwiland Example)
Saturday, 11 May 2019
In my previous article, I looked at how to create a graph in Clojure, and find the length of various journeys within it. I will now move on to look at how to search the graph, to solve some of the other questions in the Kiwiland Trains Programming Challenge. This will focus primarily on the implementation of a breadth first search.
Building a Graph in Clojure, for the Kiwiland Railway
Tuesday, 9 April 2019
I was recently looking at a programming test, where the challenge is to represent a railway system (called “Kiwiland”) and then deduce various facts about it (for example the distance for a certain route). I wanted to develop this in Clojure, and thought it would be an interesting thing to work through on my blog.
Enabling https with Nginx, Docker, and LetsEncrypt
Thursday, 22 November 2018
As more and more attention is paid to https (for example, with increasing levels of warning from Google Chrome on plain http sites), it becomes more and more important to ensure our websites are protected accordingly. Fortunately, Let’s Encrypt offers a free way to obtain certificates for our websites, and works simply with many standard web servers.
This article shows how we can configure Nginx to use Let’s Encrypt to provide certificates, and demonstrates how to automatically update the certificates when they expire. For flexibility, I have also put all the things in containers.
Using AWS Cognito to Secure an ExpressJS API
Sunday, 8 July 2018
In recent articles, I have shown how to create a login screen using AWS Cognito, and validate the resulting JSON Web Token (JWT) using Javascript. This article brings those elements together, showing how we can use our AWS Cognito login screen to protect access to an API being served from an ExpressJS application.
JWT Parsing with Javascript
Sunday, 17 June 2018
The previous two articles, showed how to create a login page using AWS Cognito, and how to break down the Json Web Token it produces. This article follows on from both of these, and shows how we can programmatically parse the JWT using Javascript.