Cloud services make it easy to set up technical infrastructure (such as computing resources or storage capacity) without all of those pesky long-term commitments, meaning you pay for exactly what you need, and can think beyond the limits of physical machines. While there are many cloud providers to choose from, Google Cloud Platform is trusted by millions of applications and is backed by the infrastructure powering many of the services you use every day such as Google Search and YouTube. It's no wonder that people are flocking to cloud providers in general, and GCP in particular, as these unique services let you focus less on your tools and more on your application.
Google Cloud Platform in Action teaches you to build and launch applications that scale, leveraging the many services on GCP to move faster than ever. You'll begin with an introduction to what cloud services are in general and a close up look at GCP and its benefits. You'll quickly get to try it out with step-by-step instructions on deploying a basic application on GCP. Then you'll move on to more advanced topics such as how to architect your application to best take advantage of GCP services, how to launch large-scale web applications, how best to store and query huge amounts of data, and how to build the back-end of a social image sharing application. You'll also learn how to choose exactly the services that best suit your needs. By the end, you will be able to build applications that run on Google Cloud Platform and start more quickly, suffer fewer disasters, and require less maintenance.
Part 1: Getting Started
1. What is "Cloud"?
1.1. What is Google Cloud Platform?
1.2. Why Cloud?
1.2.1. Why not Cloud?
1.3. What to expect from cloud services
1.3.3. Analytics (aka, Big Data)
1.4. Building an application for the cloud
1.4.1. What is a cloud application?
1.4.2. Example: Serving photos
1.4.3. Example projects
1.5. Getting started with Google Cloud Platform
1.5.1. Signing up for GCP
1.5.2. Exploring the console
1.5.3. Installing the SDK
1.6. Interacting with GCP
1.6.1. In the browser: the Cloud Console
1.6.2. On the command line: gcloud
1.6.3. In your own code: gcloud-*
2. Trying it out: Deploying Wordpress on Google Cloud
2.1. Overall layout
2.2. The database
2.2.1. Turning on a Cloud SQL instance
2.2.2. Securing your Cloud SQL instance
2.2.3. Connecting to your Cloud SQL instance
2.2.4. Configuring your Cloud SQL instance for Wordpress
2.3. Deploying the Wordpress VM
2.4. Configuring Wordpress
2.5. Review the system
2.6. Turning it off
3. The cloud data center
3.1. Data center locations
3.2. Isolation levels and fault tolerance
3.2.3. Designing for fault tolerance
3.2.4. Automatic high availablity
3.3. Safety concerns
3.3.3. Special cases
3.4. Resource isolation and performance
Part 2: Storage
4. Cloud SQL: Managed relational storage
4.1. What is a relational database?
4.2. What is Cloud SQL?
4.3. Turning on a Cloud SQL instance
4.4. Deciding whether Cloud SQL is a good fit
4.4.2. Query complexity
4.4.4. Speed (latency)
4.5. Why choose Cloud SQL over a VM?
4.7. Configuring Cloud SQL for production
4.7.1. Access control
4.7.2. Connecting over SSL
4.7.3. Maintenance windows
4.7.4. Extra MySQL options
4.8. Scaling up (and down)
4.8.1. Compute power
4.10. Back-up and restore
4.10.1. Automated daily back-ups
4.10.2. Point-in-time back-ups
4.10.3. Manual data export to Cloud Storage
5. Cloud Datastore: Document storage
5.1. What is document storage?
5.1.1. Why does non-relational storage exist?
5.2. What is Cloud Datastore?
5.2.1. Design goals for Cloud Datastore
5.2.3. Consistency and replication
5.2.4. Consistency with data locality
5.3. Interacting with Cloud Datastore
5.4. Deciding whether Cloud Datastore is a good fit
5.4.2. Query complexity
5.4.4. Speed (latency)
5.5. Other document storage systems
6. Real-time document synchronization: Firebase
7. CONTENT IN DEVELOPMENT
8. Bigtable: Large scale structured data
8.1. A brief history of large scale data
8.2. What is Bigtable?
8.2.1. Bigtable Design goals
8.2.2. Bigtable design non-goals
8.2.3. Bigtable design summary
8.3.1. Data model concepts
8.3.2. Infrastructure concepts
8.4. Interacting with Cloud Bigtable
8.4.1. Creating a Bigtable Instance
8.5. Creating your schema
8.6. Managing your data
8.6.1. Importing and exporting data
8.7. When should I use Bigtable?
8.7.2. Query complexity
8.7.4. Speed (latency)
8.8. What's the difference between Bigtable and HBase?
8.9. Case study: InstaSnap recommendations
9. Cloud Storage: Object storage
9.1. What is object storage?
9.2. What is Cloud Storage?
9.2.1. Buckets and objects
9.3. Storing data in Cloud Storage
9.4. Choosing the right storage class
9.4.1. Standard Storage
9.4.2. Durable Reduced Availability (DRA)
9.4.3. Nearline Storage
9.5. Access control
9.5.1. Limiting access with ACLs
9.5.2. Signed URLs
9.5.3. Logging access to your data
9.5.4. URL restrictions
9.6. Common use-cases
9.6.1. Hosting user content
9.6.2. Data archival
9.6.3. Hosting a static website
9.6.4. Amount of data stored
9.6.5. Amount of data served
9.6.6. Number of operations executed
9.6.7. Nearline pricing
9.6.8. Complete pricing examples
9.7. Deciding how Cloud Storage is a good fit
9.7.2. Query complexity
9.7.4. Speed (latency)
Part 3 Computing
10. VMs as a service: Compute Engine
11. App Engine
12. Container Engine
13. Cloud Functions
Part 4: Big data and Machine learning
15. Cloud Dataflow
16. Cloud Vision
17. CONTENT IN DEVELOPMENT
18. Cloud Speech
18.1. What is speech recognition?
18.2. Simple speech recognition
18.3. Continuous speech recognition
18.4. Hinting with custom words and phrases
18.5. Understanding pricing
18.6. Case study: InstaSnap video captions
19. Cloud Translation
19.1. What is machine translation?
19.2. How does the Translation API work?
19.3. Language detection
19.4. Text translation
19.5. Understanding pricing
19.6. Case study: Translating InstaSnap captions
19.8. Online appendices
20. Cloud Machine Learning
Part 5: Networking
21. Cloud Pub/Sub
22. Cloud DNS
23. Cloud Load Balancing
24. Cloud CDN
- Use Google's core infrastructure, data analytics and machine learning
- Get applications deployed quickly
- Choosing the most cost effective options
- Hands-on code examples