;

RAFT Explained – Part 2/3: Overview of the Core Protocol

This series of three blog posts will give readers an overview on why the Raft consensus algorithm is relevant and summarizes the functionality that makes it work. The 3 posts are divided as follows: Part 1/3: Introduction to the problem of consensus, why it matters (even to non-PhDs), how the specification of the Raft algorithm is an important contribution to the field and a peek at the [...]
;

RAFT Explained – Part 1/3: Introduction to the Consensus Problem

This series of three blog posts will give readers an overview on why the Raft consensus algorithm is relevant and summarizes the functionality that makes it work. The 3 posts are divided as follows: Part 1/3: Introduction to the problem of consensus, why it matters (even to non-PhDs), how the specification of the Raft algorithm is an important contribution to the field and a peek at the [...]

Zoover Goes Cloud Native with Kubernetes

We teamed up with Zoover to help them build a new production environment using Google’s hosted version of Kubernetes (GKE), with a Continuous Delivery pipeline based around CircleCI. In this blog, we’ll describe the system we built and explain the decisions we took. We’ll also have a look at workflow we settled on. GKE We picked GKE because it has all the features we need. It is easy [...]

My Top 7 favourite features of Spring Boot

I've always said that Spring, Maven, and IntelliJ are my weapons of choice. People's response on more than one occasion has been that I'm far too old fashioned and conservative. I don't care, they might be right, but to de-risk any project it's always a good idea to not bring on more than 10% new technology: Stick to what you know and only experiment with one or two new components. Two years [...]

Multi-arch Docker Images

Although the promise of Docker is the elimination of differences when moving software between environments, you'll still face the problem that you can't cross platform boundaries, i.e. you can't run a Docker image built for x86_64 on a arm board such as the Raspberry Pi. This means that if you want to support multiple architectures, you typically end up tagging images with their arch (e.g. [...]

Running a Secure Registry on Kubernetes

Once your shiny new Kubernetes cluster is up-and-running, one of the first things you'll want to add is a local registry for storing private images. This is typically achieved using the official Kubernetes registry addon. Unfortunately, the official addon has a few shortcomings, especially with regards to security. In this post, I'll describe these shortcomings, how they can be addressed, and [...]

Adding Self-signed Registry Certs to Docker & Docker for Mac

The Docker registry image has over 10 million pulls on Docker Hub, so it's safe to say that a lot of people out there are making use of it. When running a registry, it's essential to make sure your clients can access it easily and securely. If your registry isn't running on a public domain, you're probably using a self-signed certificate for this purpose. This post will look into some of the [...]
;

An Introduction to stream processing systems: Kafka, AWS Kinesis and Azure Event Hubs

Stream Processing Systems are one of the most powerful tools you can include in a microservice infrastructure, but from conversations I have had, many developers adopting microservices have not really tackled the subject.  This was no fault of the developers, but more a result of documentation that was platform specific and differing terminologies for underlying concepts that are very [...]

The .NET experience with microservices (.NET Core/Docker/Kubernetes/WeaveNet/Azure)

The .NET experience with microservices (.NET Core/Docker/Kubernetes/WeaveNet/Azure) A few of our recent posts featured WeaveWorks’ Sock Shop demo application - an educational project that demonstrates how to build a complex microservice application that not only looks good, but also does something useful. The educational value of the application lies in its architecture. It is unusual to [...]

Continuous Integration of deployment of micro-services to different platforms

In this blog post, I describe how we created DeployDocs to improve the continuous integration of the micro-services in the Socks Shop and the platforms it can be deployed to. Background Weave's Socks Shop is a reference micro-service application, to which Container Solutions has contributed quite a bit. The shop can be deployed on a number of platforms, including your local machine via [...]

Running Kontena in the Google Cloud

In this blog post we'll set up Kontena on top of CoreOS on GCE. In the previous blog, I described Kontena's architecture. Register an account We'll use the authentication service hosted by kontena. To register an account, we need to install the command line interface. It's packaged at the moment as a ruby gem, so make sure that ruby is installed. I personally use this trick to install gems [...]

Kontena: an alternative container orchestrator

Some weeks ago, I encountered Kontena. It is an open source project for containerized application orchestration, that does things a little different compared to the currently big players, such as Kubernetes and Mesos. Before we continue with looking at what makes Kontena different, you should know about the architecture of Kontena. Kontena's Architecture   The architecture of [...]

An argument against REST in microservices

Rest has become a widely accepted standard for API’s.  There are a few reasons for this, it is easy to follow, works very much like a web browser does, and as such uses common tools to digest the service. But REST brings baggage with it  that can create complex, hard to maintain coupling when working in a diverse microservice environment. URLs URLs are one of the biggest issues with REST [...]
;

Monitoring a microservice application with CoScale on Kubernetes

Monitoring microservice systems has been a hot topic at Container Solutions for some time. Combined with our recent interest in Kubernetes we set out to give the new CoScale monitoring solution a try. CoScale is a hosted and on-premise monitoring solution with native support for Docker and Kubernetes. In the case of Kubernetes, this means it can talk to the Kubernetes master server and measure [...]
;

Monitoring Microservices with Prometheus

We seem to say this a lot at Container Solutions, but the combination of microservice architectures and the practice of DevOps have smashed apart the assumptions made by traditional tools. None more so than in the monitoring sector, which we’ve talked about in the semantic monitoring and monitoring performance blog posts. Traditional monitoring solutions like Nagios and New Relic (to give [...]