Service model comparison

Typically, data centers use server virtualization, in which multiple virtual
Unix/Linux or Windows servers can be run on a single physical machine.
These virtual machines are created, provisioned, and managed through a
software suite such as VMware vSphere or XenCenter.

Compute Engine uses this model as well, combining server virtualization
and related management tools into an integrated suite. On Compute Engine,
virtual machines are called virtual machine (VM) instances. You can
create and manage these instances in several ways, including:

The
Compute Engine API,
which allows you to interact with your Compute Engine resources from
applications.

Administration

Compute Engine eliminates a great deal of the administrative overhead
associated with virtual machine management. You no longer have to worry
about provisioning physical server, network, or storage capacity, nor
do you have to worry about setting up and configuring your physical
network. On the software side of things, you no longer need to worry about
installing and updating virtual management tools; handling automatic updates
of virtual hypervisor software, server firmware, and related tools; or
migrating your virtual machines during physical machine maintenance.
All of these tasks are handled seamlessly, behind the scenes, by Google.

Capacity planning and resource provisioning

In traditional data centers, you typically spend cycles each
quarter reviewing current resource requirements and forecasting future
ones. You have to consider physical, logistical, and
human-resource-related concerns such as rack space, cooling, electricity,
bandwidth, cabling, procurement times, shipping times, and available engineers
to actually rack and stack new gear. Beyond that, you have to actively
manage the capacity and workload distributions so that resource-intensive
jobs, such as Hadoop pipelines, don't interfere with services that must
be highly available, such as web servers.

In contrast, when you use Compute Engine, you hand off the
bulk of your capacity planning to Google. You can scale up and scale
down your VM instances as needed. Because you pay for what you use on
a per-second basis, you can optimize your costs without having to pay
for excess capacity you don't need, or need only at peak
traffic times. To help you save costs, the Cloud Platform Console will even
notify you
if it detects that you have underutilized instances that can be resized or
deleted.

In addition, when you create an instance, you are allocated the RAM and
CPUs you specified for that instance. Your performance will not degrade due
to other instances or services taking up additional resources on your
instance's physical host machine.

Cloud Platform does require that you manage your
quota, which specifies the number of resources you are allowed to consume on
Cloud Platform. You can easily
review and request additional quota in the Cloud Platform Console.
To help avoid hitting quota ceilings when using Cloud Platform's APIs,
proactively request additional quota in advance, especially when you expect
large increases. To manage your expenses, as well as to restrict people and
processes from consuming too many resources, you can also request
decreases to your quota.

Monthly uptime guarantees

Compute Engine provides a service level agreement (SLA) that provides
a monthly uptime percentage of at least 99.95%, subject to certain
limitations. For more details, see
Google Compute Engine SLA.

Feature comparison

Basic configuration and management

Compute Engine provides the same basic functionality and flexibility
you have come to expect from popular hypervisor services such as
VMware ESXi, KVM, and Xen. As with these services, you can:

Access and permissions

You can connect to your Compute Engine instances using SSH, RDP, or
serial port.
The Cloud Platform Console provides a browser-based SSH terminal, and the
gcloud command-line tool allows you to establish a connection through the
terminal of your choice. If you choose to enable static external IPs for your
instances, you can use traditional tools such as Windows Remote Desktop or
ssh as well.

A VM instance can connect to Cloud Platform resources by using a
service account.
A service account is a special Google account that can be used by applications
to access Google services programmatically. This account belongs to your
application or a VM instance instead of to an individual end
user. Your application uses the service account to call the API of a
service, so that the users aren't directly involved.

Cloud Platform provides
Google Cloud IAM
for federated identity
management and granular access management. For a discussion of
Cloud IAM as it pertains to Compute Engine, see
Identity and Access Management Roles.
For a more general discussion about
identity management on Cloud Platform, see the
Management
article.

Machine provisioning

You can declaratively manage the provisioning and configuration of your
compute resources—including VM instances, disks, networking, and
nearly all other resources within your Cloud Platform project—with
Google Cloud Deployment Manager.
Deployment Manager lets you use simple data markup to customize and
automate your deployments. For configuration management and automation
within your VM instances, you can use the same tools you're already using,
such as Chef, Puppet, Packer, or Vagrant.

For a more complete discussion of resource provisioning on Cloud
Platform, see the
Management
article.

Preemptible resources

For tasks that can be preempted and continued on a different host, Cloud
Platform offers
preemptible VMs.
Preemptible VMs
are exactly like regular VMs, but they can be preempted: that is, they can’t
run for more than 24 hours, and Google can preempt the VM earlier if the
capacity is needed for other purposes. Preemptible VMs can be up to 80%
less expensive than standard VM instances, depending on the instance type
you choose.

Storage

Compute Engine VM instances use persistent disk, or virtualized block
storage, for boot and storage disk volumes. Persistent disk comes in standard
(HDD) and SSD volume types, and you can dynamically provision up to 128
persistent disks depending on your VM's machine type. For more information on
Compute Engine persistent disk, see the
Storage
article.

Networking

Compute Engine provides
software-defined networking,
in which you can configure your private and public networks on Compute
Engine at the software level. For a discussion of how Cloud Platform
networking compares to traditional data center networking, see the
Networking
article.

Migration and recovery

By default, Compute Engine enables
live migration,
in which your instances are automatically and seamlessly migrated
when the physical hardware requires maintenance.

As with standard hypervisor suites, Compute Engine also allows you to
take live snapshots of VM instances. You can use these snapshots to
create new instances within a zone or
move an instance to a different zone.

If your Compute Engine VM instance is terminated due to issues with the
underlying physical host, the instance will recover automatically on a
different host within the same zone. You can also elect to have your
machines stay down by turning off automatic restart.