Skip to main content

Upgrades

An environment's Resources tab — giving the database, cache or search a machine of its own after a site is built, adding a service or an extra machine, and what each costs.

A site usually starts with everything on one machine. When one service starts competing with the rest — a search index eating the memory PHP wants, a database that needs the disk to itself — it can be moved onto a machine of its own without rebuilding the environment. That is the environment's Resources tab.

It is also where a built environment gains what it does not run yet: a service, or an extra machine. It moves and adds; it does not change a shape in any other way.

What it does

The tab shows the environment's topology first, then its machines, then what it runs and where each service came from. Anybody who can see the environment sees that much; the changes below it are for Admins and above.

In production, for each service that can move there is a choice:

  • On the web machine, or
  • A machine of its own, with a size for it — from the same provider and region as the rest of the environment. The monthly price is on each size.

You are shown a summary of what will move before anything happens. The new machine is built first; the service follows.

One change at a time. While a machine of the environment is still being built, resized or removed, or a database is still moving, the tab says so and offers nothing to change. It comes back once the last change has finished — progress is under Activity.

What can move

Service Onto its own machine Back again
Cache, search, queue Yes Yes — the emptied machine is removed
The database Only while the environment is still one machine No
Vinyl Cache (Varnish) No —
The web tier No —

Move the database first. It is only offered while everything is still on a single machine. Once the cache or search has moved off, the database option disappears, so if you want both, do the database before anything else.

Varnish is not offered because it becomes the front door: moving it would move where your DNS points, before the machine it points at existed.

Each service gets its own machine. Two moved services cannot share one.

On the Premium uptime SLA, production keeps at least two machines. Premium is only sold on two, so a move that would bring production back onto one is refused. Move the project to Advanced in its commercial terms first; that takes effect at the next period, and the move is possible from then.

Where it is not offered

  • Staging, development and preview environments. Their services are where vallic.yaml puts them, and the one change the tab offers there is an extra machine. Give them more room by resizing their machine instead.
  • The dedicated shape, where every service already has its own machine.
  • During a free trial, nothing moves onto a machine of its own until the first payment has gone through. Moving a service back onto the web machine still works.
  • A shared plan, which has no machines of its own to draw on. Moving to a dedicated plan is a migration we do with you — ask support. A service can still be added to the machine it shares.

The tab does not add web machines or workers, and does not change the plan.

Adding a service

In production, Add a service offers what the environment does not run yet. Anywhere else it is Add an extra machine, and offers only that — a service for staging or development is named in vallic.yaml, and the next deploy starts it.

What can be added:

  • A service from the catalogue — a cache, a search engine, a queue — that the environment has no member of its kind for. One cache, one search engine: an environment with Redis is not offered Valkey, because that is a swap.
  • An extra machine, by its slot name (pioneer, voyager, …), for the containers your repository describes in .vallic/extra/<slot>.yml. See Extra machines.

Where it runs depends on the environment:

Environment A service An extra
Production, flexible shape A machine of its own A machine of its own
Production, dedicated shape A machine of its own A machine of its own
Staging, development and previews Through vallic.yaml A machine of its own, at full price
A shared plan Through vallic.yaml Not offered

A machine of its own is built in the environment's provider and region, at the size you choose, and added to the subscription from the day it is built. You are shown what will happen — the machine, its size, what it restarts — before anything is bought.

The first machine beside one that ran alone restarts it, on a provider that can only connect a running machine to a private network after stopping it (UpCloud). On staging and development that machine is the one they all share, so every environment on it is down for a minute or two. Hetzner connects it without a restart.

A service on the machine that runs the site is not added here: name it in vallic.yaml, and the next deploy starts it. This is the way to give a service a machine of its own instead.

Never offered: the database (swapping it is a migration — ask support), Varnish (it becomes the front door), and the web tier. Removing a service is not here either.

What each move costs in downtime

Cache, search or queue: the service stops while it moves, and its data is not copied — it is rebuilt. A cache refills on its own. A search index has to be re-indexed by your application. Do not count on jobs still sitting in a queue surviving the move — let it drain first.

The database: your site shows the offline page for the whole copy. The new machine takes a dump of the database from the old one and loads it; nothing can safely write to the database while that happens. A small database is minutes; a large one can be the better part of an hour. Plan it for a quiet time.

The site's address does not change. Nothing you have in DNS needs editing.

What your application needs

Nothing, if it reads its connection details from the environment. The platform rewrites DB_HOST, REDIS_HOST, SOLR_HOST and the rest to point at the new machine, over the private network. The credentials and the database name stay the same.

An application that has localhost or 127.0.0.1 written into its configuration will lose its database the moment it moves. Check before you start — see Variables and your framework's page.

The old copy of the database

When the database moves, the copy on the web machine is kept for 72 hours, and then removed. It is not served from — it is there in case something about the move needs looking at. Pointing the site back at it is a support request, not a button.

You can remove it sooner from the Storage tab, and if you set the disk split yourself, that tab is also where to reclaim the room it leaves.

Cost

A new machine — moved to or added — is added to the project's subscription at the price shown beside its size, from when it is built. A machine removed by moving a service back comes off it. See Billing for how part-months are charged.

Who can do it

The Admin role, once the project has been built. Support can do it for you too, if you ask. See Teams.

Progress is under Activity.

Next

  • Machines — resizing, instead of moving
  • Extra machines — what runs on an extra
  • Shapes — what the layouts are and what each asks of your application