Google Cloud Platform in Action
JJ Geewax
  • MEAP began August 2016
  • Publication in January 2018 (estimated)
  • ISBN 9781617293528
  • 400 pages (estimated)
  • printed in black & white

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.

Table of Contents detailed table of contents

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.1. Computing

1.3.2. Storage

1.3.3. Analytics (aka, Big Data)

1.3.4. Networking

1.3.5. Pricing

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

2.7. Summary

3. The cloud data center

3.1. Data center locations

3.2. Isolation levels and fault tolerance

3.2.1. Zones

3.2.2. Regions

3.2.3. Designing for fault tolerance

3.2.4. Automatic high availablity

3.3. Safety concerns

3.3.1. Security

3.3.2. Privacy

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.1. Structure

4.4.2. Query complexity

4.4.3. Durability

4.4.4. Speed (latency)

4.4.5. Throughput

4.4.6. Overall

4.5. Why choose Cloud SQL over a VM?

4.6. Pricing

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.8.2. Storage

4.9. Replication

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

4.11. Summary

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.2. Concepts

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.1. Structure

5.4.2. Query complexity

5.4.3. Durability

5.4.4. Speed (latency)

5.4.5. Throughput

5.4.6. Overall

5.5. Other document storage systems

6. Real-time document synchronization: Firebase

7. Cloud Spanner: Large scale SQL

7.1. What is NewSQL?

7.2. What is Spanner?

7.3. Concepts

7.3.1. Instances

7.3.2. Nodes

7.3.3. Databases

7.3.4. Tables

7.4. Interacting with Cloud Spanner

7.4.1. Creating an instance and database

7.4.2. Creating a table

7.4.3. Adding data

7.4.4. Querying data

7.4.5. Altering database schema

7.5. Advanced concepts

7.5.1. Interleaved tables

7.5.2. Primary keys

7.5.3. Split points

7.5.4. Choosing primary keys

7.5.5. Secondary indexes

7.5.6. Transactions

7.6. Understanding pricing

7.7. When should I use Cloud Spanner?

7.7.1. Structure

7.7.2. Query complexity

7.7.3. Durability

7.7.4. Speed (latency)

7.7.5. Throughput

7.7.6. Cost

7.7.7. Overall

7.8. Summary

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. Concepts

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.1. Structure

8.7.2. Query complexity

8.7.3. Durability

8.7.4. Speed (latency)

8.7.5. Throughput

8.7.6. Cost

8.7.7. Overall

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.2.2. Locations

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.4.4. Summary

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.1. Structure

9.7.2. Query complexity

9.7.3. Durability

9.7.4. Speed (latency)

9.7.5. Thoughput

9.7.6. Overall

9.8. Summary

Part 3 Computing

10. Compute Engine: Virtual machines

11. App Engine

12. Container Engine

12.1. What are containers?

12.1.1. Configuration

12.1.2. Standardization

12.1.3. Isolation

12.2. What is Docker?

12.3. What is Kubernetes?

12.3.1. Clusters

12.3.2. Nodes

12.3.3. Pods

12.3.4. Services

12.4. What is Container Engine?

12.5. Interacting with Container Engine

12.5.1. Defining your application

12.5.2. Running your container locally

12.5.3. Deploying to your container registry

12.5.4. Setting up your Container Engine cluster

12.5.5. Deploying your application

12.5.6. Replicating your application

12.5.7. Using the Kubernetes UI

12.6. Maintaining your cluster

12.6.1. Upgrading the Kubernetes master node

12.6.2. Upgrading cluster nodes

12.6.3. Resizing your cluster

12.7. Understanding pricing

12.8. When should I use Container Engine?

12.8.1. Flexibility

12.8.2. Complexity

12.8.3. Performance

12.8.4. Cost

12.8.5. Overall

12.9. Summary

13. Cloud Functions

13.1. What are micro-services?

13.2. What is Google Cloud Functions?

13.2.1. Concepts

13.3. Interacting with Cloud Functions

13.3.1. Creating a function

13.3.2. Deploying a function

13.3.3. Triggering a function

13.4. Advanced concepts

13.4.1. Updating functions

13.4.2. Deleting functions

13.4.3. Using dependencies

13.4.4. Calling other Cloud APIs

13.4.5. Using a Google Source Repository

13.5. Understanding pricing

13.6. Summary

Part 4: Big data and Machine learning

14. BigQuery

14.1. What is BigQuery?

14.1.1. Why BigQuery?

14.1.2. How does BigQuery work?

14.1.3. Concepts

14.2. Interacting with BigQuery

14.2.1. Querying data

14.2.2. Loading data

14.2.3. Exporting datasets

14.3. Understanding pricing

14.3.1. Storage pricing

14.3.2. Data manipulation pricing

14.3.3. Query pricing

14.4. Summary

15. Cloud Dataflow

16. Cloud Vision

16.1. What is image recognition?

16.2. Annotating images

16.2.1. Label annotations

16.2.2. Faces

16.2.3. Text recognition

16.2.4. Logo recognition

16.2.5. Safe-for-work detection

16.2.6. Combining multiple detection types

16.3. Understanding pricing

16.4. Case study: Enforcing valid profile photos

17. Cloud Natural Language

17.1. What is natural language processing?

17.2. How does the Natural Language API work?

17.3. Sentiment analysis

17.4. Entity recognition

17.5. Syntax analysis

17.6. Understanding pricing

17.7. Case study: Suggesting InstaSnap hash-tags

17.8. Summary

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.7. Summary

19.8. Online appendices

20. Cloud Machine Learning Engine

20.1. What is machine learning?

20.1.1. What are neural networks?

20.1.2. What is TensorFlow?

20.1.3. What is Cloud ML Engine?

20.2. Creating models

20.3. Training

20.4. Making predictions

20.5. Understanding pricing

20.6. Case study: Filtering spam e-mails

20.7. Summary

Part 5: Networking

21. Cloud Pub/Sub

21.1. What is messaging?

21.2. What is Cloud Pub/Sub?

21.3. Life of a message

21.4. Concepts

21.4.1. Topics

21.4.2. Messages

21.4.3. Subscriptions

21.4.4. Sample configuration

21.5. Trying it out

21.5.1. Sending your first message

21.5.2. Receiving your first message

21.6. Push subscriptions

21.7. Understanding pricing

21.8. Messaging patterns

21.8.1. Fan-out broadcast messaging

21.8.2. Work-queue messaging

21.9. Summary

22. Cloud DNS

22.1. What is DNS?

22.2. What is Cloud DNS?

22.2.1. Example DNS entries

22.3. Interacting with Cloud DNS

22.3.1. Using the Cloud Console

22.3.2. Using the google-cloud client

22.3.3. Using the gcloud command-line

22.4. Understanding pricing

22.4.1. Personal DNS hosting

22.4.2. Start-up business DNS hosting

22.5. Case study: Giving machines DNS names at boot

22.6. Summary

23. Cloud CDN

What's inside

  • Use Google's core infrastructure, data analytics and machine learning
  • Get applications deployed quickly
  • Choosing the most cost effective options
  • Hands-on code examples

About the reader

This book is for developers who have some experience developing web applications. No experience with cloud services required.

About the author

JJ Geewax is a Software Engineer at Google working specifically on Google Cloud Platform, and has been using cloud services since 2008.

Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
Buy
MEAP combo $59.99 pBook + eBook + liveBook
MEAP eBook $47.99 pdf + ePub + kindle + liveBook

FREE domestic shipping on three or more pBooks