A layout you draw, from one machine up, or a redundant web tier with a machine per service — and what each one asks of your application.
A shape — topology, in the configurator — is how many machines an environment runs on and what each of them does.
| Shape | What it is | Machines |
|---|---|---|
| Flexible infrastructure | Your machines, your layout. Everything on one to start with; move any service onto a machine of its own whenever you want. | 1 |
| Dedicated | A balancer in front of two or more web servers, and every other service on a machine of its own. Web servers and workers can be counted up. | 4 |
Your machines, your layout — from one machine up.
Every service starts on the web server. Leave them there and you have one machine running everything: the web server, the application, the database, the cache, with files on local disk and no private network because there is nothing to network to. That is what most sites are, and it is what every staging and development environment is regardless of what production runs.
Move any of them onto a machine of its own, or onto one shared with a couple of
others, and you have as many machines as you drew — over a private network the
platform creates as soon as there is a second machine to reach. The database on
its own for its IO, Solr and the broker sharing a box, a worker keeping the
site's CPU free. Each machine is named for what it carries, so the server list
reads db, search-queue, worker-cache.
You do not change shape to grow. The same shape covers a site on one machine and a site on six, so spreading out later is a matter of moving a service rather than buying a different arrangement.
Worth doing when the database and the site are competing for the same memory, which usually shows up as the site getting slower under load while neither machine looks busy on its own. It is also the answer when the database has run out of room: the database always stays on the machine, so the way to give it more disk is to give it a machine, or a bigger one.
Varnish can sit on the web server or on a machine of its own, where it shares with nothing. A worker machine never sits on the web server. The Premium uptime SLA needs at least two machines carrying the site — one machine has nowhere to fail over to — so a Flexible site on one machine can buy Advanced. Entry-line machines are allowed here, with less promised on them: on a single entry machine no uptime promise is sold, because there is nowhere for it to fail over to; across several, only the lower one; and Premium support is not sold with an entry machine at all.
On a shared plan there is nothing to draw. The machine belongs to the platform and other sites are on it, so your site runs on that one machine and a worker or an extra — which are second machines — need a dedicated plan. See Plans.
Every service on a machine of its own — the database, the cache, search, the broker — with nothing shared and nothing to draw, behind a load balancer that is always there. Two web servers at minimum, so the tier survives losing one. The only numbers to set are how many web servers beyond that and how many workers. The database is backed up every four hours, included — on Flexible that is an add-on. Entry-line machines are not offered: the point of this shape is hardware that stays up. From four machines up — the balancer, two web servers and the database — and in practice five, because a Drupal stack also wants a cache.
That minimum is the shape. If what you want is a machine per service and nothing more, Flexible draws exactly that and costs less; what Dedicated sells on top of it is a web tier that keeps answering when a machine goes away, which one web server behind a balancer does not.
Two web servers is a migration, not a checkbox. It is the thing to settle before you buy this shape rather than after. Three things that were local stop being local; the platform handles one of them and the other two are yours:
Neither of the two left to you is unusual, and every framework we support can do both. But they are work in your application, not a setting here, and worth doing before you buy this shape rather than discovering afterwards.
On Flexible and Dedicated you can add a worker machine. It is optional: without one, your schedule and any long-running processes run on the web machine, alongside the site.
That is usually fine, and worth changing when it is not. A nightly import that pins a CPU for twenty minutes is competing with the requests your visitors are making, and the symptom is a slow site rather than a slow import — which is why it is easy to miss.
With a worker machine, the schedule and every process you declared under
workers move there. They move rather than split: half the jobs in one place
and half in another is an arrangement nobody could reason about.
It is a machine, and it is priced as one. You choose its size like any other, and it appears as its own line on the quote. A worker doing occasional overnight work does not need what your web machine needs.
Without a worker machine, long-running workers are bounded rather than
refused: one declared worker per machine that can run one — each worker
machine where you have them, each web machine otherwise. A process that never
exits competes with the site for the CPU that answers requests, and one apiece
is the most that leaves the site able to answer. A deploy that declares more
than there is room for says so, and the answer is a worker machine, another
web server, or folding the work into a worker you already have — see
vallic.yaml.
You cannot move an existing project between Flexible and Dedicated, or between plans. Moving from one machine to several is a move of your data between machines, and doing it silently under a running site is how data gets lost. Adding capacity within a shape — bigger machines, more disk — is always available.
Within Flexible there is one exception: the project's Upgrade tab can give the database, cache, search or queue a machine of its own after the site is built, and bring cache, search or queue back. It shows what will move and what it costs in downtime before anything happens — see Upgrades.
Within Dedicated, the same tab changes how many web servers and workers there are. Every web server is the same size — traffic is shared between them evenly, so a smaller one would set the pace for all of them — and a new one is built at the size of the others. It is sent your live code before it takes any traffic, so adding one never serves errors while it catches up. Fewer takes away the highest-numbered machines, after the load balancer has stopped sending them requests. The subscription follows the machines either way. To change their size, resize any one of them on the machines page: the others in the role move with it, one at a time.
Software stacks covers what actually runs on these machines.