Logbook - 2022-05-26

A 1950s style cartoon lady pointing at a vintage flight logbook
Image by Annie Ruygt

The other day, we unleashed the (Fly) Machines. Which is to say: we now officially have an API for starting and stopping fast-booting Firecracker VMs directly, bypassing orchestration. Normal Fly.io apps will carry on, oblivious to the fuss. You can spin up an app in a matter of minutes.

Work leading up to the Fly Machines launch involved a multitude of changes by many of the cogs in this corporate machine, but that’s not to say the other production lines have been idle. For one thing, our web UI has been transforming before our eyes. We’ve grouped its updates at the end, for easy digestion (and so we don’t have to type “web UI” so many times).

Here’s our latest changelog:

  • [Feature] You can now specify proxy_proto_options = { version = "v2" } to have our proxy send a proxy protocol v2 header line when establishing connections to your app.
  • [Feature] Fly HA Postgres instances will turn read-only, and thus fail a health check, when their volume is 90% full. This gives users whose databases are filling up (with WAL files or genuine data growth) a chance to react before they crash with full disks, which is much more of a PITA to recover from. This is a quick fix until we can make user-facing volume metrics/alerts and expand/shrink our volumes. (postgres-ha v0.0.22)
  • [Feature] The GraphQL API now says Could not find <some-app-name> when it can’t find the specified app, instead of the somewhat mystifying Could not resolve App when it can’t find an app, which most commonly happens when a) there’s a typo in the app name or b) credentials used are for the wrong user and so the app isn’t accessible. This should make it more intuitive to find the issue.
  • [Feature] Made our API Telemetry pickier to better track meaningful API operations and diagnose performance issues.
  • [Fix] As some people have started using our APIs in ways that we don’t, it’s uncovered some edge cases. We’ve addressed what we’ve found so far; in particular:
    1. Selecting data on the response for deleting App Certificates could cause errors because the data changed while rendering.
    2. Selecting data on the response for deleting a Volume could cause errors for a similar case to above.
    3. Volume creation has some specific expectations on character format for region codes. We were mutating a string in place, which our runtime has recently gotten more strict about preventing in certain cases.
    4. Sometimes we receive opaque validation errors on DNS updates to our DNS provider. We’ve added some more context to these errors so we can better understand and respond to these in the future.
  • [Fix] Sometimes when users sent invitations for folks to join their organization, we would initiate the invitation before the data was available in our database, resulting in a noticeable delay before a retry would successfully send the invitation. This should be drastically less likely now.
  • [Docs] Released a blog post announcing the Fly Machines API.
  • [Docs] Added a Machines reference doc and a FaaS guide using the machines API.
  • [Docs] Improved the fly.toml documentation: documented PRIMARY_REGION for targeting release commands, clarified some details about deployment strategies, and reworded statics to more accurately reflect its behavior and caveats.
  • [Docs] Added a guide, with sample Node.js/Express app, for taking advantage of PlanetScale’s new Portals read-only regions feature with your Fly.io apps.

Web UI improvements! We have a revamped dashboard and app page, and more:

  • [Feature] Shipped the new Apps dashboard with a redesign, new pages and more information for users.
  • [Feature] Shipped a redesigned app page for convenient access to information and some administration tasks for individual apps; posted about it on the community forum. More to come!
  • [Feature] Shipped our new organization UI to bundle together all organization-related things into the new Dashboard. Bonus that it also has a list of latest invoices, which were difficult to find before. Community forum post.
  • [Feature] Shipped our new paid plans UI, complete with in-depth info, chill design and spot illos, to help potential customers decide what works for them.
  • [Feature] Released our new documents UI for self-service DPA and BAA document requests.
  • [Feature] Added region information to the app Volumes tab.
  • [Feature] In the app Overview tab, the Image Details block is hidden if the app doesn’t yet have an image associated with it, and now only shows Image Version if there is one.
  • [Feature] Shipped the Machines ✨ tab for apps.
  • [Fix] Fixed some messed-up markup on the Logs tab.
  • [Fix] Added back a deleted template that was causing a 500 error on the organization page.
  • [Fix] Removed a redundant logo on our CLI login.

The Fly Machines API is the latest thing

If you’ve got a Fly.io account, you can play with our new API for fast-booting Firecracker VMs.

Try Machines