The course is part of these learning pathsSee 6 more
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 of 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 subjective, 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 product and service
- How to choose an appropriate deployment environment
- How to deploy an application to App Engine, Kubernetes Engine, and Compute Engine
- The different storage options
- The value of Cloud Firestore
- How to get started with BigQuery
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 building and deploying code
- Anyone who would like to learn how to use Google Cloud Platform
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. And 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 six 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 fiber optic cable 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, and 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.
So, 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, and 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. So, 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. 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. So, 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%, and they anticipate this is gonna grow over the next few years.
Google recognizes a need to keep pricing in check, so they offer some customer-friendly pricing features to help. They offer per-second billing with a one-minute minimum, and they also have a sustained use discount, which rewards those of us who run our virtual machines for over 25% of the calendar month.
And 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 kind of customize the price-to-performance ratio. So, Google's pricing model tends to make the total cost of usage less expensive than for comparable services on other cloud platforms.
Now, 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 into using them. To that end, Google gives us, as customers, high-performance value at 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 HBase 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, and they provide interoperability at multiple layers of the stack. For example, Kubernetes give customers the ability to kinda mix and match microservices running across different clouds, and 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 in operations don't think about individual machines. It's just the service and how you interact with it, and 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, and 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 on the screen here at the same time, though let's go through some of these different services that we'll be covering throughout the course. Under the Compute section, we have services such as App Engine, Kubernetes Engine, and Compute Engine, so all the Engines. Under Storage, we have services such as Bigtable, Cloud SQL, Cloud Storage, and Cloud Datastore. Regarding Big Data, we have BigQuery, Pub/Sub, Dataflow, Dataproc, and Datalab. For Machine Learning, we have the Vision API, we have the Translate API, Speech API, as well as the Machine Learning platform.
Okay, so let's stop here and summarize what we've covered in this lesson. The Google Cloud Platform offers a variety of services, ranging from Infrastructure as a Service to Platform as a Service. Their per-second billing, sustained use discounts, and custom Compute Engine machine types tend to make Google Cloud a bit less expensive than other providers when it comes to compute. Now, in their documentation, Google Cloud also talks about their commitment to environmental responsibility and open-source technologies, so that may be a factor for some people in considering which platform to use, and when it comes to using the Google Cloud Platform, we're actually using the same platform that Google uses for their internal products. So, just by using these different services, we're able to benefit from all of these years of Google's experience.
All right, in our next lesson, we're going to take just a couple of minutes to create a Google Cloud account so that we can test things out throughout the course. So, when you're ready to learn more, I'll see you in the next lesson.
About the Author
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.