Google Cloud Platform already has the ability to store custom images, which you can configure with pre-installed applications. A custom image is just a disk image, though, whereas its new Machine Images - a feature now in beta - also include all the configuration metadata including permissions.
Machine images can also include multiple disks.
There are two reasons for the introduction of machine images. One is for backup. Machine images support differential disk backup so you can keep a snapshot of a VM instance with efficient use of disk space and better performance.
The second purpose is for uses as a master image for creating new VMs. You can override specific properties of the image in order to customise each new instance.
If you want to create a golden image, the idea is that you first shut down your source VM. If you are using the service for backup, you can keep the VM running. Google said: "Compute Engine guarantees that the data across disks is captured in a crash-consistent manner at a given time. Compute Engine uses globally consistent timestamps to ensure this guarantee."
This guarantee, Google noted, is not applied at the application level since applications are not aware that a backup is being taken and might be in an inconsistent state.
A limitation is that the machine image does not capture the content of local SSDs. This makes sense, in that local SSDs are only intended for temporary storage. "The data that you store on a local SSD persists only until the instance is stopped or deleted," according to the docs.
Local SSDs are a useful feature on GCP VMs – 375GB of fast, encrypted storage – but need careful use since there are a number of scenarios in which data will be lost. Data on a local SSD will normally survive a reboot, but in the event of a host error, for example, there is a "best effort" to recover the data, and only within the first 60 minutes.
Users have to take advantage of local SSDs in such as way that losing the data on them does not matter.
Managing machine instances can be done from the cloud console, from the gcloud command line, or using the Compute Engine API. The price is $0.05 per GB/month, so $10 per month for a VM with 200GB storage – plus a bit more to allow for snapshots, plus network charges if you store the image in a different region.
When it comes to restoring the machine image, the documentation says that "a machine image is unchangeable." This implies that despite the differential backup technology, you cannot go back in time to an earlier snapshot. This makes it less useful than persistent disk snapshots, since restoring to an earlier version is useful to cover events like data corruption. It is a beta service, so perhaps this aspect will be improved. ®