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
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.
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
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.
Click here to read my ODROID Magazine Docker 101 – Part 2 Article.
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!
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:
- Load balancing not working
- Overlay network name service not working
Another reason is that I recently noticed the following warning in the log which worries me.
WARN 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
Web Application with Database Backend
So far, I’ve only deployed trivial application on my docker cluster. In this article, I want to explore the level of difficulty in deploying a more realistic application. Being a lazy person who does not want to create a web application from scratch, I searched the Internet for a ready-made web application using a database backend as this kind of application is commonly deployed in the production environments. I came across a WEB4J sample application called the “Fish and Chips Club” which should do the job. From now on, I am going to refer to this application as “Fish”. This application includes features to:
- edit club members
- edit local restaurants
- edit ratings of each restaurant
- add new lunches (a given restaurant on a given day)
- RSVP for each upcoming lunch
- interact using a simple discussion board
- produce simple reports
- provide a simple search page
And it uses 3 databases running on MySQL. You can find out more about how to configure this application here.
The disadvantage of using ARM64 architecture machines like ODROID-C2 is that you don’t have that many docker images readily available to you on Docker Hub to choose from like INTEL-based machines. I can find only 1 MySQL docker image and no Apache Tomcat images at all! And this application requires Tomcat to run. However, this is not a showstopper as I can always create my own docker image!
In the following sections, I am going to deploy MySQL and Fish in different ways and assess their pros and cons. It will be a great learning experience for me as, like most of you, I am new to this too Continue reading Building My Odroid-C2 Docker Cloud Part 4 – Application Deployment
The journey so far
My last article documented how I built Docker 1.12.0 from source on my Odroid-C2. Docker 1.12 has swarm mode ie, clustering built in. In this article, I am assembling my 5 Odroid-C2 single board computers into a cluster and test-driving the cluster with simple swarm mode commands. This is to make sure that Docker 1.12 is working before getting into more advanced swarm mode features and executing a more realistic workload on the cluster in Part 4. Continue reading Building My Odroid-C2 Docker Cloud Part 3 – Build and Test Drive
In my previous article, I documented my search for a stable Linux to run my Docker cloud on. The next thing for me to do is to select the version of Docker to use. I am in a dilemma in which I want to use the latest Docker 1.12 with inbuilt swarm mode instead of having to build my own cluster using additional packages such as Consul, Zookeeper, etc. but the version I got using apt-get is version 1.10. There is an update but it is still only 1.11. Since clustering (swarm mode) is in-built in 1.12, there is no point pursuing a dead end in Docker 1.11. Looking around the Internet, I could not find any pre-built Docker 1.12 package for Odroid-C2 anywhere. Reluctant as I was, I had no choice but to build my own Docker 1.12 for my Odroid-C2 from source. As I was new to this, I expected issues and confirmed that Murphy’s Law still rules. This article documents my attempt to build Docker 1.12.0 on my Odroid-C2. Continue reading Building My Odroid-C2 Docker Cloud Part 2 – Building Docker 1.12.0 (with Swarm Mode)
In the previous installment, I outlined the use case or business scenario we are implementing using the 3 JBoss middleware products. In this installment, I am going to describe the Fuse to Business-as-a-service (Business rules application on the Realtime Decision Server) integration which validates the XML data and the Fuse to BPMS integration which kicks off a business process instance for a mortgage application as well as the Fuse to JBoss Data Virtualisation integration. Continue reading Making JBoss Fuse, Data Virtualisation and BPMS Work Together – Part 2
I’ve just taken delivery of 5 Odroid-C2 single board computers (SBCs) from Hardkernel. In case you don’t know, ODROID-C2 is a 64-bit quad-core SBC with specifications above and beyond those of Raspberry Pi 3. For example Odroid-C2 runs the quad-core 64-bit A53 processors at 2GHz (vs Raspberry Pi 3’s 1.2 GHz), Gigabit ethernet (vs 10/100 Mbps Ethernet), 2Gbytes of memory (vs 1Gbytes), supports 4K display (vs HD), etc.
I am planning to set up my 5 Odroid-C2 SBCs as a Docker cluster to form an experimental private cloud. But before I can do that, I must choose a stable Operating System (OS) for the SBCs to run on. Here is what I went through in selecting my OS. Continue reading Building My Odroid-C2 Docker Cloud Part 1 – In Search of a Stable Linux