Subutai Platform: create your own global private network

Guest post by Neil Spink, Subutai Power User

I first read about Subutai in the Linux Journal back in 2017. Containerization had been getting a lot of attention, and I wanted to know more about this new platform, which is the first peer-to-peer (P2P) cloud computing platform I had heard of. Every developer I knew was either dreaming about or trying to get their apps container ready and into the cloud.

It didn’t take me long to decide to go all in, because Subutai reminds me of how Napster was back in 1999. Suddenly, everyone could share their MP3 audio files. It allowed you to get music that you could not afford or even find in shops because it was so rare – it truly was an amazing time. I see this new platform in a similar light – without the copyright issues, of course. Subutai could help people share and access online computing resources they otherwise might not be able to afford. Not excited yet? Have you ever wanted to have your own global private network where you can store documents, videos, pictures, and such?

A year ago in an impulsive moment, I logged onto eBay and started to look for 2 machines with the minimum requirements: 8Gb memory, 100Gb disk, and 2 or more CPU cores. I bid on two cheap HP desktop machines, one with an i7 Intel processor and the other with an i5. I fondly remember getting the machines. The first arrived in a giant box wrapped in hundreds of newspapers, which was quite amusing since the computer was in a sealed box. Packing up the packing materials took an hour. The second machine was picked up from the seller on a cold November afternoon in Zurich Central Station. The seller did ask me what I was doing with his old machine; I told him it was about to become part of Switzerland’s first P2P cloud platform – he didn’t get it.

I favoured a permanent installation of Subutai over using VM images to provide a stable peer; after all, these machines are just for the platform. Unfortunately, the first few months of operation were not smooth sailing. I had chosen the Ubuntu Server operating system and needed to reinstall it more than a couple times. Thankfully, the Subutai v7 release came (in May of 2018), and everything stabilized after moving to the Debian operating system. Having witnessed some of the problems with the utilities snapd and apparmour, I will only say that these gory details would make a lengthy article themselves.

To achieve my own disaster recovery-capable network, I needed another location to keep my second computer. I was able to convince a family member with a shop just down the road to have it on her premises. It was a relatively straightforward setup of plugging the computer into the router there. However, in my home, I quickly realised I had forgotten how loud a desktop computer can be. Running it 24/7 was a noise problem, so I decided it had to go into the cellar with a pair of D/Link powerline network adapters. I was somewhat amazed it worked without doing more than plugging them into the power sockets, especially since I live on the 3rd floor of an apartment block. You might be wondering how performant a powerline network is. My tests with the iPerf utility showed the bandwidth to be 35 Mbps. Since my internet is only 10 Mbps up/down that is plenty fast for me.

So far, I’ve successfully tested two applications on Subutai: a Minecraft server (you can see my YouTube videos for that) and Minio, a distributed object storage server designed for private cloud infrastructure. The setup was actually quite easy.

 

Subutai is a bit like a Russian matryoshka doll. There are many layers and a lot of details to appreciate. Its versatility makes writing documentation, something I feel there can never be enough of, extremely difficult. But luckily, if you do get stuck, you can easily get help from the Slack group, and the team from OptDyn seem to work night and day. You can easily contact them with problems or questions. I did that a number of times while creating my own blueprint for deploying the Minio private cloud storage system. A hackathon was started at the beginning of the year and if you help create other blueprints for deploying applications, you can earn GoodWill, which are tokens for renting computer resources.

I want to be transparent. There is a small problem with having a P2P cloud: the network bandwidth between the containers and peers. For example, I tested the speed between my peers here in Switzerland and was amazed to find that one way, it was 7 Mbps, while the other way, it was 1 Mbps, see Figure 1 showing the high-level resources. A centralised cloud-computing facility can end up being a single point of failure but would never have such a slow connection. Personally, I can live with this performance if it’s just ensuring that when one location goes down, I have a disaster-resistant system.

Figure 1. Measured bandwidth between two containers running on separate peers.

I hope at this point you still want to give it a try, which is as easy as registering on https://bazaar.subutai.io, going to Peers page and choosing a couple peers as favourites.

Figure 2 – Subutai Peers screen

Then you need to choose a product to deploy from the Products page.

Figure 3. Subutai products screen.

The blueprints usually provide additional information to help you enter the required setup variables.

Figure 4. A product wizard where you can personalize your application.

Usually, within 5 minutes the product will be up and running. You can then go to the address on your environment’s container port mapping page.

Figure 5. Environment container port mapping using round-robin load balancer.

You may not have found the particular product you want or need. There is nothing stopping firing up an environment with some machines and installing everything manually. Even better is if you write a script to do that. I already mentioned you can earn tokens by writing blueprints. It’s actually not that hard. You might first want to check the hackathon page to see if it’s not already being done.

The blueprint instructions explain everything about writing a simple script. To create more complex deployments, such as the minio cloud storage blueprint. You might want to use an Ansible role – on galaxy.ansible.com you’ll find a myriad of preprogramed roles for provisioning and deploying all sorts of applications. There is a lot of flexibility when creating the scripts, some things more obvious than others. I would recommend having a look at the figure below to see how the files are interacting, then investigate the source code which can be found here https://github.com/neilspink/minio.

Figure 6. A more complex blueprint for setting up minio private cloud storage

So how do I see the future of Subutai? I see a lot of potential for small and big companies. Imagine having offices in multiple locations, even worldwide. You put a server in each location and can then easily deploy DNS servers, printer servers, and file shares, which are highly available and could survive even if one or more sites were to go offline. You can easily add more computing power in one location or add an extra machine and the Subutai orchestration engine balances those apps across the network. This could be the private cloud platform for your company and end all the discussions with compliance officers about storing data in the public cloud.

# # #

Ready to join the Subutai horde? Let’s go:

For more information, assistance, or to share how you are using Subutai, get in touch with our community on Slack. We’d love to hear from you!