Using Docker Stack Deploy on my ODROID-C2 Cluster

 

Deploy a Stack to a Swarm

In a previous article, I deployed services in my ORDOID-C2 cluster using the Docker command line. It works but there must be a better way to do deployment especially when an application requires multiple components working together. Docker 1.13.x introduced the new docker stack deployment feature to allow deployment of a complete application stack to the swarm. A stack is a collection of services that make up an application. This new feature automatically deploys multiple services that are linked to each other obviating the need to define each one separately. In other words, docker-compose in swarm mode. To do this, I have to upgrade my Docker Engine from V1.12.6 that I installed using apt-get from the Ubuntu software repository to V1.13.x. Lucky for me, I’ve already built V1.13.1 on my ODROID-C2 myself months ago when I was experimenting unsuccessfully with swarm mode due to missing kernel modules in the OS I used at the time. See my previous article for more information on this. It is just a matter of upgrading all my ODROID-C2 nodes to V1.13.1 and I am in business. Continue reading Using Docker Stack Deploy on my ODROID-C2 Cluster

Running Docker Swarm Mode on My Facelifted ODROID-C2 Cluster

Recap

Around 6 months ago, I was experimenting with Docker swarm mode on my ODROID-C2 cluster consisting of 5 ODROID-C2s. Docker was running fine on a single machine using ‘docker run’ command but neither overlay network, routing mesh nor load balancing was working in the swarm mode. I tried using different versions of docker (1.12.x and 1.13.x) compiled on my ODROID-C2 to no avail as documented in a previous article. I also tried running Kubernetes on the ODROID-C2 cluster. Again I couldn’t get the networking part work. I suspected that the kernel was missing certain modules needed for Docker/Kubernetes networking. As the OSes at that time I tested were not stable enough, I stopped my experimentation on ARM-based machines.  Instead I played with Openshift running on INTEL 64 bit machines as INTEL always has better support than ARM in any open source project. What rekindled my passion to get Docker swarm mode working is the hardware I have lying around not being used: an ODROID VU7 multi-touch screen and a VuShell for VU7. I wanted to make use of them to do some useful work. Continue reading Running Docker Swarm Mode on My Facelifted ODROID-C2 Cluster

Exposing FIS-based Service as a 3scale API – My Learning Journey Part 1

Introduction

In my previous article, I created a reusable FIS demo. Today, I am going to show you how to use the 3scale API Management Platform to create an API for the FIS ‘products’ service. By doing so, the service gains non-functional capabilities including access control, rate limits, analytics, activeDocs, billing & payment, etc. Starting my learning journey with 3scale, I decided to set up my own self-managed 3scale gateway and use an online swagger editor to create a swagger spec to document the service. During my journey, I ran into some gotchas, mysterious behaviours, and problems that were eventually overcome. Overall, it was a good learning experience although frustrating at times. I am sharing my learning journey with you pictorially in this article. Hope you’ll find it useful. Continue reading Exposing FIS-based Service as a 3scale API – My Learning Journey Part 1

A Reusable Fuse Integration Services 2.0 Demo

Introduction

Recently a potential customer wants to see how FIS 2.0-based services and API Management can work together to replace the integration platform he is currently using. The customer has asked another vendor to do a PoC on AWS. Red Hat has been invited to do the same but called it a demo. Consequently, we set up Openshift on Google Cloud Platform for the demo. In this article, I am going to describe only the FIS implementation of the use case mandated by the customer. The FIS 2.0 and 3Scale integration is covered in another article. Continue reading A Reusable Fuse Integration Services 2.0 Demo

Experiment with FIS 2.0 with the Absolute Minimum Setup

Introduction

Fuse Integration Services 2.0 (FIS 2.0) for Openshift introduces a number of new features. In my opinion, the most exciting ones are the introduction of S2I binary workflow and Spring Boot support. We shall be using these 2 new features in this article. As FIS is for Openshift, as its name implies, one needs a development Openshift environment to experiment with it. There are several ways to set up a development Openshift environment on your laptop. The following are the most popular options:

  1. oc cluster up – this is a relatively new feature introduced in Openshift Origin 1.3. This option uses a containerized version of Openshift and runs it locally on your laptop. It requires Docker to run.
  2. Red Hat Development Suite (RHDS) – this development suite comes with an installer (Windows and Mac only at present) that installs JBoss Developer Studio, Red Hat Container Development Kit and all the necessary dependencies. It is based on Vagrant, VirtualBox. Openshift Enterprise and Red Hat Enterprise Linux. In contrast to option 1 which is based on Docker, RHDS is based on a virtual machine or VM.

Continue reading Experiment with FIS 2.0 with the Absolute Minimum Setup

Migrating My WordPress Blog to a New Server

I was using my ODROID-XU4 CloudShell to run my WordPress blog (the blog site which your are reading now) and other services. It is speedy and fulfills the role well. The one thing I am annoyed about is the noise of the fan when it comes on. It gets to the point that I can no longer work in that room when the fan comes on. I have to do something. I happen to have several ODROID-U3s lying around since I replaced my ODROID-U3 cluster with my ODROID C2 cluster. The ODROID-U3 has a heat sink and no fan. I can run my WordPress blog on a SD card instead of a hard disk like that of the CloudShell. This article describes my journey in migrating my WordPress blog from the CloudShell to the ODROID-U3. I also created a replica for testing/backup on another fanless server using docker. I shall cover that in this article as well. Continue reading Migrating My WordPress Blog to a New Server

Building Optaplanner Applications using the BRMS Business Central GUI: The Missing Guide

1 Introduction

A potential customer is interested in seeing how BRMS Business Central can help him build an Optaplanner (also known as Business Resource Planner) application using the GUI alone after I demonstrated to him the Optometrist rostering app based on the Nurse Rostering sample application.

Optometrist Rostering App
Optometrist Rostering App

I wanted to create a simple Optaplanner app so I picked cloud balancing. The problem statement for cloud balancing can be found here:

A sample implementation can be downloaded here:

However, the rules in the sample implementation are in native .DRL syntax. The customer wants to see everything created using Business Central GUI tools, if possible. This is the reason why I wanted to re-create this example using Business Central.

Please note that you have to add the “plannermgmt” and “kie-server” roles to you user login to Business Central in order to see the Optaplaner-specific GUI and manage the execution server. Continue reading Building Optaplanner Applications using the BRMS Business Central GUI: The Missing Guide

Docker 101: A Tutorial – Part 2

Here is part 2 of my docker 101 article published in the ODROID Magazine. ODROID Magazine is a free monthly e-zine featuring hardware and software articles related to the latest ARM and single board computer technology since January 2014. Although this tutorial is designed to run on the ODROID-C2 single board computer, all the commands that you learn apply equally well on INTEL-based machines running the docker engine. The commands are exactly the same. Once learnt and you can apply your docker command line knowledge to different environments including Linux, macOS, Windows and on a cloud host.

Part 1 discusses the classic docker run and other commands that build and run containers on a single docker host.

Part 2 (to be published in the December issue of the ODROID Magazine) describes docker swarm mode’s clustering and orchestration capabilities.

Enjoy!

Click here to read my ODROID Magazine Docker 101 – Part 2 Article.

Docker 101: A Tutorial – Part 1

Here is part 1 of my docker tutorial published in the ODROID Magazine. ODROID Magazine is a free monthly e-zine featuring hardware and software articles related to the latest ARM and single board computer technology since January 2014. Although this tutorial is designed to run on the ODROID-C2 single board computer, all the commands that you learnt apply equally well on INTEL-based machines running docker engine. The commands are exactly the same. Once learnt and you can apply your docker command line knowledge to different environments including Linux, macOS, Windows and on a cloud host. Enjoy!

 

Read my ODROID Magazine Docker Tutorial here!

Building My Odroid-C2 Docker Cloud Part 5 – Upgrading to Docker V1.12.1

 

Why Docker v1.12.1

In part 4 of this series, I tested Docker v1.12.0 and found that it had two serious issues:

  1. Load balancing not working
  2. Overlay network name service not working

Another reason is that I recently noticed the following warning in the log which worries me.

WARN[0000] Udev sync is not supported. This will lead to unexpected behavior, data loss and errors

 

A ticket has been raised which suggests that the issue may be curcumvented by using dynamically linked binaries.

I am hoping that v1.12.1 has resolved these issues. And I’d like to explore building dynamically linked binaries this time. Continue reading Building My Odroid-C2 Docker Cloud Part 5 – Upgrading to Docker V1.12.1