Google Cloud Platform in Action
JJ Geewax
  • MEAP began August 2016
  • Publication in Fall 2018 (estimated)
  • ISBN 9781617293528
  • 550 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. Understanding projects

1.5.4. 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: google-cloud-*

1.7. Summary

2. Trying it out: Deploying WordPress on Google Cloud

2.1. System layout overview

2.2. Digging into 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. Reviewing 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 availability

3.3. Safety concerns

3.3.1. Security

3.3.2. Privacy

3.3.3. Special cases

3.4. Resource isolation and performance

3.5. Summary

Part 2: Storage

4. Cloud SQL: Managed relational storage

4.1. What is a relational database?

4.2. What is Cloud SQL?

4.3. Interacting with Cloud SQL

4.4. Configuring Cloud SQL for production

4.4.1. Access control

4.4.2. Connecting over SSL

4.4.3. Maintenance windows

4.4.4. Extra MySQL options

4.5. Scaling up (and down)

4.5.1. Compute power

4.5.2. Storage

4.6. Replication

4.6.1. Replica-specific operations

4.7. Back-up and restore

4.7.1. Automated daily back-ups

4.7.2. Manual data export to Cloud Storage

4.8. Understanding pricing

4.9. When should I use Cloud SQL?

4.9.1. Structure

4.9.2. Query complexity

4.9.3. Durability

4.9.4. Speed (latency)

4.9.5. Throughput

4.9.6. Overall

4.10. Why choose Cloud SQL over a VM?

4.11. Summary

5. Cloud Datastore: Document storage

5.1. What is document storage?

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. Back-up and restore

5.5. Understanding pricing

5.5.1. Storage costs

5.5.2. Per-operation costs

5.6. When should I use Cloud Datastore?

5.6.1. Structure

5.6.2. Query complexity

5.6.3. Durability

5.6.4. Speed (latency)

5.6.5. Throughput

5.6.6. Overall

5.6.7. Other document storage systems

5.7. Summary

6. Cloud Spanner: Large scale SQL

6.1. What is NewSQL?

6.2. What is Spanner?

6.3. Concepts

6.3.1. Instances

6.3.2. Nodes

6.3.3. Databases

6.3.4. Tables

6.4. Interacting with Cloud Spanner

6.4.1. Creating an instance and database

6.4.2. Creating a table

6.4.3. Adding data

6.4.4. Querying data

6.4.5. Altering database schema

6.5. Advanced concepts

6.5.1. Interleaved tables

6.5.2. Primary keys

6.5.3. Split points

6.5.4. Choosing primary keys

6.5.5. Secondary indexes

6.5.6. Transactions

6.6. Understanding pricing

6.7. When should I use Cloud Spanner?

6.7.1. Structure

6.7.2. Query complexity

6.7.3. Durability

6.7.4. Speed (latency)

6.7.5. Throughput

6.7.6. Cost

6.7.7. Overall

6.8. Summary

7. Cloud Bigtable: Large scale structured data

7.1. What is large-scale data storage?

7.2. What is Bigtable?

7.2.1. Design goals

7.2.2. Design non-goals

7.2.3. Design overview

7.3. Concepts

7.3.1. Data model concepts

7.3.2. Infrastructure concepts

7.4. Interacting with Cloud Bigtable

7.4.1. Creating a Bigtable Instance

7.4.2. Creating your schema

7.4.3. Managing your data

7.4.4. Importing and exporting data

7.5. Understanding pricing

7.6. When should I use Cloud Bigtable?

7.6.1. Structure

7.6.2. Query complexity

7.6.3. Durability

7.6.4. Speed (latency)

7.6.5. Throughput

7.6.6. Cost

7.6.7. Overall

7.7. What’s the difference between Bigtable and HBase?

7.8. Case study: InstaSnap recommendations

7.8.1. Querying needs

7.8.2. Tables

7.8.3. Users table

7.8.4. Recommendations table

7.8.5. Processing data

7.9. Summary

8. Cloud Storage: Object storage

8.1. What is object storage?

8.2. Concepts

8.2.1. Buckets and objects

8.2.2. Locations

8.3. Storing data in Cloud Storage

8.4. Choosing the right storage class

8.4.1. Multi-regional storage

8.4.2. Regional storage

8.4.3. Nearline storage

8.4.4. Coldline storage

8.4.5. Summary

8.5. Access control

8.5.1. Limiting access with ACLs

8.5.2. Signed URLs

8.5.3. Logging access to your data

8.6. Object versions

8.7. Object lifecycles

8.8. Change notifications

8.8.1. URL restrictions

8.9. Common use-cases

8.9.1. Hosting user content

8.9.2. Data archival

8.10. Understanding pricing

8.10.1. Amount of data stored

8.10.2. Amount of data transferred

8.10.3. Number of operations executed

8.10.4. Nearline and Coldline pricing

8.11. When should I use Cloud Storage?

8.11.1. Structure

8.11.2. Query complexity

8.11.3. Durability

8.11.4. Speed (latency)

8.11.5. Throughput

8.11.6. Overall

8.12. Summary

Part 3: Computing

9. Compute Engine: Virtual machines

9.1. What are virtual machines?

9.2. Launching your first (or second) VM

9.3. Block storage with Persistent Disks

9.3.1. Disks as resources

9.3.2. Attaching and detaching disks

9.3.3. Using your disks

9.3.4. Resizing disks

9.3.5. Snapshots

9.3.6. Images

9.3.7. Performance

9.3.8. Encryption

9.4. Instance groups and dynamic resources

9.4.1. Growing and shrinking

9.4.2. Rolling updates

9.4.3. Autoscaling

9.5. Ephemeral computing with preemptible VMs

9.5.1. Why use preemptible machines?

9.5.2. Turning on preemptible VMs

9.5.3. Handling terminations

9.5.4. Preemption selection

9.6. Load balancing

9.6.1. Back-end configuration

9.6.2. Front-end configuration

9.6.3. Reviewing the configuration

9.7. Cloud CDN

9.7.1. Enabling Cloud CDN

9.7.2. Cache control

9.8. Understanding pricing

9.8.1. Computing capacity

9.8.2. Sustained use discounts

9.8.3. Preemptible prices

9.8.4. Storage

9.8.5. Network traffic

9.9. When should I use Compute Engine?

9.9.1. Flexibility

9.9.2. Complexity

9.9.3. Performance

9.9.4. Cost

9.9.5. Overall

9.10. Summary

10. Kubernetes Engine: Managed Kubernetes Clusters

10.1. What are containers?

10.1.1. Configuration

10.1.2. Standardization

10.1.3. Isolation

10.2. What is Docker?

10.3. What is Kubernetes?

10.3.1. Clusters

10.3.2. Nodes

10.3.3. Pods

10.3.4. Services

10.4. What is Kubernetes Engine?

10.5. Interacting with Kubernetes Engine

10.5.1. Defining your application

10.5.2. Running your container locally

10.5.3. Deploying to your container registry

10.5.4. Setting up your Kubernetes Engine cluster

10.5.5. Deploying your application

10.5.6. Replicating your application

10.5.7. Using the Kubernetes UI

10.6. Maintaining your cluster

10.6.1. Upgrading the Kubernetes master node

10.6.2. Upgrading cluster nodes

10.6.3. Resizing your cluster

10.7. Understanding pricing

10.8. When should I use Kubernetes Engine?

10.8.1. Flexibility

10.8.2. Complexity

10.8.3. Performance

10.8.4. Cost

10.8.5. Overall

10.9. Summary

11. App Engine: Fully managed applications

11.1. What is App Engine?

11.1.1. Concepts

11.2. Interacting with App Engine

11.2.1. Building an application in App Engine Standard

11.2.2. On App Engine Flex

11.3. Scaling your application

11.3.1. Scaling on App Engine Standard

11.3.2. Scaling on App Engine Flex

11.3.3. Choosing instance configurations

11.4. Using App Engine Standard’s managed services

11.4.1. Storing data with Cloud Datastore

11.4.2. Caching ephemeral data

11.4.3. Deferring tasks

11.4.4. Splitting traffic

11.5. Understanding pricing

11.6. When should I use App Engine?

11.6.1. Flexibility

11.6.2. Complexity

11.6.3. Performance

11.6.4. Cost

11.6.5. Overall

11.7. Summary

12. Cloud Functions: Serverless applications

12.1. What are micro-services?

12.2. What is Google Cloud Functions?

12.2.1. Concepts

12.3. Interacting with Cloud Functions

12.3.1. Creating a function

12.3.2. Deploying a function

12.3.3. Triggering a function

12.4. Advanced concepts

12.4.1. Updating functions

12.4.2. Deleting functions

12.4.3. Using dependencies

12.4.4. Calling other Cloud APIs

12.4.5. Using a Google Source Repository

12.5. Understanding pricing

12.6. Summary

13. Cloud DNS: Managed DNS hosting

13.1. What is DNS?

13.2. What is Cloud DNS?

13.2.1. Example DNS entries

13.3. Interacting with Cloud DNS

13.3.1. Using the Cloud Console

13.3.2. Using the Node.js client

13.3.3. Using the gcloud command-line

13.4. Understanding pricing

13.4.1. Personal DNS hosting

13.4.2. Start-up business DNS hosting

13.5. Case study: Giving machines DNS names at boot

13.6. Summary

Part 4: Machine learning

14. Cloud Vision: Image recognition

14.1. What is image recognition?

14.2. Annotating images

14.2.1. Label annotations

14.2.2. Faces

14.2.3. Text recognition

14.2.4. Logo recognition

14.2.5. Safe-for-work detection

14.2.6. Combining multiple detection types

14.3. Understanding pricing

14.4. Case study: Enforcing valid profile photos

14.5. Summary

15. Cloud Natural Language: Text analysis

15.1. What is natural language processing?

15.2. How does the Natural Language API work?

15.3. Sentiment analysis

15.4. Entity recognition

15.5. Syntax analysis

15.6. Understanding pricing

15.7. Case study: Suggesting InstaSnap hash-tags

15.8. Summary

16. Cloud Speech: Audio to text conversion

16.1. What is speech recognition?

16.2. Simple speech recognition

16.3. Continuous speech recognition

16.4. Hinting with custom words and phrases

16.5. Understanding pricing

16.6. Case study: InstaSnap video captions

16.7. Summary

17. Cloud Translation: Multi-language machine translation

17.1. What is machine translation?

17.2. How does the Translation API work?

17.3. Language detection

17.4. Text translation

17.5. Understanding pricing

17.6. Case study: Translating InstaSnap captions

17.7. Summary

17.8. Online appendices

18. Cloud Machine Learning Engine: Managed Machine Learning

18.1. What is machine learning?

18.1.1. What are neural networks?

18.1.2. What is TensorFlow?

18.2. What is Cloud ML Engine?

18.2.1. Concepts

18.2.2. Putting it all together

18.3. Interacting with Cloud ML Engine

18.3.1. Overview of US Census data

18.3.2. Creating a model

18.3.3. Setting up Cloud Storage

18.3.4. Training our model

18.3.5. Making predictions

18.3.6. Configuring our underlying resources

18.4. Understanding pricing

18.4.1. Training costs

18.4.2. Prediction costs

18.5. Summary

Part 5: Data processing and analytics

19. BigQuery: Highly scalable data warehouse

19.1. What is BigQuery?

19.1.1. Why BigQuery?

19.1.2. How does BigQuery work?

19.1.3. Concepts

19.2. Interacting with BigQuery

19.2.1. Querying data

19.2.2. Loading data

19.2.3. Exporting datasets

19.3. Understanding pricing

19.3.1. Storage pricing

19.3.2. Data manipulation pricing

19.3.3. Query pricing

19.4. Summary

20. Cloud Dataflow: Large-scale data processing

20.1. What is data processing?

20.2. What is Apache Beam?

20.2.1. Concepts

20.2.2. Putting it all together

20.3. What is Cloud Dataflow?

20.4. Interacting with Cloud Dataflow

20.4.1. Setting up

20.4.2. Creating a pipeline

20.4.3. Executing a pipeline locally

20.4.4. Executing a pipeline using Cloud Dataflow

20.5. Understanding pricing

20.6. Summary

21. Cloud Pub/Sub: Managed event publishing

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

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
Google Cloud Platform in Action (combo) added to cart
continue shopping
go to cart

Read what our manuscript reviewers are saying about Google Cloud Platform in Action
MEAP combo $59.99 pBook + eBook + liveBook
Google Cloud Platform in Action (eBook) added to cart
continue shopping
go to cart

Read what our manuscript reviewers are saying about Google Cloud Platform in Action
MEAP eBook $47.99 pdf + ePub + kindle + liveBook
Read what our manuscript reviewers are saying about Google Cloud Platform in Action

FREE domestic shipping on three or more pBooks