The course is part of these learning pathsSee 3 more
Google Cloud Platform: Fundamentals
If you’re going to work with modern software systems, then you can escape learning about cloud technologies. And that’s a rather broad umbrella. Across the three major cloud platform providers, we have a lot of different service options, and there’s a lot value in them all.
However, the area that I think Google Cloud Platform excels in is providing elastic fully managed services. Google Cloud Platform to me, is the optimal cloud platform for developers. It provides so many services for building out highly available - highly scalable web applications and mobile back-ends.
For me personally, Google Cloud Platform has quickly become my personal favorite cloud platform. Now, opinions are subject, but I’ll share why I like it so much.
I’ve worked as a developer for years, and for much of that time I was responsible for getting my code into production environments and keeping it running. I worked on a lot of smaller teams where there were no operations engineers.
So, here’s what I like about the Google Cloud Platform, it allows me to think about the code and the features I need to develop, without worrying about the operations side. Because many of the service offerings are fully managed.
So things such as App Engine allow me to write my code, test it locally, run it through the CI/CD pipeline, and then deploy it. And once it’s deployed, for the most part, unless I’ve introduced some software bug, I don’t have to think about it. Google’s engineers keep it up-and-running, and highly available. And having Google as your ops team, is really cool!
Another thing I really like about is the ease of use of things such as BigQuery and their Machine Learning APIs. If you’ve ever worked with large datasets, you know that some queries take forever to run. BigQuery can query massive datasets in just seconds. Which allows me to get the data I need quickly, so I can move on to other things.
And with the machine learning APIs I can use a REST interface to do things like language translation, or speech to text, with ease. And that allows me the ability to integrate this into my applications, which gives the end-users a better user experience.
So for me personally, I love that I can focus on building out applications; and spend my time adding value to the end-users.
If you’re looking to learn the fundamentals about a platform that’s not only developer friendly, but cost friendly, then this is the right course for you!
By the end of this course, you'll know:
- The purpose and value of each products and services
- How to choose an appropriate deployment environment
- How to deploy an application to App Engine, Container Engine, and Compute Engine
- The different storage options
- The value of cloud Datastore
- How to get started with BigQuery
This is a intermediate level course because it assumes:
- You have at least a basic understanding of the cloud
- You’re at least familiar with building and deploying code
What You'll Learn
SummaryA review of the course
|Lecture||What you'll learn|
|Intro||What will be covered in this course|
|Introducing Google Cloud Platform||An introduction to the Google Cloud Platform|
|Getting Started||A review of projects and permissions.|
|App Engine and Cloud Datastore||An intro to the PaaS option for building web apps and the NoSQL database that works so well with App Engine.|
|Cloud Storage Options||What options exist for data storage?|
|Container Engine||How do we run Docker containers in the cloud?|
|Compute Engine||The IaaS option on Google Cloud.|
|Big Data and Machine Learning.||What options exist for data processing and machine learning|
Welcome back to Google Cloud Platform: Fundamentals. I'm Ben Lambert, and I'll be your instructor for this lesson.
In this lesson, we'll cover an introduction to the Google Cloud Platform. We'll cover some of the advantages of using Google Cloud, and we'll define some of the components of Google's network infrastructure.
For years, Google has been dealing with massive amounts of data, and presenting it at very high speeds. So it's not surprising that they've had to deal with and solve some very difficult problems, such as scalable data storage, speech recognition, natural language processing, among others. Google Cloud brings those years of experience to all of us. Google Cloud Platform enables developers to build, test, and deploy applications on Google's highly scalable, secure, and reliable infrastructure. For the past 15 years, Google has been building an incredibly powerful infrastructure with data centers around the world and high-speed fiber optic networks.
When you build on the Google Cloud Platform, you're building on the infrastructure that Google uses to serve up billions of search results in milliseconds and serves 6 billion hours of YouTube video per month, in addition to providing storage to a billion plus Gmail users. Google has one of the largest and most advanced software-defined computer networks.
Their backbone network has thousands of miles of fiberoptic cable and uses software-defined networking and has edge caching services to deliver fast, consistent, and scalable performance. Edge locations allow you to serve up cached data to users from data centers that are physically close to where the user is located. This reduces the amount of time it takes for data to get to the user.
Their network is protected by more than 500 of the top experts in information, application, and network security, which underscores Google's commitment to security. For more about this, check out Google's security practices at cloud.google.com/security. Like most cloud platforms, Google Cloud has a concept of regions and zones. Zones should be considered a single point of failure. So if you deploy an application to a single zone and something should happen to that zone, your application will be unavailable.
When you're deploying an application, you need to consider how much risk you can actually tolerate and that will help you to determine whether you should use multiple zones when you deploy. Multiple zones will minimize the risk of outages caused by zone level failures. To protect against the loss of an entire region, maybe due to natural disaster, you should have a disaster recovery plan and know how to bring up your application in another region in the unlikely event that your primary region is lost. Different Google Cloud resources will offer different options for where that resource operates. Zonal resources will operate within a single zone. If that zone becomes unavailable for some reason, all of the resources in that zone are unavailable until service is restored. A Compute Engine is an example of a zonal resource, since it resides within just one specific zone. Regional resources are deployed with redundancy within that region. This gives them a higher availability relative to zonal resources because they're running in multiple zones inside of a region. A few Cloud Platform services are managed by Google, and they're managed to be redundant and distributed within and across regions.
These services optimize availability, performance, and resource efficiency. As a result, these services may require a bit of a trade-off between latency and consistency. The trade-off depends on the service, and each will have its own documentation that explains its trade-off. App Engine, Google Cloud Datastore, Cloud Storage, and BigQuery are examples of multi-regional services. Having multiple regions allows for a very high level of availability, because the resource is operated in multiple locations around the world.
Google isn't just about making cool products. They also have a commitment to environmental responsibility. Google Cloud is built on data centers designed to save both water and electricity. Compared to just five years ago, they now get around three times the computing power out of the same amount of energy. They're the first major internet service company to gain external certifications for their high environmental and energy management standards throughout their data centers. They've also been carbon neutral since 2007, and they have a goal to power their operations with 100% renewable energy, and they're currently at about 37%.
They anticipate this is going to grow over the next few years. Google recognized the need to keep pricing in check, so they offer some customer-friendly pricing features to help. They offer sub-hour billing. Some cloud providers charge you a minimum of one hour for things such as virtual machines. So you're charged a full hour even if you only use that virtual machine for, say, 20 minutes. Google charges a minimum of 10 minutes, and then after that they round up to the nearest minute. So if you use 20 minutes, you're billed for 20 minutes. They offer sustained use discounts, which reward users who run virtual machines for over 25% of any calendar month.
They offer custom compute Engine machine types. This is a really cool feature that allows you to specify the number of CPUs and the amount of memory for your virtual machine instances. This gives you the ability to customize the price-to-performance ratio. Google's pricing model tends to make the total cost of usage less expensive than for comparable services on other cloud platforms.
What happens if you start out on Google Cloud and then you change your mind? Google's philosophy is that they want us as customers to use their services because we love using them, not because we're locked in to using them. To that end, Google gives us, as customers, high performance, value add services, as well as the ability to run our applications elsewhere if Google Cloud Platform is no longer the best option for our needs.
Google supports using open APIs so that our services are compatible with other open source products. One example of this is, Google uses BigTable, which is based on the Apache H Base Interface, which allows us a level of code portability. They publish key elements of their technology using open source licenses to create an ecosystem that provides us with options other than Google for these key technologies.
They regularly publish articles on their infrastructure innovations. This allows us as the community to learn from them and what they're doing and optionally apply that knowledge. They provide interoperability at multiple layers of the stack. For example, Cougar NetEase and Google Cloud Container Engine give customers the ability to kind of mix and match micro services running across different clouds. Their IT operations tools let customers manage workloads across multiple cloud providers. Google has a commitment to moving the IT industry forward, and that requires open innovations. Because if they aren't sharing their innovations, they'll eventually be constrained by the technology gap between them and the rest of the industry. So open innovation helps everyone.
The next wave of cloud computing is going to be fully automated, elastic clouds, which involves a move from user-maintained infrastructure to fully automated services. In a fully automated environment, developers and operations don't think about individual machines. It's just the service and how you interact with it. The underlying infrastructure is maintained for you. This is how Google thinks of the cloud. It shows in their services too. Because many of them are fully managed by Google, allowing us to focus on innovations for our products. Google Cloud Platform offers both infrastructure as a service, and platform as a service.
Their platform as a service offerings keep getting better and better all the time, putting them in a position to help us create a fully automated, elastic environment, which means resources are automatically provisioned for us when they're needed, and they're shut down when they're not, so we only pay for what we use. Google Cloud Platform services can be kind of broadly categorized as compute, storage, big data, machine learning, networking, and operations and tools.
Now, there are too many services to fit all in the screen at the same time. However, let's go through a few of their core services and these core services are things that we're going to be covering throughout the course. Under Compute we have things like App Engine, Container Engine, and Compute Engine. Under Storage we have things like Bigtable, Cloud SQL, Cloud Storage, and Cloud Datastore. For Big Data we have BigQuery, PubSub, Dataflow, Dataproc, and Datalab.
For Machine Learning we have Vision API, Translate API, Speech API, and the Machine Learning platform. Okay, let's summarize what we've covered in this lesson. The Google Cloup Platform offers a variety of services ranging from infrastructure as a service to platform as a service. Their sub-hour billing, sustained use discounts, and custom compute engine machine types tend to make Google Cloud Platform less expensive than other cloud providers. They're also committed to environmental responsibility and open source technologies. Using Google Cloud Platform means that you'll be using the same robust infrastructure that Google themselves use.
In our next lesson, we'll take just a couple of minutes to create a Google Cloud account so that we can test things out throughout the course.
Okay, if you're ready, let's get started.
About the Author
Ben Lambert is the Director of Engineering 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 the first platform to run and measure enterprise transformation initiatives at Cloud Academy, he’s hiking, camping, or creating video games.