Start course
1h 48m

There are a lot of different options, across a variety of cloud platforms that are well suited for running specific workloads, such as web applications. Things such as Google App Engine, AWS Elastic Beanstalk, Azure App Services: Web Apps, among others.

However, there are still plenty of times where we need to set up our own infrastructure. And so cloud vendors offer IaaS (infrastructure as a service) options. Google provides us with Compute Engine which allows us to create virtual machines, custom images, snapshots, networks, auto-scalers and load balancers.

If we're going to create and implement an application on the Google Cloud Platform system operations, then understanding these services are going to help us to create highly available, highly scalable applications.

All the major cloud providers offer the ability to set up virtual machines, networks, auto-scalers, and load balancers. Where the Google Cloud is different is in the speed of creating and starting up virtual machine instances. As well as the massively scalable software-based, global load balancer; which doesn't require pre-warming. Google also offers per-minute billing for VM instances, after the first 10 minutes.

So Google has a lot to offer. And if you're looking to learn more about the Google Cloud systems operations, then this may be the course for you.

What exactly will we cover in this course?

Course Objectives: Google Cloud Platform system operations 

By the end of this course, you'll know:

How to use Compute Engine to create virtual machines
How to create disk snapshots
How to create images
How to create instance templates and groups
How to create networks
How to use the auto-scaler and load balancer
Intended Audience

This is an intermediate level course because it assumes:

You have at least a basic understanding of the cloud
You’re at least familiar with general IT concepts

What You'll Learn

Summary A review of the course

Lecture What you'll learn
Intro What will be covered in this course
Getting Started An introduction to the Google Cloud Platform
Networking How to create and secure Cloud Networks
Disks and Images An overview of disk types and images
Authorization and IAM How to authenticate and authorise users
Disk Snapshots How to use snapshots for point-in-time backups
Cloud Storage Overview A refresher on Cloud Storage
Instance Groups How to manage instances with managed and unmanaged groups
Cloud SQL Overview A quick primer on how to use Cloud SQL
Startup and Shutdown Scripts Using startup scripts to provision machines at boot time
Autoscaling How to automatically add and remove instances
Load Balancing How to balance traffic across instances
Putting It All Together A demo of how to use some of the services we've learned about



Welcome back, in this lesson, we're going to talk about disk snapshots. This is going to be a fairly quick lesson. Snapshots are a very useful tool; however, there really isn't that much to say about them. Let's start with what are snapshots? Snapshots are going to allow you to create a copy of a disk, and that can be either a hard disk drive or a solid state drive, and store just the data that exists.

What I mean by that is that if you have a disk with 100 gigabytes of space allocated, but it's only using 10 gigabytes of space, then the snapshot will be for 10 gigabytes. Because you can snapshot a running instance, you'll be able to create a point in time back up. Snapshots are considered differential, which means subsequent snapshots will only store the changes between that moment and the previous snapshot.

This is great for backups because we don't need to store the full amount for each snapshot. The snapshots you create are considered a global resource, which means that you'll be able to use them in any zone, regardless of which zone it was created in. Though, they are confined to the project that they are created in.

Besides disk backups, commonly used cases for snapshots include things such as migrating data between zones and swapping disk types, for example, between a standard hard disk and a solid state drive. Here are some things to keep in mind. Snapshots are data only. They don't store any information about machine types or its tags, and you can't move data to a local SSD with snapshots.

Okay, so how would you go about actually creating a snapshot? Well, first you'll want to either unmount the disk in question or prevent writes to it, and the reason is, so that we don't end up with the data being in an inconsistent state. So assuming the use of a Linux operating system, you can run the umount command, and this is going to ensure that no new writes happen while you're creating the snapshot.

If you're snapshotting a boot disk, then it's best practice to shut down the server. Again, it's to ensure that we don't end up with inconsistent data. Now if you can't unmount the disk for some reason, then the next best option is to use the sync command to flush any pending writes to disk, and then use the fsfreeze command to halt any writes to the disk until we're done with the snapshot process.

Afterwards, the -u flag can be passed into the fsfreeze command to unfreeze the disk. Okay, like I mentioned at the start, this is going to be a quick lesson. Snapshots are very powerful; however, not complex enough to go in any more detail on it. So, in our next lesson, we're going to talk about cloud storage.

Alright, so if you're ready, let's get started.

About the Author
Learning Paths

Ben Lambert is a software engineer and was previously the lead author for DevOps and Microsoft Azure training content at Cloud Academy. His courses and learning paths covered Cloud Ecosystem technologies such as DC/OS, configuration management tools, and containers. As a software engineer, Ben’s experience includes building highly available web and mobile apps. When he’s not building software, he’s hiking, camping, or creating video games.