Browsers have become powerful beasts. First used to share research papers at CERN, the browser can now run Google Earth, play Unity 3D games, and even design buildings in AutoCAD.

With this kind of power, could a browser compile and run your code too? Ridiculous. Surely that couldn’t work…

Then again, why not? There’s no way I could ignore such a fascinating challenge. After four months of punching the keys and poring over documentation, I’ve finally created my answer: Go Wasm.

Image for post
Image for post

Go Wasm is a Go development environment with the essentials to write and run code entirely within the browser, using the power of WebAssembly (Wasm). It’s also completely open source. Go Wasm is made up of three core WebAssembly components: An “operating system,” an editor, and a shell. …


Image for post
Image for post

Starting at the end of last year, we put a plan in motion to revamp the CLI for the IBM Cloud Kubernetes Service. We focused on improving the user experience and overhauling the code. The key is to break compatibility, but surprise no one.

We had several problems with the CLI after a few years of adding new features. They ranged from user experience issues to technical debt buildup:

  1. Overwhelming help output. If you didn’t already know what you were looking for, finding the right command was a daunting task. There were only two forms of help: list all possible commands or show one command in detail. For smaller CLIs, listing all commands isn’t bad — but when there’s 100+ commands, it’s a non-starter. …


Web services running on the same network can be difficult to set up correctly, especially if you want all of them to work on an external network.

In this tutorial, I will guide you through setting up a Docker Swarm to route traffic to the appropriate containers, automatically.

There are three parts to get your cloud ready for web services: a load balancer to spread connections to available servers, an ingress router to direct traffic to containers, and DNS to point local traffic to the right IP addresses. Here’s a quick layout:

Image for post
Image for post

We’ll set up a couple things to bootstrap your network of web services. I assume you already have a Docker Swarm (Docker & Swarm) and shared volumes (tutorial) set up on at least one node. I also highly recommend another server as a load balancer for higher availability — a Raspberry Pi is fine — but you can skip it if you’re strapped for cash. …


Scaling an application is hard, especially when you need to manage its important data yourself. One way to make this easier is by sharing the files across multiple servers — no matter where it runs, the data will always be available.

An important step in making highly available applications is setting up highly available data. With Docker, we will set up shared files with a volume plugin called Convoy.

In this tutorial I assume you already have 2 or more nodes in a Docker Swarm and an NFS v3 server set up. …

About

John Starich

Software engineer, hiker. Works on the IBM Cloud Kubernetes Service. Opinions are my own. johnstarich.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store