CoReef - A Colorful Distributed System

Exploring a beautiful but complex world!

Cloud host up and running

As an initial step, the cloud host is up and running. It’s an Ubuntu Linux server with the following configuration steps:

  • SSH with key only, SSH port moved from 22 to somewhere else. It is always impressive, how fast these login attempts against your ssh site grow in numbers.
  • Docker installed.
  • Firewall using nftables configured and enabled. Since Docker still prefers iptables it took some time to add the corresponding rules to my configuration.
  • Wireguard VPN server configured as bastion host, so no forwarding of traffic from the cloud host towards the Internet. Any service provided by this cloud host will only be available inside the tunnel network.

The Big Bang!

This blog describes the step-by-step implementation and configuration of a distributed application that utilizes a variety of software technologies. The goal is not to achieve a perfect or optimal implementation; rather, the project serves as a playground for distributed application systems. Heterogeneity is not avoided but managed through the use of suitable integration techniques for software systems (such as Apache Camel). Some techniques may not be strictly necessary for a small number of computers, but the aspect of horizontal scalability will be addressed as an example.

The resulting diversity of the distributed solution reminds me of a colorful and bustling coral reef in the blue ocean. That is why the name CoReef is chosen as an abbreviation for “Code Reef”.

In this blog, the individual steps will be documented, though, for security reasons, access to the reef itself will not be available for now.