You may have noticed a row on our Pricing page entitled CPU. Like this:
As you looked at this, perhaps you had a few questions. What do these CPU numbers mean? And how does CPU affect my experience of Tugboat? And how the heck do you cut a CPU in half? (Hint: it’s best to peel it first). 🍊
Before we dig into the answers to these questions, let’s back up and talk about how Tugboat works.
As you probably know, Tugboat is powered by Docker, and each of our customers have configured Tugboat with a certain number of services (Docker containers). For example, a common Drupal set-up has a PHP service, a MySQL service, and maybe a Memcached service.
For that set-up you might have something like this in your Tugboat config:
services: php: ... mysql: ... memcached: ...
And after a Tugboat preview is built, you might see something like this in the Tugboat UI:
We can think of each of those services as a server, or a computer. But it’s not a real server or a computer—it’s an abstraction of one: a virtual server. Docker is the tool that helps Tugboat control all these virtual servers.
Since each of those services is a virtual computer, they each also have a virtual CPU—that is, they are given an abstraction of a CPU. Make no mistake, somewhere in Newark, New Jersey at the data center where Tugboat is hosted, there is a real, honest, hard-working CPU, busy building Tugboat previews. But it’s doing a whole heck of a lot more than just building Tugboat previews, so we need to limit the amount of CPU each of these services can have to provide a great experience for everyone.
During the Tugboat build process, those services each get the amount of virtual CPU for your tier. So on the Free tier, the PHP service gets 0.5 CPU, the Memcached gets 0.5 CPU, and MySQL gets 0.5 CPU.
Under the hood for Tugboat, that means on our Free tier you’ll have 1.5 virtual CPUs (3 services x 0.5 CPU) available to build and run a single preview. By comparison, on our Plus tier, each service gets 2 CPUs, which means you would have 6 virtual CPUs available to build and run a preview with 3 services.
How does CPU affect my experience of Tugboat?
Having more CPU will have a direct effect on how long it takes to build your Tugboat previews. How much effect it has depends greatly on what your build process looks like. Typically tools like Webpack, Composer, NPM, Yarn, Grunt, Gulp, and the like all run pretty CPU-intensive operations. Executing complex database operations, modifying high-resolution images, or compiling packages from source can also use a lot of CPU. The more CPU-intensive your build process is, the greater the impact additional virtual CPU will have on your project.
What about Premium Tugboat?
On Premium Tugboat tiers, projects gets their own server with dedicated CPU cores (starting at 6 CPU cores all the way up 64 cores 🤯). As one might imagine, having that much dedicated CPU has a significant impact on the performance of your build times. On some projects, Tugboat Preview build times have decreased by more than 50% just by moving to the lowest tier on Premium. When deadlines are looming, or budgets are tight—wait, what am I saying—when are budgets not tight and deadlines not looming? [brief moment of silence—deep breaths] …
At any rate, build times have a direct impact on the productivity of your team. If your team is being impacted by slow build times, why not strap a rocket to your Tugboat project by upgrading to Premium today?