Applying system upgrades
Cloud66 Update Packages Policy
Cloud 66 aims to make it easier to build immutable infrastructure. Building servers and stacks from scratch is much better than modifying existing server configurations and tinkering with settings until things start to work.
So in all cases of upgrade, our first recommendation is to build a new application and redirect your traffic to the new application using our Elastic Address.
Following that principle, whenever a new server is created we automatically update all the packages to the latest. After the server is created we only auto-install packages that are marked as
security updates. So Cloud66 doesn’t typically update other packages because we doesn’t want to risk breaking or damaging your already running app (which doesn’t apply when the server is newly created).
In order to deal with the upgrades you have a few options:
- Don't apply the package updates. This is the safest bet if you're concerned about your app stability, but can create issues in the longer term.
- Update the packages yourself through
sudo apt-get -y upgradeor
dist-upgradepackage (if there is a new feature you're after or just want to be running the latest)
- Update the packages indirectly through scaling up a new server, and then dropping the old one (the new server will always get the latest packages installed on it)
Some package and security updates require a server reboot. When you scale up we restart your new servers automatically to ensure everything is neat and clean. Alternatively you can reboot your servers manually or via the toolbelt if you prefer
Upgrade package types
In the event of a security vulnerability on any of the components we deploy on the servers, we aim to be as quick as possible to roll out the recommended patches for Ubuntu, Ruby and Rails.
From the _Deploy_ menu, choose _Deploy with Options_. By selecting _Apply security upgrades_, Cloud 66 will perform operating system security package upgrades and set up unattended upgrades for your application. Unattended upgrades will automatically check for and install the latest Ubuntu security packages on a daily basis.
Note that some security packages may require a server restart. We don’t automatically restart your server, and it is at your discretion to do so. If the file
/var/run/reboot-required exists, your server does in fact require a restart. To see which packages contributed to the requirement for a restart, please see
There are multiple options and considerations when upgrading your base version of Ruby. Please read our detailed guide on the subject.
A quick summary:
- Ruby version should be defined in your
manifest.ymland not in a Gemfile (or
- A safe way to roll out the upgraded version is to use our “scale up” feature to create a new server that uses the new version of Ruby
Rails should be upgraded in the same way as Ruby. See above for details.
The recommended way to upgrade your passenger to the latest one is:
- Scale up a new web server and drop the old one, so the scaled up one will automatically have the latest version supported by Cloud 66.
About manual upgrades
If you need to upgrade any part of your application the best course of action is always to build a new one. However, if that is not desired or possible, you can always perform manual upgrades.
We detect the version of all the components we have configured or deployed on your servers on a regular basis and after each deployment. If you upgrade any part of your application manually, the upgrade will be detected by Cloud 66. This helps with the future automated upgrades.