The modern Droplet: How to choose the “right” VM for business and personal use

Posted 2021-01-14  in Product Updates
blog header

DigitalOcean Droplets are on-demand, Linux virtual machines suitable for production business applications and personal passion projects. We’ve recently introduced Storage-Optimized Droplets with NVMe SSD, and have also made other adjustments to our Droplet portfolio.

With these developments in mind, and with 2021 having arrived at last, we thought it would be a good time to provide up-to-date guidance regarding how to match your Droplet plan to your use case. You might also watch my talk from deploy, in which I speak to this and related topics:

How hypervisors allocate resources to Droplet VMs

Let's begin with some background: Droplets run on a software system called a hypervisor ‒ in our case the Linux Kernel Virtual Machine, aka KVM. The hypervisor figuratively carves up the resources of the underlying bare metal server, so that your VM receives a portion of the physical machine’s capabilities. While the servers in our data centers feature Intel processors with 20 or more physical cores, hundreds of GB of RAM, and multiple terabytes of disk, your virtual machines can utilize only a fraction of that total capacity.

It’s this virtualized architecture that allows DigitalOcean to efficiently load our servers with multiple customers’ workloads – and ultimately offer our Droplet servers for as little as $5 per month.

Droplet plans: Understanding what you’re getting

As you browse Droplet pricing, you’ll see that you select your Droplets first based on the virtual machine plan, followed by its sizing. For the most part, it’s obvious how to interpret these specifications:

What sometimes confuses people as they evaluate plans is why some Droplets with seemingly similar specs have different prices. For example, a Basic Droplet with 4GB RAM and 2 vCPUs costs $20/month, whereas a CPU-Optimized Droplet with seemingly equivalent RAM and vCPU costs $40/month.

There's a good reason for this: Basic Droplets share vCPUs with other Basic Droplets, whereas all other Droplet types feature dedicated vCPUs. The upshot of this is that the performance of your Basic Droplets might vary, whereas you’ll receive consistent, fast performance from other kinds of Droplets.

Basic Droplets: Shared CPU VMs suitable for bursty applications

Basic Droplets (formerly known as ‘Standard’) come with anywhere from 1 to 8 shared vCPUs, with 1GB to 16 GB RAM, respectively.

When you’re running a Basic Droplet, our hypervisor ensures that its vCPUs can always utilize a substantial slice (and at times nearly all) of its underlying hyperthreads. This means that, even with shared vCPUs, you’ll get pretty fast performance at a relatively low price. In fact, when Cloud Spectator benchmarked our Basic Droplets versus shared instances from other clouds, their independent testing found that DigitalOcean’s Basic Droplets substantially outperformed shared CPU VMs from other cloud providers.

That being said, if your Basic Droplet happens to be running on a hypervisor with other particularly CPU-hungry VMs, your own Droplet’s performance might be affected (a common cloud computing issue called the noisy neighbor problem).

These performance factors make our Basic Droplet ideal for personal projects, as well as business use cases that can tolerate variable performance: e.g. web servers, blogs, discussion forums, CMS, small databases, dev/test servers, microservices, and repository hosting. Here’s the story of how Ghost uses Basic Droplets to run a managed version of its popular open source blogging platform.

General Purpose Droplets: Dedicated CPUs and balanced RAM for broad business applications

Unlike Basic Droplets, General Purpose Droplets provide dedicated vCPUs, with 4GB of RAM for each vCPU. You can spin them up with anywhere from 2 to 40 vCPUs, with 8GB to 160GB RAM, respectively.

In our own testing, we found that General Purpose Droplets resulted in much faster, more consistent performance than our Basic Droplets. Below is one example benchmark – Linpack matrix multiplication – that we ran comparing performance for equally sized General Purpose Droplets and Basic Droplets. In case it’s not obvious, the lower, more consistent time to completion for General Purpose Droplets is preferable.

These performance characteristics make General Purpose Droplets the recommended choice for many production business applications: e.g. high-traffic web servers, e-commerce sites, medium-sized databases, and enterprise Software as a Service (SaaS) applications. Let’s Get Digital is a platform for running online events as though they were physical, and it uses General Purpose Droplets to power its application servers.

CPU-Optimized Droplets: Dedicated CPUs for computationally intensive applications

CPU-Optimized Droplets provide the same dedicated vCPUs as General Purpose Droplets, but they feature less RAM (and are therefore less expensive). Unlike General Purpose Droplets that provide 4GB RAM for each vCPU, CPU-Optimized Droplets provide just 2GB RAM per vCPU. You can spin them up with anywhere from 2 to 32 vCPUs, with 4GB to 64GB RAM, respectively.

For a practical assessment of the performance of CPU-Optimized Droplets vs Basic Droplets, see this blog regarding experiments with the React Boilerplate app. In the example described therein, the CPU-Optimized Droplet completed test scripts 37% faster than Basic Droplets.

We recommend CPU-Optimized Droplets for many computationally intensive business applications, e.g. CI/CD, video encoding, ad serving, batch processing, machine learning, and active front-end web servers. Here’s how Red5 Pro uses DigitalOcean, and specifically our CPU-Optimized Droplets, to run its live video streaming platform.

Memory-Optimized Droplets: Dedicated CPUs and ample RAM for memory-intensive applications

Memory-Optimized Droplets provide dedicated vCPUs like General Purpose Droplets, but with twice the RAM, they can accommodate more memory-intensive business applications. Unlike General Purpose Droplets that provide 4GB RAM for each dedicated vCPU, Memory-Optimized Droplets provide a more generous 8GB RAM per vCPU. Memory-Optimized Droplets come with anywhere from 2 to 32 dedicated vCPUs, with 16GB to 256GB RAM, respectively.

We recommend Memory-Optimized Droplets for running high-performance databases, in-memory caches, real-time big data processing, and other memory-intensive use cases. One of our DigitalOcean Kubernetes customers is a podcast hosting service called Podiant, and their audio transcoding service runs on Memory-Optimized Droplets.

Storage-Optimized Droplets: Large amounts of NVMe SSD for data-intensive applications

If you’re looking to run a large, high-performance NoSQL database, data warehouse, or analytics system, then you might want to use our Storage-Optimized Droplets. These virtual machines feature substantial amounts of NVMe SSD storage, along with 8GB per dedicated vCPU. Unlike regular SSDs, NVMe SSDs take advantage of parallelism to deliver optimal disk performance.

Storage-Optimized Droplets are the newest kind of Droplet provided by DigitalOcean. Squeezely is a DigitalOcean customer that has just begun to use this new class of Droplets to power its customer data platform.

Whatever you’re doing, you can DO it on DigitalOcean

DigitalOcean offers this portfolio of Droplets so that you can use our developer-friendly cloud to run applications for your business, or your personal projects. Regardless of which Droplet plans you choose, you get the same, easy-to-use experience across our control panel, CLI, and API, along with third-party extensions like our Terraform provider.

Thousands of small and medium sized businesses run on DigitalOcean; it’s amazing the sorts of things even a single person can build with our managed Kubernetes service.

Businesses interested in DigitalOcean can contact us for a consultation with our sales team and solutions engineers. If you’d rather jump right in, you can sign up and get started in just a few minutes.