Ruby 3 support

Ruby 3 was released, as promised, on the 25th of December. This is a major release of Ruby with many improvements all, most of which are around performance.

Today, we added Ruby 3 support for all Cloud 66 customers, just before heading off to a locked down New Years celebration online!

We hope you enjoy using Ruby 3 on your own applications.

Rails Ruby with jemalloc

Rails application users can now elect to use a version of Ruby precompiled with jemalloc. To use this, you can specify your memory_allocator via your manifest. Once specified via your manifest, you can then scale up new application servers, or if downtime does not concern you, "deploy-with-options" selecting "Apply Ruby Upgrades".

We have found jemalloc to be helpful with memory bloat in our own application. There are a lot of articles out there about it like this one.

As always, please be sure to test first in your non-production environment. Happy memory taming!

Rake & Server Job Run User

We now optionally allow you to run your rake tasks and/or server jobs as the nginx user. This is particularly useful for when you need to create files or assets to be consumed by your web application (as your web application runs as the nginx user). For more about these please see our rake job and server job documentation.

Maestro Startup Health Checks

You can now use startup health checks in your Maestro application service configurations. This applies the underlying Kubernetes "startupProbe" configuration to your workloads. Note that this will only be applied on applications running Kubernetes v1.16 or greater.

For more about this health check type, and when to use it, please see our health check documentation.

Scale Up UI Improvements

We are continuing to make UX improvements to the scale-up user interface. Replacing our older "modal style" overlays with our "drawer component". The additional vertical space available allows us to make further improvements to form usability, keeping in-line with the most recent form design guidelines. Let us know what you think when you next scale up a server!

Metadata Endpoint Deployment Information

The server metadata endpoint now reports the version of your code that has been deployed. To use this in your own workflows, you can use curl and jq to extract the relevant bits of information you need. Check out some workflow examples in our help documentation!

Environment Variable Audit Records

All environment variable names are now listed in the audit record of their change. Previously, only the change was mentioned in the audit record without listing the names of the changes environment variables. This is now improved to provide more clarity.

Announcing Multi Database Support

Today I am very happy to announce the release of Multi Database, our latest feature. Multi Database lets you attach multiple groups of databases to your applications! These groups can be of different types, or the same type, depending on your needs.

We've been working on this feature for a while, and we are pretty excited about it. It allows for a variety of compelling use-cases:

  • Running multiple databases in Rails 6
  • Running different replicated versions of a database
  • Easily switching target database groups for your application
  • …and more!

If you're interested in this feature, check out the blog announcement and our Multi Database documentation.

Stack Ownership Transfer

Customers can now transfer the ownership of their applications between different Cloud 66 accounts. The application and its servers are not affected by the transfer process. Please note that the application, source account, and destination account, all need to meet minimum criteria in order to be eligible for the transfer. For more information please see our stack transfer documentation

Fixed Toolbelt Redeploy Queue Handling

Good news for anyone who has been frustrated by this in the past! The Toolbelt (cx) redeploy command (help doc) will now behave correctly when running against an already-deploying application (when you are using the --listen argument). This replaces the previous behavior which would simply return “application is busy”. This is especially useful for enqueuing deployments via CI systems.