Introducing Fermyon, the Frictionless WebAssembly Platform
Matt Butcher
fermyon
spin
paas
open source
bindle
hippo
nomad
Today we are excited to announce the preview release of Fermyon, the frictionless WebAssembly platform for writing microservices and web apps. To get you started, we’ve got an installer GitHub repo to provide a couple of ways to get Fermyon installed.
We’ve been talking for a long time about how WebAssembly enables the next wave of cloud computing. And we’d like to show you why. Finicky Whiskers, our DockerCon presentation, and our WasmDay talk about running a WebAssembly CMS have all covered various aspects of how we run multiple WebAssembly microservices in production (often alongside containers). Now you can install our platform on your own system.
For the last few months, we’ve been quietly at work assembling the tools necessary for you to install Fermyon into your own environment. And today, we’ve released an installable version along with a complete set of documentation. Let’s take a look at what is included with Fermyon.
Choose Your Installer
We currently provide two different ways to install.
- Local Installer: This method streamlines the process of setting up the entire Fermyon platform using some simple shell scripts. This is great for developers, internal installations, or for teams.
- AWS Installer: The second installer uses Terraform to install Fermyon into AWS. It is designed to get you up and running in AWS in a matter of minutes.
These installation methods provide a web dashboard for managing your apps as well as the infrastructure necessary to deploy Spin applications.
Both installers also help you get your local Spin environment configured so that in a matter of minutes you can create and deploy your first Spin app.
Deploying Apps from Spin
The new Spin v0.3 has a spin deploy
command that makes it easy to push an app from your local development environment into your newly installed Fermyon.
Continue using Spin to create new projects, locally test and debug. But now you can run spin deploy
to locally package and push your application. Deploying sends the application to Hippo (the web dashboard for Fermyon), which then schedules it to be deployed via Nomad (HashiCorp’s powerful scheduler).
Creating and deploying an app to Fermyon is as easy as:
spin new
spin build
spin deploy
Not only that, but Fermyon comes with a gorgeous web interface. You can access the Fermyon Dashboard (via Hippo) by logging into your Fermyon server’s web front end. From there, you can configure your app, promote it from channel to channel (like dev
to staging
to prod
), and check out your app’s logs.
Batteries Included: Hippo, Bindle, Nomad, Consul, Vault, and Traefik
You can pack a lot of WebAssembly applications into a single Fermyon instance. Fermyon provides a few different layers to get your Spin apps running.
First, there is the scheduling and cluster management part of Fermyon. As we’ve talked about in the past, Fermyon apps scale very well. In fact, they scale to zero. That means that when your app is not actively being used, it is not even running. Fermyon spins them up and down on demand. Apps are not sitting idle, consuming your CPU or hogging all the memory.
Under higher load, Fermyon may be actively running multiple copies of your app. For example, in a game of Finicky Whiskers, dozens of instances of the same WebAssembly microservice may be running at the same time.
To achieve this, Fermyon builds upon existing open source projects.
- Nomad is the scheduler. And since Nomad can also schedule containers (among other things), you can even build blended applications like Finicky Whiskers
- Bindle is a package server built specifically for WebAssembly. We refer to it as the silverware drawer of object storage.
- Traefik provides HTTP proxy capabilities so that traffic can be routed to your applications in the Nomad data plane
- Consul provides service discovery and other service mesh features
- Hippo, as we mentioned before, provides the dashboard and Web UI as well as an API service that the
spin
client works with.
While installing and configuring these independently would be a challenge, thanks to the Fermyon installer, you can be up and running in minutes.
Getting Started with the QuickStart
Ready to get started? We’ve got you covered with a couple of great QuickStart guides. Our new Fermyon.dev site has a compendium of information to get you up and running right away.
And once you’ve got Fermyon running, head over to the Spin quickstart to build your first application. After all, the goal of Spin is to get you from blinking cursor to deployed application in five minutes or less!