Our Definition of Done

There are many definitiions within Agile about what it means for a piece of software being defined as ‘done’; Here is ours.

SSL Certs, Docker and Nginx reverse proxy

This article describes how to add SSL certs to websites hosted as docker images started up via Docker-Compose and using a nginx reverse proxy container called “jwilder/nginx-proxy”. SSL has become the default mechanism for most browsers to provide transport level encryption and security against hackers and other entities who may be wanting to ‘listen in’ to traffic to and from your site and has been historically a pain to set up and expensive since you would need to buy one or more certificates from trusted sources.

Traefik, Consul and Microservices in Go

Microservices are very popular - but how do you scale them ? There are many alternative solutions to this computer science question, but the one’s today we will consider are a couple of common and popular pieces of software called ‘Traefik’ and ‘Consol’. This article is an alternative approch to the one we did in the Linkerd API Gateway Pattern. The Problem. The solution to scaling many instances of the same API from an API perspective (we wont be talking about repository backends such as databases within this article) resolve around the need for two things.

Grafana, Prometheus, Docker and Devops

An important part of any modern development group is Dev-Ops and adding metrics and telemetry to your applications and infrastructure. Adding metrics will (to name a few): Allow a development group and company to understand the ebb and flow of their applications and infrastructure. Allow alerts to be defined and sent when a server or service goes down or gets stressed. Allows a company to identify when more servers are required or others require retiring.

Ansible Ad-hoc Commands

Ansible is a versatile simple and powerful IT automation platform that makes your day to day dev-ops a lot easier. Ansible allows automation of your IT Infrasture such as installing software, restarting servers amongst many other features be it on your own hardware or in the cloud. Riomhaire Research mainly uses Ansible to keep our software up to date, for user management and being part of our deployment pipeline. With the pipeline we use it to deploy applications and services to our various deployment environments.

REST vs Json-Rpc

Introduction We in Riomhaire have been using Googles Go-Lang for a year or so now and we love its simplicity and cleaness - especially in regards to concurrency. We have recently implemented two demo systems for authentication via JWT and bearer tokens. One system used Go and JSON-RPC called ‘LightAuth’; The other using Go and REST. Before we start we are not pro-REST or pro-RPC and neither are we anti-REST or anti-RPC.

Go, Raspberry PI Cluster and Performance

Introduction It’s been a busy few weeks here are Riomhaire Research since we decided to embrace the DevOps development culture. There is a lot to learn, although alot of the techniques have been around for years, it is the combination of Agile Developement with test automation, instrumentation and virtualization with clustering which makes it so potent. One of the early decisions we made was to look at software to manage distributed systems and automate the deployment of applications - especially from the perspective of a cluster.

LinkerD and the API Gateway Pattern

In modern microservices architecture the API Gateway Pattern is a common one for producing a single unified API for use by user interfaces and 3rd party applications. What this short article is about is how to achieve this with the Linkerd application in a simple way for developers and small companies. The result should produce a unified API that allows services to be clustered as well as providing some level of resilience and scalability.

A Virtual Mail Server

In a Post last week we mentioned that a server failure caused the temporary loss of the company Website and Mail Server. The Post then went on to describe the conversion of the company website to a one built within a docker image rather than on a physical server. The aim of this post is to cover the virtualization of the other service which failed - the Email Server. The general steps to creating the email server are similar to that of the web server:

A Technical Hick-up and Opportunities

A couple of weeks ago on a Monday morning we noticed that we had stopped receiving email, and then we discovered that the company public facing website was also down!! A few expletives latter it turns out the server was down and to top it all it won’t reboot at all - cue more expletives.